<?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>132575</bug_id>
          
          <creation_ts>2014-05-05 11:12:58 -0700</creation_ts>
          <short_desc>Named element cache can become invalid during HTMLCollection::updateNamedElementCache()</short_desc>
          <delta_ts>2014-05-06 12:20:56 -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>DOM</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>https://src.chromium.org/viewvc/blink?view=rev&amp;revision=171062</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>jochen</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1006673</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-05-05 11:12:58 -0700</bug_when>
    <thetext>Named element cache can become invalid during HTMLCollection::updateNamedElementCache(). This is because HTMLCollection::updateNamedElementCache() works as follows:
1. Create the named element cache (i.e. hasNamedElementCache() starts returning true)
2. Traverse the HTMLCollection (and thus the DOM tree) to populate the cache

Traversing the DOM tree and looking for matches can cause tree updates (https://code.google.com/p/chromium/issues/detail?id=360474#c6) and thus cache invalidation. Therefore, the named element cache can become invalid while HTMLCollection::updateNamedElementCache() is populating it. When this happens, WebKit crashes:
ASSERTION FAILED: m_namedElementCache
/home/chris/devel/WebKit/Source/WebCore/html/HTMLCollection.cpp(416) : virtual WebCore::Node* WebCore::HTMLCollection::namedItem(const WTF::AtomicString&amp;) const
1   0x7ffff5eb4451 WTFCrash
2   0x7ffff16677c9 WebCore::HTMLCollection::namedItem(WTF::AtomicString const&amp;) const
3   0x7ffff23c5592 WebCore::jsHTMLCollectionPrototypeFunctionNamedItem(JSC::ExecState*)
4   0x7fff9b8980b4

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5eb4456 in WTFCrash () at /home/chris/devel/WebKit/Source/WTF/wtf/Assertions.cpp:333
333	    *(int *)(uintptr_t)0xbbadbeef = 0;
(gdb) bt
#0  0x00007ffff5eb4456 in WTFCrash () at /home/chris/devel/WebKit/Source/WTF/wtf/Assertions.cpp:333
#1  0x00007ffff16677c9 in WebCore::HTMLCollection::namedItem (this=0x14069c0, name=...) at /home/chris/devel/WebKit/Source/WebCore/html/HTMLCollection.cpp:416
#2  0x00007ffff23c5592 in WebCore::jsHTMLCollectionPrototypeFunctionNamedItem (exec=0x7fffffffa630) at /home/chris/devel/WebKit/WebKitBuild/Debug/DerivedSources/WebCore/JSHTMLCollection.cpp:252



The same issue has been addressed on Blink side:
- https://src.chromium.org/viewvc/blink?view=rev&amp;revision=171062
- https://code.google.com/p/chromium/issues/detail?id=360474</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006706</commentid>
    <comment_count>1</comment_count>
      <attachid>230849</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-05-05 12:53:30 -0700</bug_when>
    <thetext>Created attachment 230849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006711</commentid>
    <comment_count>2</comment_count>
      <attachid>230849</attachid>
    <who name="">jochen</who>
    <bug_when>2014-05-05 13:03:35 -0700</bug_when>
    <thetext>Comment on attachment 230849
Patch

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

&gt; LayoutTests/fast/dom/htmlcollection-selectedOptions-namedItem-crash.html:19
&gt; +

nit. unnecessary empty line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006712</commentid>
    <comment_count>3</comment_count>
    <who name="">jochen</who>
    <bug_when>2014-05-05 13:04:11 -0700</bug_when>
    <thetext>i reviewed the chromium patch so you might want to get a second pair of eyes on this, but otherwise lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006713</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-05-05 13:13:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; i reviewed the chromium patch so you might want to get a second pair of eyes on this, but otherwise lgtm

Yes, I am going to cc relevant people once the ews has had a chance to chew through it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006716</commentid>
    <comment_count>5</comment_count>
      <attachid>230852</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-05-05 13:15:21 -0700</bug_when>
    <thetext>Created attachment 230852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006736</commentid>
    <comment_count>6</comment_count>
      <attachid>230852</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-05-05 14:18:33 -0700</bug_when>
    <thetext>Comment on attachment 230852
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        The issue is that finding matches in the DOM tree can cause
&gt; +        HTMLCollection::invalidateCache() to be called under certain circumstances and
&gt; +        thus the named element cache object can become invalid while
&gt; +        updateNamedElementCache() is populating it.

What exactly is that circumstance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006739</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-05-05 14:28:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 230852 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=230852&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:17
&gt; &gt; +        The issue is that finding matches in the DOM tree can cause
&gt; &gt; +        HTMLCollection::invalidateCache() to be called under certain circumstances and
&gt; &gt; +        thus the named element cache object can become invalid while
&gt; &gt; +        updateNamedElementCache() is populating it.
&gt; 
&gt; What exactly is that circumstance?

This is explained at https://code.google.com/p/chromium/issues/detail?id=360474#c6, basically the stack trace looks like:
HTMLCollection::updateIdNameCache
HTMLCollection::traverseToFirstElement
LiveNodeListBase::firstMatchingElement&lt;WebCore::HTMLCollection&gt;
isMatchingElement&lt;WebCore::HTMLCollection&gt; 
HTMLOptionElement::selected
HTMLSelectElement::updateListItemSelectedStates
HTMLSelectElement::recalcListItems
HTMLOptionElement::setSelectedState
HTMLSelectElement::invalidateSelectedItems
HTMLCollection::invalidateCache
HTMLCollection::invalidateIdNameCacheMaps

So it is for HTMLCollection of selected options (SelectedOptions collection type), we traverse the DOM tree and call the following to see if the Element is a match:
 element.hasTagName(optionTag) &amp;&amp; toHTMLOptionElement(element).selected();

The issue is that HTMLOptionElement::selected() can cause HTMLCollection cache invalidation as per above backtrace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006742</commentid>
    <comment_count>8</comment_count>
      <attachid>230852</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-05-05 14:47:41 -0700</bug_when>
    <thetext>Comment on attachment 230852
Patch

Thanks for the clarification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006743</commentid>
    <comment_count>9</comment_count>
      <attachid>230852</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-05-05 14:48:08 -0700</bug_when>
    <thetext>Comment on attachment 230852
Patch

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

&gt; LayoutTests/fast/dom/htmlcollection-selectedOptions-namedItem-crash.html:5
&gt; +&lt;head&gt;
&gt; +&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;/head&gt;

We don&apos;t need head if we put js-test-pre.js inside body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006752</commentid>
    <comment_count>10</comment_count>
      <attachid>230858</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-05-05 15:11:41 -0700</bug_when>
    <thetext>Created attachment 230858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006765</commentid>
    <comment_count>11</comment_count>
      <attachid>230858</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-05 15:51:05 -0700</bug_when>
    <thetext>Comment on attachment 230858
Patch

Clearing flags on attachment: 230858

Committed r168322: &lt;http://trac.webkit.org/changeset/168322&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006766</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-05 15:51:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006839</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-05-05 19:55:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/16821718&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006998</commentid>
    <comment_count>14</comment_count>
      <attachid>230849</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-06 10:35:05 -0700</bug_when>
    <thetext>Comment on attachment 230849
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        HTMLCollection::invalidateCache() to be called under certain circumstances and
&gt; +        thus the named element cache object can become invalid while
&gt; +        updateNamedElementCache() is populating it.

If the cache becomes invalid during its construction, why is it OK to assign the cache to the collection unconditionally? Wouldn&apos;t you end up with an invalid cache? Should there be some kind of check for invalidation inside setNameItemCache?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007026</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-05-06 11:42:13 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 230849 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=230849&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:17
&gt; &gt; +        HTMLCollection::invalidateCache() to be called under certain circumstances and
&gt; &gt; +        thus the named element cache object can become invalid while
&gt; &gt; +        updateNamedElementCache() is populating it.
&gt; 
&gt; If the cache becomes invalid during its construction, why is it OK to assign the cache to the collection unconditionally? Wouldn&apos;t you end up with an invalid cache? Should there be some kind of check for invalidation inside setNameItemCache?

For this particular case, based on the implementation of HTMLSelectElement::recalcListItems(), I think it is OK. When traversing the DOM tree and reaching the first &lt;option&gt; element in a &lt;select&gt;. We will call HTMLOptionElement::selected() which may result in calling HTMLSelectElement::recalcListItems(). recalcListItems() will make sure:
- Only 1 &lt;option&gt; is selected if m_multiple is false:
  * To do so, it will unselect later &lt;option&gt; elements. This will update only future elements in your traversal so our cache should still be valid.
- If no &lt;option&gt; is selected and m_size is 1 (the &lt;select&gt; only has one &lt;option&gt;), the option will be selected.
  * This will update the &apos;selected&apos; state of the &lt;option&gt; we are calling HTMLOptionElement::selected() on, so our cache should still be valid.

Basically, HTMLSelectElement::recalcListItems() can only update the selected state of the option we are currently at (while traversing the DOM tree) or the following ones. Since we are doing a forward traversal, what we previous added to the cache should remain valid.

For the record, my patch makes updateNamedElementCache() behave like it used to before this relatively recent change that introduced the regression:
http://trac.webkit.org/changeset/164772

We used to call setHasIdNameCache() at the *end* of the update function, which resulted in the same behavior as with my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007040</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-05-06 12:20:56 -0700</bug_when>
    <thetext>I agree that the fact HTMLSelectElement is implicitly changing the HTML collection&apos;s state is really annoying but I can&apos;t think of a better way to fix this without pluming through a flag everywhere.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230849</attachid>
            <date>2014-05-05 12:53:30 -0700</date>
            <delta_ts>2014-05-06 10:35:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132575-20140505155303.patch</filename>
            <type>text/plain</type>
            <size>9320</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4Mjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY4N2Q5MjI1ZDJkNmU3
OGM4NTY1MTVjNjJiMTczYTBjNDJiYjE1NS4uOGI2ZGJhNzRlYzliNzRhNWNmYTg2NmY2NjAwMDA5
M2JlZDg2ZmNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA1LTA1ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgTmFtZWQgZWxl
bWVudCBjYWNoZSBjYW4gYmVjb21lIGludmFsaWQgZHVyaW5nIEhUTUxDb2xsZWN0aW9uOjp1cGRh
dGVOYW1lZEVsZW1lbnRDYWNoZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNYWtlIHN1cmUgdGhlIG5hbWVkIGVsZW1lbnQgY2FjaGUgb2JqZWN0IHN0
YXlzIHZhbGlkIGluCisgICAgICAgIEhUTUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRD
YWNoZSgpIHdoaWxlIGl0IGlzIHBvcHVsYXRpbmcgaXQuCisKKyAgICAgICAgVGhlIG1ldGhvZCB3
YXMgcHJldmlvdXNseSBjcmVhdGluZyBhbmQgc2V0dGluZyB0aGUgY2FjaGUgZmlyc3QsIGFuZCB0
aGVuIHN0YXJ0CisgICAgICAgIHRyYXZlcnNpbmcgdGhlIERPTSB0cmVlIHRvIHBvcHVsYXRlIGl0
LiBBcyBhIGNvbnNlcXVlbmNlLCBoYXNOYW1lZEVsZW1lbnRDYWNoZSgpCisgICAgICAgIHdvdWxk
IHN0YXJ0IHJldHVybmluZyB0cnVlIGJlZm9yZSB0aGUgY2FjaGUgaXMgYWN0dWFsbHkgcG9wdWxh
dGVkLgorICAgICAgICBUaGUgaXNzdWUgaXMgdGhhdCBmaW5kaW5nIG1hdGNoZXMgaW4gdGhlIERP
TSB0cmVlIGNhbiBjYXVzZQorICAgICAgICBIVE1MQ29sbGVjdGlvbjo6aW52YWxpZGF0ZUNhY2hl
KCkgdG8gYmUgY2FsbGVkIHVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcyBhbmQKKyAgICAgICAg
dGh1cyB0aGUgbmFtZWQgZWxlbWVudCBjYWNoZSBvYmplY3QgY2FuIGJlY29tZSBpbnZhbGlkIHdo
aWxlCisgICAgICAgIHVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKCkgaXMgcG9wdWxhdGluZyBpdC4K
KworICAgICAgICBUbyBhdm9pZCB0aGUgaXNzdWUsIHRoaXMgcGF0Y2ggdXBkYXRlcyB1cGRhdGVO
YW1lZEVsZW1lbnRDYWNoZSgpIHNvIHRoYXQgdGhlCisgICAgICAgIG5hbWVkIGVsZW1lbnQgY2Fj
aGUgbWFwIGlzIHNldCAqYWZ0ZXIqIHRyYXZlcnNpbmcgdGhlIERPTSB0cmVlLiBUaGlzIHdheSwK
KyAgICAgICAgaGFzTmFtZWRFbGVtZW50Q2FjaGUoKSByZXR1cm5zIGZhbHNlIHdoaWxlIHRoZSBj
YWNoZSBpcyBiZWluZyBwb3B1bGF0ZWQgYW5kCisgICAgICAgIHRoZXJlIGlzIG5vIGNoYW5jZSBv
ZiBpdCBiZWluZyBpbnZhbGlkYXRlZCB0b28gZWFybHkuCisKKyAgICAgICAgVGVzdDogZmFzdC9k
b20vaHRtbGNvbGxlY3Rpb24tc2VsZWN0ZWRPcHRpb25zLW5hbWVkSXRlbS1jcmFzaC5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSk6CisgICAgICAgICogaHRtbC9I
VE1MQ29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OnNldE5h
bWVJdGVtQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OmNyZWF0ZU5h
bWVJdGVtQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rp
b246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKToKKwogMjAxNC0wNS0wNSAgQW5kcmVpIEJ1Y3Vy
ICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc10gU2xpZGVyIGRpc3Bs
YXllZCB3cm9uZyBpbiByZWdpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3Bw
CmluZGV4IGNjYTA3NmU3NjFhZTI2M2FhZWZhMzE3OGIwYjQzMDEzYjk4NzU0NjcuLjk1MmEwNjE2
ZmRjNzIyNTI1ZTEyNzQyYTliNzg2OTNiNzBmMzRlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbGxlY3Rpb24uY3BwCkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBIVE1MQ29sbGVjdGlvbjo6
dXBkYXRlTmFtZWRFbGVtZW50Q2FjaGUoKSBjb25zdAogICAgICAgICByZXR1cm47CiAKIAotICAg
IENvbGxlY3Rpb25OYW1lZEVsZW1lbnRDYWNoZSYgY2FjaGUgPSBjcmVhdGVOYW1lSXRlbUNhY2hl
KCk7CisgICAgYXV0byBjYWNoZSA9IHN0ZDo6bWFrZV91bmlxdWU8Q29sbGVjdGlvbk5hbWVkRWxl
bWVudENhY2hlPigpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IG1faW5kZXhDYWNoZS5ub2RlQ291
bnQoKnRoaXMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKQEAg
LTQ0MiwxNSArNDQyLDE2IEBAIHZvaWQgSFRNTENvbGxlY3Rpb246OnVwZGF0ZU5hbWVkRWxlbWVu
dENhY2hlKCkgY29uc3QKICAgICAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIGlkQXR0clZhbCA9IGVsZW1lbnQtPmdldElkQXR0cmlidXRlKCk7CiAgICAg
ICAgIGlmICghaWRBdHRyVmFsLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGNhY2hlLmFwcGVuZElk
Q2FjaGUoaWRBdHRyVmFsLCBlbGVtZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5hcHBlbmRJZENh
Y2hlKGlkQXR0clZhbCwgZWxlbWVudCk7CiAgICAgICAgIGlmICghZWxlbWVudC0+aXNIVE1MRWxl
bWVudCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZUF0dHJWYWwgPSBlbGVtZW50LT5nZXROYW1lQXR0cmlidXRlKCk7CiAgICAgICAgIGlm
ICghbmFtZUF0dHJWYWwuaXNFbXB0eSgpICYmIGlkQXR0clZhbCAhPSBuYW1lQXR0clZhbCAmJiAo
dHlwZSgpICE9IERvY0FsbCB8fCBuYW1lU2hvdWxkQmVWaXNpYmxlSW5Eb2N1bWVudEFsbCh0b0hU
TUxFbGVtZW50KCplbGVtZW50KSkpKQotICAgICAgICAgICAgY2FjaGUuYXBwZW5kTmFtZUNhY2hl
KG5hbWVBdHRyVmFsLCBlbGVtZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5hcHBlbmROYW1lQ2Fj
aGUobmFtZUF0dHJWYWwsIGVsZW1lbnQpOwogICAgIH0KIAotICAgIGNhY2hlLmRpZFBvcHVsYXRl
KCk7CisgICAgY2FjaGUtPmRpZFBvcHVsYXRlKCk7CisgICAgc2V0TmFtZUl0ZW1DYWNoZShzdGQ6
Om1vdmUoY2FjaGUpKTsKIH0KIAogYm9vbCBIVE1MQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rp
b24uaAppbmRleCA1MDk2NmIwZmJmM2ZjOTY1NjVlZWQ2MzEzYTY3M2I3MTQ1ZTE5NTNkLi4zZDgx
YTM4M2VmMzFkMGI0ZjQzYzI2NGNlZGFmZGM3YmU0MzcyZjViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ29sbGVjdGlvbi5oCkBAIC0xNDEsMTIgKzE0MSwxMSBAQCBwcm90ZWN0ZWQ6CiAKICAgICBS
b290VHlwZSByb290VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJvb3RUeXBlPiht
X3Jvb3RUeXBlKTsgfQogCi0gICAgQ29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlJiBjcmVhdGVO
YW1lSXRlbUNhY2hlKCkgY29uc3QKKyAgICB2b2lkIHNldE5hbWVJdGVtQ2FjaGUoc3RkOjp1bmlx
dWVfcHRyPENvbGxlY3Rpb25OYW1lZEVsZW1lbnRDYWNoZT4gY2FjaGUpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQoIW1fbmFtZWRFbGVtZW50Q2FjaGUpOwotICAgICAgICBtX25hbWVkRWxl
bWVudENhY2hlID0gc3RkOjptYWtlX3VuaXF1ZTxDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU+
KCk7CisgICAgICAgIG1fbmFtZWRFbGVtZW50Q2FjaGUgPSBzdGQ6Om1vdmUoY2FjaGUpOwogICAg
ICAgICBkb2N1bWVudCgpLmNvbGxlY3Rpb25DYWNoZWRJZE5hbWVNYXAoKnRoaXMpOwotICAgICAg
ICByZXR1cm4gKm1fbmFtZWRFbGVtZW50Q2FjaGU7CiAgICAgfQogCiAgICAgY29uc3QgQ29sbGVj
dGlvbk5hbWVkRWxlbWVudENhY2hlJiBuYW1lZEl0ZW1DYWNoZXMoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAppbmRleCBj
NTZlM2FhYWI2ODdkYTI3NzlhOWQ5NzYxOTkxZDY5ZjNmN2MxZDA1Li5lMmM2YmVmMGI1NWU0OGIx
YmI3YTY0ZWJkMWRiMzQ0OWQwMDZiYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQg
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKCkgY29u
c3QKICAgICBpZiAoaGFzTmFtZWRFbGVtZW50Q2FjaGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQ29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlJiBjYWNoZSA9IGNyZWF0ZU5hbWVJdGVtQ2Fj
aGUoKTsKKyAgICBhdXRvIGNhY2hlID0gc3RkOjptYWtlX3VuaXF1ZTxDb2xsZWN0aW9uTmFtZWRF
bGVtZW50Q2FjaGU+KCk7CiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4gZm91bmRJbnB1
dEVsZW1lbnRzOwogICAgIGNvbnN0IFZlY3RvcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQqPiYgZWxl
bWVudHNBcnJheSA9IGZvcm1Db250cm9sRWxlbWVudHMoKTsKIApAQCAtMTUxLDExICsxNTEsMTEg
QEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVtZW50Q2Fj
aGUoKSBjb25zdAogICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZEF0dHJWYWwgPSBl
bGVtZW50LmdldElkQXR0cmlidXRlKCk7CiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWVBdHRyVmFsID0gZWxlbWVudC5nZXROYW1lQXR0cmlidXRlKCk7CiAgICAgICAgICAgICBp
ZiAoIWlkQXR0clZhbC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBjYWNoZS5hcHBlbmRJ
ZENhY2hlKGlkQXR0clZhbCwgJmVsZW1lbnQpOworICAgICAgICAgICAgICAgIGNhY2hlLT5hcHBl
bmRJZENhY2hlKGlkQXR0clZhbCwgJmVsZW1lbnQpOwogICAgICAgICAgICAgICAgIGZvdW5kSW5w
dXRFbGVtZW50cy5hZGQoaWRBdHRyVmFsLmltcGwoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBpZiAoIW5hbWVBdHRyVmFsLmlzRW1wdHkoKSAmJiBpZEF0dHJWYWwgIT0gbmFtZUF0dHJW
YWwpIHsKLSAgICAgICAgICAgICAgICBjYWNoZS5hcHBlbmROYW1lQ2FjaGUobmFtZUF0dHJWYWws
ICZlbGVtZW50KTsKKyAgICAgICAgICAgICAgICBjYWNoZS0+YXBwZW5kTmFtZUNhY2hlKG5hbWVB
dHRyVmFsLCAmZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgZm91bmRJbnB1dEVsZW1lbnRzLmFk
ZChuYW1lQXR0clZhbC5pbXBsKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjgs
MTMgKzE2OCwxNCBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1cGRhdGVOYW1l
ZEVsZW1lbnRDYWNoZSgpIGNvbnN0CiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlk
QXR0clZhbCA9IGVsZW1lbnQuZ2V0SWRBdHRyaWJ1dGUoKTsKICAgICAgICAgICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZUF0dHJWYWwgPSBlbGVtZW50LmdldE5hbWVBdHRyaWJ1dGUoKTsKICAg
ICAgICAgICAgIGlmICghaWRBdHRyVmFsLmlzRW1wdHkoKSAmJiAhZm91bmRJbnB1dEVsZW1lbnRz
LmNvbnRhaW5zKGlkQXR0clZhbC5pbXBsKCkpKQotICAgICAgICAgICAgICAgIGNhY2hlLmFwcGVu
ZElkQ2FjaGUoaWRBdHRyVmFsLCAmZWxlbWVudCk7CisgICAgICAgICAgICAgICAgY2FjaGUtPmFw
cGVuZElkQ2FjaGUoaWRBdHRyVmFsLCAmZWxlbWVudCk7CiAgICAgICAgICAgICBpZiAoIW5hbWVB
dHRyVmFsLmlzRW1wdHkoKSAmJiBpZEF0dHJWYWwgIT0gbmFtZUF0dHJWYWwgJiYgIWZvdW5kSW5w
dXRFbGVtZW50cy5jb250YWlucyhuYW1lQXR0clZhbC5pbXBsKCkpKQotICAgICAgICAgICAgICAg
IGNhY2hlLmFwcGVuZE5hbWVDYWNoZShuYW1lQXR0clZhbCwgJmVsZW1lbnQpOworICAgICAgICAg
ICAgICAgIGNhY2hlLT5hcHBlbmROYW1lQ2FjaGUobmFtZUF0dHJWYWwsICZlbGVtZW50KTsKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGNhY2hlLmRpZFBvcHVsYXRlKCk7CisgICAgY2FjaGUtPmRp
ZFBvcHVsYXRlKCk7CisgICAgc2V0TmFtZUl0ZW1DYWNoZShzdGQ6Om1vdmUoY2FjaGUpKTsKIH0K
IAogdm9pZCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6aW52YWxpZGF0ZUNhY2hlKERvY3Vt
ZW50JiBkb2N1bWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlOTE2ZDBjODdiMDM1NTA4NDg4OTdjNWFjOThk
NDE1MTg0MmZiNDg4Li5iYWM0MjJhNjA0OTBmMjZlYWJiNmI0MjVjZTk0MTQxY2Y4OTc1YzMyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDUtMDUgIENocmlzdG9waGUgRHVtZXogIDxjaC5k
dW1lekBzYW1zdW5nLmNvbT4KKworICAgICAgICBOYW1lZCBlbGVtZW50IGNhY2hlIGNhbiBiZWNv
bWUgaW52YWxpZCBkdXJpbmcgSFRNTENvbGxlY3Rpb246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjU3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBs
YXlvdXQgdGVzdCB0byB2ZXJpZnkgdGhhdCBIVE1MQ29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVt
ZW50Q2FjaGUoKSBpcyBubyBsb25nZXIKKyAgICAgICAgY3Jhc2hpbmcgZm9yIGNvbGxlY3Rpb25z
IG9mIHNlbGVjdGVkIG9wdGlvbnMuCisKKyAgICAgICAgKiBmYXN0L2RvbS9odG1sY29sbGVjdGlv
bi1zZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vaHRtbGNvbGxlY3Rpb24tc2VsZWN0ZWRPcHRpb25zLW5hbWVkSXRl
bS1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxNC0wNS0wNSAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3Vy
QGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc10gU2xpZGVyIGRpc3BsYXllZCB3cm9u
ZyBpbiByZWdpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVj
dGlvbi1zZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXNlbGVjdGVkT3B0aW9ucy1uYW1lZEl0ZW0t
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NWQ3YjE5ZGRjMDAwYWUzMzk1NDdiNzYz
OWQzNDNhZmNjOTA1ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9o
dG1sY29sbGVjdGlvbi1zZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitNYWtlcyBzdXJlIEhUTUxDb2xsZWN0aW9uLm5hbWVkSXRlbSgp
IGRvZXMgbm90IGNyYXNoIGZvciBjb2xsZWN0aW9uIG9mIHNlbGVjdGVkIG9wdGlvbnMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMg
bm90IGNyYXNoLgorUEFTUyBvcHRpb25zLm5hbWVkSXRlbSgidGVzdCIpIGlzIG51bGwKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi1zZWxlY3RlZE9wdGlvbnMtbmFt
ZWRJdGVtLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi1z
ZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNkM2Q1Mzg5
YjIyMzk2NzM4ODg4OTBiYjMyM2QwODk3NjI3Yjg2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXNlbGVjdGVkT3B0aW9ucy1uYW1lZEl0ZW0t
Y3Jhc2guaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJNYWtlcyBzdXJlIEhU
TUxDb2xsZWN0aW9uLm5hbWVkSXRlbSgpIGRvZXMgbm90IGNyYXNoIGZvciBjb2xsZWN0aW9uIG9m
IHNlbGVjdGVkIG9wdGlvbnMuIik7CitkZWJ1ZygiVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vz
IG5vdCBjcmFzaC4iKTsKKwordmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNl
bGVjdCIpOwordmFyIG9wdGlvbnMgPSBzZWxlY3Quc2VsZWN0ZWRPcHRpb25zOworc2VsZWN0Lmxl
bmd0aCA9IDEwOworc2hvdWxkQmVOdWxsKCdvcHRpb25zLm5hbWVkSXRlbSgidGVzdCIpJyk7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230852</attachid>
            <date>2014-05-05 13:15:21 -0700</date>
            <delta_ts>2014-05-05 15:11:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132575-20140505161454.patch</filename>
            <type>text/plain</type>
            <size>9318</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4Mjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY4N2Q5MjI1ZDJkNmU3
OGM4NTY1MTVjNjJiMTczYTBjNDJiYjE1NS4uOGI2ZGJhNzRlYzliNzRhNWNmYTg2NmY2NjAwMDA5
M2JlZDg2ZmNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA1LTA1ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgTmFtZWQgZWxl
bWVudCBjYWNoZSBjYW4gYmVjb21lIGludmFsaWQgZHVyaW5nIEhUTUxDb2xsZWN0aW9uOjp1cGRh
dGVOYW1lZEVsZW1lbnRDYWNoZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNYWtlIHN1cmUgdGhlIG5hbWVkIGVsZW1lbnQgY2FjaGUgb2JqZWN0IHN0
YXlzIHZhbGlkIGluCisgICAgICAgIEhUTUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRD
YWNoZSgpIHdoaWxlIGl0IGlzIHBvcHVsYXRpbmcgaXQuCisKKyAgICAgICAgVGhlIG1ldGhvZCB3
YXMgcHJldmlvdXNseSBjcmVhdGluZyBhbmQgc2V0dGluZyB0aGUgY2FjaGUgZmlyc3QsIGFuZCB0
aGVuIHN0YXJ0CisgICAgICAgIHRyYXZlcnNpbmcgdGhlIERPTSB0cmVlIHRvIHBvcHVsYXRlIGl0
LiBBcyBhIGNvbnNlcXVlbmNlLCBoYXNOYW1lZEVsZW1lbnRDYWNoZSgpCisgICAgICAgIHdvdWxk
IHN0YXJ0IHJldHVybmluZyB0cnVlIGJlZm9yZSB0aGUgY2FjaGUgaXMgYWN0dWFsbHkgcG9wdWxh
dGVkLgorICAgICAgICBUaGUgaXNzdWUgaXMgdGhhdCBmaW5kaW5nIG1hdGNoZXMgaW4gdGhlIERP
TSB0cmVlIGNhbiBjYXVzZQorICAgICAgICBIVE1MQ29sbGVjdGlvbjo6aW52YWxpZGF0ZUNhY2hl
KCkgdG8gYmUgY2FsbGVkIHVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcyBhbmQKKyAgICAgICAg
dGh1cyB0aGUgbmFtZWQgZWxlbWVudCBjYWNoZSBvYmplY3QgY2FuIGJlY29tZSBpbnZhbGlkIHdo
aWxlCisgICAgICAgIHVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKCkgaXMgcG9wdWxhdGluZyBpdC4K
KworICAgICAgICBUbyBhdm9pZCB0aGUgaXNzdWUsIHRoaXMgcGF0Y2ggdXBkYXRlcyB1cGRhdGVO
YW1lZEVsZW1lbnRDYWNoZSgpIHNvIHRoYXQgdGhlCisgICAgICAgIG5hbWVkIGVsZW1lbnQgY2Fj
aGUgbWFwIGlzIHNldCAqYWZ0ZXIqIHRyYXZlcnNpbmcgdGhlIERPTSB0cmVlLiBUaGlzIHdheSwK
KyAgICAgICAgaGFzTmFtZWRFbGVtZW50Q2FjaGUoKSByZXR1cm5zIGZhbHNlIHdoaWxlIHRoZSBj
YWNoZSBpcyBiZWluZyBwb3B1bGF0ZWQgYW5kCisgICAgICAgIHRoZXJlIGlzIG5vIGNoYW5jZSBv
ZiBpdCBiZWluZyBpbnZhbGlkYXRlZCB0b28gZWFybHkuCisKKyAgICAgICAgVGVzdDogZmFzdC9k
b20vaHRtbGNvbGxlY3Rpb24tc2VsZWN0ZWRPcHRpb25zLW5hbWVkSXRlbS1jcmFzaC5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSk6CisgICAgICAgICogaHRtbC9I
VE1MQ29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OnNldE5h
bWVJdGVtQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OmNyZWF0ZU5h
bWVJdGVtQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rp
b246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKToKKwogMjAxNC0wNS0wNSAgQW5kcmVpIEJ1Y3Vy
ICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc10gU2xpZGVyIGRpc3Bs
YXllZCB3cm9uZyBpbiByZWdpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3Bw
CmluZGV4IGNjYTA3NmU3NjFhZTI2M2FhZWZhMzE3OGIwYjQzMDEzYjk4NzU0NjcuLjk1MmEwNjE2
ZmRjNzIyNTI1ZTEyNzQyYTliNzg2OTNiNzBmMzRlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbGxlY3Rpb24uY3BwCkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBIVE1MQ29sbGVjdGlvbjo6
dXBkYXRlTmFtZWRFbGVtZW50Q2FjaGUoKSBjb25zdAogICAgICAgICByZXR1cm47CiAKIAotICAg
IENvbGxlY3Rpb25OYW1lZEVsZW1lbnRDYWNoZSYgY2FjaGUgPSBjcmVhdGVOYW1lSXRlbUNhY2hl
KCk7CisgICAgYXV0byBjYWNoZSA9IHN0ZDo6bWFrZV91bmlxdWU8Q29sbGVjdGlvbk5hbWVkRWxl
bWVudENhY2hlPigpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IG1faW5kZXhDYWNoZS5ub2RlQ291
bnQoKnRoaXMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKQEAg
LTQ0MiwxNSArNDQyLDE2IEBAIHZvaWQgSFRNTENvbGxlY3Rpb246OnVwZGF0ZU5hbWVkRWxlbWVu
dENhY2hlKCkgY29uc3QKICAgICAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIGlkQXR0clZhbCA9IGVsZW1lbnQtPmdldElkQXR0cmlidXRlKCk7CiAgICAg
ICAgIGlmICghaWRBdHRyVmFsLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGNhY2hlLmFwcGVuZElk
Q2FjaGUoaWRBdHRyVmFsLCBlbGVtZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5hcHBlbmRJZENh
Y2hlKGlkQXR0clZhbCwgZWxlbWVudCk7CiAgICAgICAgIGlmICghZWxlbWVudC0+aXNIVE1MRWxl
bWVudCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZUF0dHJWYWwgPSBlbGVtZW50LT5nZXROYW1lQXR0cmlidXRlKCk7CiAgICAgICAgIGlm
ICghbmFtZUF0dHJWYWwuaXNFbXB0eSgpICYmIGlkQXR0clZhbCAhPSBuYW1lQXR0clZhbCAmJiAo
dHlwZSgpICE9IERvY0FsbCB8fCBuYW1lU2hvdWxkQmVWaXNpYmxlSW5Eb2N1bWVudEFsbCh0b0hU
TUxFbGVtZW50KCplbGVtZW50KSkpKQotICAgICAgICAgICAgY2FjaGUuYXBwZW5kTmFtZUNhY2hl
KG5hbWVBdHRyVmFsLCBlbGVtZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5hcHBlbmROYW1lQ2Fj
aGUobmFtZUF0dHJWYWwsIGVsZW1lbnQpOwogICAgIH0KIAotICAgIGNhY2hlLmRpZFBvcHVsYXRl
KCk7CisgICAgY2FjaGUtPmRpZFBvcHVsYXRlKCk7CisgICAgc2V0TmFtZUl0ZW1DYWNoZShzdGQ6
Om1vdmUoY2FjaGUpKTsKIH0KIAogYm9vbCBIVE1MQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rp
b24uaAppbmRleCA1MDk2NmIwZmJmM2ZjOTY1NjVlZWQ2MzEzYTY3M2I3MTQ1ZTE5NTNkLi4zZDgx
YTM4M2VmMzFkMGI0ZjQzYzI2NGNlZGFmZGM3YmU0MzcyZjViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ29sbGVjdGlvbi5oCkBAIC0xNDEsMTIgKzE0MSwxMSBAQCBwcm90ZWN0ZWQ6CiAKICAgICBS
b290VHlwZSByb290VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJvb3RUeXBlPiht
X3Jvb3RUeXBlKTsgfQogCi0gICAgQ29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlJiBjcmVhdGVO
YW1lSXRlbUNhY2hlKCkgY29uc3QKKyAgICB2b2lkIHNldE5hbWVJdGVtQ2FjaGUoc3RkOjp1bmlx
dWVfcHRyPENvbGxlY3Rpb25OYW1lZEVsZW1lbnRDYWNoZT4gY2FjaGUpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQoIW1fbmFtZWRFbGVtZW50Q2FjaGUpOwotICAgICAgICBtX25hbWVkRWxl
bWVudENhY2hlID0gc3RkOjptYWtlX3VuaXF1ZTxDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU+
KCk7CisgICAgICAgIG1fbmFtZWRFbGVtZW50Q2FjaGUgPSBzdGQ6Om1vdmUoY2FjaGUpOwogICAg
ICAgICBkb2N1bWVudCgpLmNvbGxlY3Rpb25DYWNoZWRJZE5hbWVNYXAoKnRoaXMpOwotICAgICAg
ICByZXR1cm4gKm1fbmFtZWRFbGVtZW50Q2FjaGU7CiAgICAgfQogCiAgICAgY29uc3QgQ29sbGVj
dGlvbk5hbWVkRWxlbWVudENhY2hlJiBuYW1lZEl0ZW1DYWNoZXMoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAppbmRleCBj
NTZlM2FhYWI2ODdkYTI3NzlhOWQ5NzYxOTkxZDY5ZjNmN2MxZDA1Li5lMmM2YmVmMGI1NWU0OGIx
YmI3YTY0ZWJkMWRiMzQ0OWQwMDZiYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQg
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKCkgY29u
c3QKICAgICBpZiAoaGFzTmFtZWRFbGVtZW50Q2FjaGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQ29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlJiBjYWNoZSA9IGNyZWF0ZU5hbWVJdGVtQ2Fj
aGUoKTsKKyAgICBhdXRvIGNhY2hlID0gc3RkOjptYWtlX3VuaXF1ZTxDb2xsZWN0aW9uTmFtZWRF
bGVtZW50Q2FjaGU+KCk7CiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4gZm91bmRJbnB1
dEVsZW1lbnRzOwogICAgIGNvbnN0IFZlY3RvcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQqPiYgZWxl
bWVudHNBcnJheSA9IGZvcm1Db250cm9sRWxlbWVudHMoKTsKIApAQCAtMTUxLDExICsxNTEsMTEg
QEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVtZW50Q2Fj
aGUoKSBjb25zdAogICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZEF0dHJWYWwgPSBl
bGVtZW50LmdldElkQXR0cmlidXRlKCk7CiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWVBdHRyVmFsID0gZWxlbWVudC5nZXROYW1lQXR0cmlidXRlKCk7CiAgICAgICAgICAgICBp
ZiAoIWlkQXR0clZhbC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBjYWNoZS5hcHBlbmRJ
ZENhY2hlKGlkQXR0clZhbCwgJmVsZW1lbnQpOworICAgICAgICAgICAgICAgIGNhY2hlLT5hcHBl
bmRJZENhY2hlKGlkQXR0clZhbCwgJmVsZW1lbnQpOwogICAgICAgICAgICAgICAgIGZvdW5kSW5w
dXRFbGVtZW50cy5hZGQoaWRBdHRyVmFsLmltcGwoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBpZiAoIW5hbWVBdHRyVmFsLmlzRW1wdHkoKSAmJiBpZEF0dHJWYWwgIT0gbmFtZUF0dHJW
YWwpIHsKLSAgICAgICAgICAgICAgICBjYWNoZS5hcHBlbmROYW1lQ2FjaGUobmFtZUF0dHJWYWws
ICZlbGVtZW50KTsKKyAgICAgICAgICAgICAgICBjYWNoZS0+YXBwZW5kTmFtZUNhY2hlKG5hbWVB
dHRyVmFsLCAmZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgZm91bmRJbnB1dEVsZW1lbnRzLmFk
ZChuYW1lQXR0clZhbC5pbXBsKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjgs
MTMgKzE2OCwxNCBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1cGRhdGVOYW1l
ZEVsZW1lbnRDYWNoZSgpIGNvbnN0CiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlk
QXR0clZhbCA9IGVsZW1lbnQuZ2V0SWRBdHRyaWJ1dGUoKTsKICAgICAgICAgICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZUF0dHJWYWwgPSBlbGVtZW50LmdldE5hbWVBdHRyaWJ1dGUoKTsKICAg
ICAgICAgICAgIGlmICghaWRBdHRyVmFsLmlzRW1wdHkoKSAmJiAhZm91bmRJbnB1dEVsZW1lbnRz
LmNvbnRhaW5zKGlkQXR0clZhbC5pbXBsKCkpKQotICAgICAgICAgICAgICAgIGNhY2hlLmFwcGVu
ZElkQ2FjaGUoaWRBdHRyVmFsLCAmZWxlbWVudCk7CisgICAgICAgICAgICAgICAgY2FjaGUtPmFw
cGVuZElkQ2FjaGUoaWRBdHRyVmFsLCAmZWxlbWVudCk7CiAgICAgICAgICAgICBpZiAoIW5hbWVB
dHRyVmFsLmlzRW1wdHkoKSAmJiBpZEF0dHJWYWwgIT0gbmFtZUF0dHJWYWwgJiYgIWZvdW5kSW5w
dXRFbGVtZW50cy5jb250YWlucyhuYW1lQXR0clZhbC5pbXBsKCkpKQotICAgICAgICAgICAgICAg
IGNhY2hlLmFwcGVuZE5hbWVDYWNoZShuYW1lQXR0clZhbCwgJmVsZW1lbnQpOworICAgICAgICAg
ICAgICAgIGNhY2hlLT5hcHBlbmROYW1lQ2FjaGUobmFtZUF0dHJWYWwsICZlbGVtZW50KTsKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGNhY2hlLmRpZFBvcHVsYXRlKCk7CisgICAgY2FjaGUtPmRp
ZFBvcHVsYXRlKCk7CisgICAgc2V0TmFtZUl0ZW1DYWNoZShzdGQ6Om1vdmUoY2FjaGUpKTsKIH0K
IAogdm9pZCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6aW52YWxpZGF0ZUNhY2hlKERvY3Vt
ZW50JiBkb2N1bWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlOTE2ZDBjODdiMDM1NTA4NDg4OTdjNWFjOThk
NDE1MTg0MmZiNDg4Li5iYWM0MjJhNjA0OTBmMjZlYWJiNmI0MjVjZTk0MTQxY2Y4OTc1YzMyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDUtMDUgIENocmlzdG9waGUgRHVtZXogIDxjaC5k
dW1lekBzYW1zdW5nLmNvbT4KKworICAgICAgICBOYW1lZCBlbGVtZW50IGNhY2hlIGNhbiBiZWNv
bWUgaW52YWxpZCBkdXJpbmcgSFRNTENvbGxlY3Rpb246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjU3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBs
YXlvdXQgdGVzdCB0byB2ZXJpZnkgdGhhdCBIVE1MQ29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVt
ZW50Q2FjaGUoKSBpcyBubyBsb25nZXIKKyAgICAgICAgY3Jhc2hpbmcgZm9yIGNvbGxlY3Rpb25z
IG9mIHNlbGVjdGVkIG9wdGlvbnMuCisKKyAgICAgICAgKiBmYXN0L2RvbS9odG1sY29sbGVjdGlv
bi1zZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vaHRtbGNvbGxlY3Rpb24tc2VsZWN0ZWRPcHRpb25zLW5hbWVkSXRl
bS1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxNC0wNS0wNSAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3Vy
QGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc10gU2xpZGVyIGRpc3BsYXllZCB3cm9u
ZyBpbiByZWdpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVj
dGlvbi1zZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXNlbGVjdGVkT3B0aW9ucy1uYW1lZEl0ZW0t
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NWQ3YjE5ZGRjMDAwYWUzMzk1NDdiNzYz
OWQzNDNhZmNjOTA1ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9o
dG1sY29sbGVjdGlvbi1zZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitNYWtlcyBzdXJlIEhUTUxDb2xsZWN0aW9uLm5hbWVkSXRlbSgp
IGRvZXMgbm90IGNyYXNoIGZvciBjb2xsZWN0aW9uIG9mIHNlbGVjdGVkIG9wdGlvbnMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMg
bm90IGNyYXNoLgorUEFTUyBvcHRpb25zLm5hbWVkSXRlbSgidGVzdCIpIGlzIG51bGwKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi1zZWxlY3RlZE9wdGlvbnMtbmFt
ZWRJdGVtLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi1z
ZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZlOTM0NzM1
MjM3YTkwNGVhNDQzNTM5ZjI2YjAyNWFjNThlYzkxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXNlbGVjdGVkT3B0aW9ucy1uYW1lZEl0ZW0t
Y3Jhc2guaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJNYWtlcyBzdXJlIEhU
TUxDb2xsZWN0aW9uLm5hbWVkSXRlbSgpIGRvZXMgbm90IGNyYXNoIGZvciBjb2xsZWN0aW9uIG9m
IHNlbGVjdGVkIG9wdGlvbnMuIik7CitkZWJ1ZygiVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vz
IG5vdCBjcmFzaC4iKTsKKwordmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNl
bGVjdCIpOwordmFyIG9wdGlvbnMgPSBzZWxlY3Quc2VsZWN0ZWRPcHRpb25zOworc2VsZWN0Lmxl
bmd0aCA9IDEwOworc2hvdWxkQmVOdWxsKCdvcHRpb25zLm5hbWVkSXRlbSgidGVzdCIpJyk7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230858</attachid>
            <date>2014-05-05 15:11:41 -0700</date>
            <delta_ts>2014-05-05 15:51:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132575-20140505181118.patch</filename>
            <type>text/plain</type>
            <size>9409</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTEyMzk2OWZkZWEzMzdj
YWZmZjUwM2M4MmYwYjZkM2RhZWYzMjRkNy4uN2ZhNTVhYjhmMDMxM2M5YzdmNTk2NGE4N2JjMDA3
Yzk4MGQ2YWQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA1LTA1ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgTmFtZWQgZWxl
bWVudCBjYWNoZSBjYW4gYmVjb21lIGludmFsaWQgZHVyaW5nIEhUTUxDb2xsZWN0aW9uOjp1cGRh
dGVOYW1lZEVsZW1lbnRDYWNoZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzI1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2Eu
CisKKyAgICAgICAgTWFrZSBzdXJlIHRoZSBuYW1lZCBlbGVtZW50IGNhY2hlIG9iamVjdCBzdGF5
cyB2YWxpZCBpbgorICAgICAgICBIVE1MQ29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVtZW50Q2Fj
aGUoKSB3aGlsZSBpdCBpcyBwb3B1bGF0aW5nIGl0LgorCisgICAgICAgIFRoZSBtZXRob2Qgd2Fz
IHByZXZpb3VzbHkgY3JlYXRpbmcgYW5kIHNldHRpbmcgdGhlIGNhY2hlIGZpcnN0LCBhbmQgdGhl
biBzdGFydAorICAgICAgICB0cmF2ZXJzaW5nIHRoZSBET00gdHJlZSB0byBwb3B1bGF0ZSBpdC4g
QXMgYSBjb25zZXF1ZW5jZSwgaGFzTmFtZWRFbGVtZW50Q2FjaGUoKQorICAgICAgICB3b3VsZCBz
dGFydCByZXR1cm5pbmcgdHJ1ZSBiZWZvcmUgdGhlIGNhY2hlIGlzIGFjdHVhbGx5IHBvcHVsYXRl
ZC4KKyAgICAgICAgVGhlIGlzc3VlIGlzIHRoYXQgZmluZGluZyBtYXRjaGVzIGluIHRoZSBET00g
dHJlZSBjYW4gY2F1c2UKKyAgICAgICAgSFRNTENvbGxlY3Rpb246OmludmFsaWRhdGVDYWNoZSgp
IHRvIGJlIGNhbGxlZCB1bmRlciBjZXJ0YWluIGNpcmN1bXN0YW5jZXMgYW5kCisgICAgICAgIHRo
dXMgdGhlIG5hbWVkIGVsZW1lbnQgY2FjaGUgb2JqZWN0IGNhbiBiZWNvbWUgaW52YWxpZCB3aGls
ZQorICAgICAgICB1cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSgpIGlzIHBvcHVsYXRpbmcgaXQuCisK
KyAgICAgICAgVG8gYXZvaWQgdGhlIGlzc3VlLCB0aGlzIHBhdGNoIHVwZGF0ZXMgdXBkYXRlTmFt
ZWRFbGVtZW50Q2FjaGUoKSBzbyB0aGF0IHRoZQorICAgICAgICBuYW1lZCBlbGVtZW50IGNhY2hl
IG1hcCBpcyBzZXQgKmFmdGVyKiB0cmF2ZXJzaW5nIHRoZSBET00gdHJlZS4gVGhpcyB3YXksCisg
ICAgICAgIGhhc05hbWVkRWxlbWVudENhY2hlKCkgcmV0dXJucyBmYWxzZSB3aGlsZSB0aGUgY2Fj
aGUgaXMgYmVpbmcgcG9wdWxhdGVkIGFuZAorICAgICAgICB0aGVyZSBpcyBubyBjaGFuY2Ugb2Yg
aXQgYmVpbmcgaW52YWxpZGF0ZWQgdG9vIGVhcmx5LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L2h0bWxjb2xsZWN0aW9uLXNlbGVjdGVkT3B0aW9ucy1uYW1lZEl0ZW0tY3Jhc2guaHRtbAorCisg
ICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVtZW50Q2FjaGUpOgorICAgICAgICAqIGh0bWwvSFRN
TENvbGxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpzZXROYW1l
SXRlbUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpjcmVhdGVOYW1l
SXRlbUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbHNDb2xs
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9u
Ojp1cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSk6CisKIDIwMTQtMDUtMDUgIEJlbmphbWluIFBvdWxh
aW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtpT1NdW1dLMl0gU3BlY2lhbCBj
YXNlIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6OmNvbGxlY3RHZW9tZXRyeUZvclNtYXJ0
TWFnbmlmaWNhdGlvbkdlc3R1cmUoKSBmb3IgaW1hZ2UgZG9jdW1lbnRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENvbGxlY3Rpb24uY3BwCmluZGV4IGNjYTA3NmU3NjFhZTI2M2FhZWZhMzE3OGIwYjQz
MDEzYjk4NzU0NjcuLjk1MmEwNjE2ZmRjNzIyNTI1ZTEyNzQyYTliNzg2OTNiNzBmMzRlMjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCkBAIC00MzQsNyArNDM0LDcgQEAg
dm9pZCBIVE1MQ29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVtZW50Q2FjaGUoKSBjb25zdAogICAg
ICAgICByZXR1cm47CiAKIAotICAgIENvbGxlY3Rpb25OYW1lZEVsZW1lbnRDYWNoZSYgY2FjaGUg
PSBjcmVhdGVOYW1lSXRlbUNhY2hlKCk7CisgICAgYXV0byBjYWNoZSA9IHN0ZDo6bWFrZV91bmlx
dWU8Q29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlPigpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9
IG1faW5kZXhDYWNoZS5ub2RlQ291bnQoKnRoaXMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzaXplOyBpKyspIHsKQEAgLTQ0MiwxNSArNDQyLDE2IEBAIHZvaWQgSFRNTENvbGxlY3Rp
b246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKCkgY29uc3QKICAgICAgICAgQVNTRVJUKGVsZW1l
bnQpOwogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlkQXR0clZhbCA9IGVsZW1lbnQtPmdl
dElkQXR0cmlidXRlKCk7CiAgICAgICAgIGlmICghaWRBdHRyVmFsLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIGNhY2hlLmFwcGVuZElkQ2FjaGUoaWRBdHRyVmFsLCBlbGVtZW50KTsKKyAgICAgICAg
ICAgIGNhY2hlLT5hcHBlbmRJZENhY2hlKGlkQXR0clZhbCwgZWxlbWVudCk7CiAgICAgICAgIGlm
ICghZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZUF0dHJWYWwgPSBlbGVtZW50LT5nZXROYW1lQXR0
cmlidXRlKCk7CiAgICAgICAgIGlmICghbmFtZUF0dHJWYWwuaXNFbXB0eSgpICYmIGlkQXR0clZh
bCAhPSBuYW1lQXR0clZhbCAmJiAodHlwZSgpICE9IERvY0FsbCB8fCBuYW1lU2hvdWxkQmVWaXNp
YmxlSW5Eb2N1bWVudEFsbCh0b0hUTUxFbGVtZW50KCplbGVtZW50KSkpKQotICAgICAgICAgICAg
Y2FjaGUuYXBwZW5kTmFtZUNhY2hlKG5hbWVBdHRyVmFsLCBlbGVtZW50KTsKKyAgICAgICAgICAg
IGNhY2hlLT5hcHBlbmROYW1lQ2FjaGUobmFtZUF0dHJWYWwsIGVsZW1lbnQpOwogICAgIH0KIAot
ICAgIGNhY2hlLmRpZFBvcHVsYXRlKCk7CisgICAgY2FjaGUtPmRpZFBvcHVsYXRlKCk7CisgICAg
c2V0TmFtZUl0ZW1DYWNoZShzdGQ6Om1vdmUoY2FjaGUpKTsKIH0KIAogYm9vbCBIVE1MQ29sbGVj
dGlvbjo6aGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAppbmRleCA1MDk2NmIwZmJmM2ZjOTY1NjVlZWQ2MzEz
YTY3M2I3MTQ1ZTE5NTNkLi4zZDgxYTM4M2VmMzFkMGI0ZjQzYzI2NGNlZGFmZGM3YmU0MzcyZjVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCkBAIC0xNDEsMTIgKzE0MSwxMSBA
QCBwcm90ZWN0ZWQ6CiAKICAgICBSb290VHlwZSByb290VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PFJvb3RUeXBlPihtX3Jvb3RUeXBlKTsgfQogCi0gICAgQ29sbGVjdGlvbk5hbWVk
RWxlbWVudENhY2hlJiBjcmVhdGVOYW1lSXRlbUNhY2hlKCkgY29uc3QKKyAgICB2b2lkIHNldE5h
bWVJdGVtQ2FjaGUoc3RkOjp1bmlxdWVfcHRyPENvbGxlY3Rpb25OYW1lZEVsZW1lbnRDYWNoZT4g
Y2FjaGUpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbmFtZWRFbGVtZW50Q2FjaGUp
OwotICAgICAgICBtX25hbWVkRWxlbWVudENhY2hlID0gc3RkOjptYWtlX3VuaXF1ZTxDb2xsZWN0
aW9uTmFtZWRFbGVtZW50Q2FjaGU+KCk7CisgICAgICAgIG1fbmFtZWRFbGVtZW50Q2FjaGUgPSBz
dGQ6Om1vdmUoY2FjaGUpOwogICAgICAgICBkb2N1bWVudCgpLmNvbGxlY3Rpb25DYWNoZWRJZE5h
bWVNYXAoKnRoaXMpOwotICAgICAgICByZXR1cm4gKm1fbmFtZWRFbGVtZW50Q2FjaGU7CiAgICAg
fQogCiAgICAgY29uc3QgQ29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlJiBuYW1lZEl0ZW1DYWNo
ZXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xzQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmNwcAppbmRleCBjNTZlM2FhYWI2ODdkYTI3NzlhOWQ5NzYxOTkxZDY5ZjNmN2Mx
ZDA1Li5lMmM2YmVmMGI1NWU0OGIxYmI3YTY0ZWJkMWRiMzQ0OWQwMDZiYzdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcApAQCAt
MTQwLDcgKzE0MCw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OnVwZGF0ZU5h
bWVkRWxlbWVudENhY2hlKCkgY29uc3QKICAgICBpZiAoaGFzTmFtZWRFbGVtZW50Q2FjaGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgQ29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlJiBjYWNo
ZSA9IGNyZWF0ZU5hbWVJdGVtQ2FjaGUoKTsKKyAgICBhdXRvIGNhY2hlID0gc3RkOjptYWtlX3Vu
aXF1ZTxDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU+KCk7CiAgICAgSGFzaFNldDxBdG9taWNT
dHJpbmdJbXBsKj4gZm91bmRJbnB1dEVsZW1lbnRzOwogICAgIGNvbnN0IFZlY3RvcjxGb3JtQXNz
b2NpYXRlZEVsZW1lbnQqPiYgZWxlbWVudHNBcnJheSA9IGZvcm1Db250cm9sRWxlbWVudHMoKTsK
IApAQCAtMTUxLDExICsxNTEsMTEgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6
dXBkYXRlTmFtZWRFbGVtZW50Q2FjaGUoKSBjb25zdAogICAgICAgICAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBpZEF0dHJWYWwgPSBlbGVtZW50LmdldElkQXR0cmlidXRlKCk7CiAgICAgICAgICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVBdHRyVmFsID0gZWxlbWVudC5nZXROYW1lQXR0cmli
dXRlKCk7CiAgICAgICAgICAgICBpZiAoIWlkQXR0clZhbC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
ICAgICAgICBjYWNoZS5hcHBlbmRJZENhY2hlKGlkQXR0clZhbCwgJmVsZW1lbnQpOworICAgICAg
ICAgICAgICAgIGNhY2hlLT5hcHBlbmRJZENhY2hlKGlkQXR0clZhbCwgJmVsZW1lbnQpOwogICAg
ICAgICAgICAgICAgIGZvdW5kSW5wdXRFbGVtZW50cy5hZGQoaWRBdHRyVmFsLmltcGwoKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIW5hbWVBdHRyVmFsLmlzRW1wdHkoKSAmJiBp
ZEF0dHJWYWwgIT0gbmFtZUF0dHJWYWwpIHsKLSAgICAgICAgICAgICAgICBjYWNoZS5hcHBlbmRO
YW1lQ2FjaGUobmFtZUF0dHJWYWwsICZlbGVtZW50KTsKKyAgICAgICAgICAgICAgICBjYWNoZS0+
YXBwZW5kTmFtZUNhY2hlKG5hbWVBdHRyVmFsLCAmZWxlbWVudCk7CiAgICAgICAgICAgICAgICAg
Zm91bmRJbnB1dEVsZW1lbnRzLmFkZChuYW1lQXR0clZhbC5pbXBsKCkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CkBAIC0xNjgsMTMgKzE2OCwxNCBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSgpIGNvbnN0CiAgICAgICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGlkQXR0clZhbCA9IGVsZW1lbnQuZ2V0SWRBdHRyaWJ1dGUoKTsK
ICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZUF0dHJWYWwgPSBlbGVtZW50Lmdl
dE5hbWVBdHRyaWJ1dGUoKTsKICAgICAgICAgICAgIGlmICghaWRBdHRyVmFsLmlzRW1wdHkoKSAm
JiAhZm91bmRJbnB1dEVsZW1lbnRzLmNvbnRhaW5zKGlkQXR0clZhbC5pbXBsKCkpKQotICAgICAg
ICAgICAgICAgIGNhY2hlLmFwcGVuZElkQ2FjaGUoaWRBdHRyVmFsLCAmZWxlbWVudCk7CisgICAg
ICAgICAgICAgICAgY2FjaGUtPmFwcGVuZElkQ2FjaGUoaWRBdHRyVmFsLCAmZWxlbWVudCk7CiAg
ICAgICAgICAgICBpZiAoIW5hbWVBdHRyVmFsLmlzRW1wdHkoKSAmJiBpZEF0dHJWYWwgIT0gbmFt
ZUF0dHJWYWwgJiYgIWZvdW5kSW5wdXRFbGVtZW50cy5jb250YWlucyhuYW1lQXR0clZhbC5pbXBs
KCkpKQotICAgICAgICAgICAgICAgIGNhY2hlLmFwcGVuZE5hbWVDYWNoZShuYW1lQXR0clZhbCwg
JmVsZW1lbnQpOworICAgICAgICAgICAgICAgIGNhY2hlLT5hcHBlbmROYW1lQ2FjaGUobmFtZUF0
dHJWYWwsICZlbGVtZW50KTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGNhY2hlLmRpZFBvcHVs
YXRlKCk7CisgICAgY2FjaGUtPmRpZFBvcHVsYXRlKCk7CisgICAgc2V0TmFtZUl0ZW1DYWNoZShz
dGQ6Om1vdmUoY2FjaGUpKTsKIH0KIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6
aW52YWxpZGF0ZUNhY2hlKERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MDU3Nzkx
MWNjZDVkMzQ2OTk3ZWUzZjA5MWFiYWQ0ZTJjMTBkNzg4Li5mMTcxN2RjNzM5ODQ2ZDdkNzgxZWNl
YjRkYThkNDg0YWY2NGQ3OGViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDUtMDUgIENo
cmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzYW1zdW5nLmNvbT4KKworICAgICAgICBOYW1lZCBl
bGVtZW50IGNhY2hlIGNhbiBiZWNvbWUgaW52YWxpZCBkdXJpbmcgSFRNTENvbGxlY3Rpb246OnVw
ZGF0ZU5hbWVkRWxlbWVudENhY2hlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMjU3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3
YS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHRoYXQgSFRNTENvbGxlY3Rp
b246OnVwZGF0ZU5hbWVkRWxlbWVudENhY2hlKCkgaXMgbm8gbG9uZ2VyCisgICAgICAgIGNyYXNo
aW5nIGZvciBjb2xsZWN0aW9ucyBvZiBzZWxlY3RlZCBvcHRpb25zLgorCisgICAgICAgICogZmFz
dC9kb20vaHRtbGNvbGxlY3Rpb24tc2VsZWN0ZWRPcHRpb25zLW5hbWVkSXRlbS1jcmFzaC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXNlbGVj
dGVkT3B0aW9ucy1uYW1lZEl0ZW0tY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMTQtMDUtMDUgIElv
biBSb3NjYSAgPHJvc2NhQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIEJsZW5kaW5nXSBXZWJr
aXQtYmxlbmQtbW9kZSBmYWlscyBmb3IgYWNjZWxlcmF0ZWQgcGFyZW50IHdpdGggb3ZlcmZsb3c6
aGlkZGVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi1z
ZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXNlbGVjdGVkT3B0aW9ucy1uYW1lZEl0ZW0tY3Jhc2gt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NWQ3YjE5ZGRjMDAwYWUzMzk1NDdiNzYzOWQzNDNh
ZmNjOTA1ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29s
bGVjdGlvbi1zZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitNYWtlcyBzdXJlIEhUTUxDb2xsZWN0aW9uLm5hbWVkSXRlbSgpIGRvZXMg
bm90IGNyYXNoIGZvciBjb2xsZWN0aW9uIG9mIHNlbGVjdGVkIG9wdGlvbnMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNy
YXNoLgorUEFTUyBvcHRpb25zLm5hbWVkSXRlbSgidGVzdCIpIGlzIG51bGwKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi1zZWxlY3RlZE9wdGlvbnMtbmFtZWRJdGVt
LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi1zZWxlY3Rl
ZE9wdGlvbnMtbmFtZWRJdGVtLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI2YzAwZjE0YTVhODlk
ZGM4NTkxNWNiNTQ3MjhiNTU1NTRlN2NmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXNlbGVjdGVkT3B0aW9ucy1uYW1lZEl0ZW0tY3Jhc2gu
aHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiTWFrZXMgc3VyZSBIVE1MQ29sbGVjdGlvbi5uYW1lZEl0ZW0o
KSBkb2VzIG5vdCBjcmFzaCBmb3IgY29sbGVjdGlvbiBvZiBzZWxlY3RlZCBvcHRpb25zLiIpOwor
ZGVidWcoIlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guIik7CisKK3ZhciBz
ZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKK3ZhciBvcHRpb25zID0g
c2VsZWN0LnNlbGVjdGVkT3B0aW9uczsKK3NlbGVjdC5sZW5ndGggPSAxMDsKK3Nob3VsZEJlTnVs
bCgnb3B0aW9ucy5uYW1lZEl0ZW0oInRlc3QiKScpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>