<?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>92678</bug_id>
          
          <creation_ts>2012-07-30 14:17:09 -0700</creation_ts>
          <short_desc>Month-year selector on calendar picker should be touch friendly.</short_desc>
          <delta_ts>2012-08-02 10:02:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kevin Ellis">kevers</reporter>
          <assigned_to name="Kevin Ellis">kevers</assigned_to>
          <cc>rjkroege</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>682374</commentid>
    <comment_count>0</comment_count>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-07-30 14:17:09 -0700</bug_when>
    <thetext>Month-year selector on calendar picker should be touch friendly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682381</commentid>
    <comment_count>1</comment_count>
      <attachid>155362</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-07-30 14:22:38 -0700</bug_when>
    <thetext>Created attachment 155362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682614</commentid>
    <comment_count>2</comment_count>
      <attachid>155362</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-30 18:51:51 -0700</bug_when>
    <thetext>Comment on attachment 155362
Patch

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

&gt; Source/WebCore/Resources/calendarPicker.js:578
&gt; +        var option = createElement(&quot;div&quot;, ClassNames.MonthSelectorPopupEntry, formatYearMonth(Math.floor(m / 12), m % 12));
&gt; +        option.setAttribute(&apos;value&apos;, String(Math.floor(m / 12)) + &quot;-&quot; + String(m % 12));
&gt; +        this._monthPopupContents.appendChild(option);
&gt;          if (m == current)
&gt; -            option.selected = true;
&gt; +            option.setAttribute(&apos;selected&apos;, true); 

&lt;div&gt; doesn&apos;t have &apos;value&apos; and &apos;selected&apos; attributes.  Using non-standard attributes is not a good practice.
Please use data-* attributes and/or element.dataset.

&gt; Source/WebCore/Resources/calendarPicker.js:-576
&gt; -    this._monthPopup.size = Math.max(4, Math.min(10, this._monthPopup.length));

Does the popup work fine with &lt;input type=date max=&quot;2012-07-31&quot;&gt;? I&apos;m afraid the popup has unnecessary whitespace at the bottom.

&gt; Source/WebCore/Resources/calendarPicker.js:604
&gt;  
&gt; +YearMonthController.prototype._getSelection = function()

Please add a type annotation for the return value.

&gt; Source/WebCore/Resources/calendarPicker.js:616
&gt; +        // move trigged during a scroll from resetting the selection.  Automatically

We should add only one space after &apos;.&apos;

&gt; Source/WebCore/Resources/calendarPicker.js:684
&gt; +    if (!selection)
&gt; +      return;

wrong indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683017</commentid>
    <comment_count>3</comment_count>
      <attachid>155527</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-07-31 07:23:09 -0700</bug_when>
    <thetext>Created attachment 155527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683023</commentid>
    <comment_count>4</comment_count>
      <attachid>155362</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-07-31 07:27:30 -0700</bug_when>
    <thetext>Comment on attachment 155362
Patch

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

&gt;&gt; Source/WebCore/Resources/calendarPicker.js:578
&gt;&gt; +            option.setAttribute(&apos;selected&apos;, true); 
&gt; 
&gt; &lt;div&gt; doesn&apos;t have &apos;value&apos; and &apos;selected&apos; attributes.  Using non-standard attributes is not a good practice.
&gt; Please use data-* attributes and/or element.dataset.

Switched to dataset.value and a class name to mark the selected item.

&gt;&gt; Source/WebCore/Resources/calendarPicker.js:-576
&gt;&gt; -    this._monthPopup.size = Math.max(4, Math.min(10, this._monthPopup.length));
&gt; 
&gt; Does the popup work fine with &lt;input type=date max=&quot;2012-07-31&quot;&gt;? I&apos;m afraid the popup has unnecessary whitespace at the bottom.

The CSS rules use max-height to avoid unnecessary whitespace; however, there was a problem with scroll positioning and extra white-space at the side when a scroll-bar is not required.

&gt;&gt; Source/WebCore/Resources/calendarPicker.js:604
&gt;&gt; +YearMonthController.prototype._getSelection = function()
&gt; 
&gt; Please add a type annotation for the return value.

Done.

&gt;&gt; Source/WebCore/Resources/calendarPicker.js:616
&gt;&gt; +        // move trigged during a scroll from resetting the selection.  Automatically
&gt; 
&gt; We should add only one space after &apos;.&apos;

Done.

&gt;&gt; Source/WebCore/Resources/calendarPicker.js:684
&gt;&gt; +      return;
&gt; 
&gt; wrong indentation

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683811</commentid>
    <comment_count>5</comment_count>
      <attachid>155527</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-31 20:21:45 -0700</bug_when>
    <thetext>Comment on attachment 155527
Patch

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

Almost ok.

&gt; Source/WebCore/ChangeLog:31
&gt; +        * Resources/calendarPicker.css:
&gt; +        (.month-selector-popup):
&gt; +        (.month-selector-popup-contents):
&gt; +        (.month-selector-popup-entry):
&gt; +        (.month-selector-popup-entry[selected=true]):
&gt; +        (@media (pointer:coarse)):
&gt; +        * Resources/calendarPicker.js:
&gt; +        (YearMonthController.prototype.attachTo):
&gt; +        (YearMonthController.prototype._redraw):
&gt; +        (YearMonthController.prototype._showPopup):
&gt; +        (YearMonthController.prototype._closePopup):
&gt; +        (YearMonthController.prototype._getSelection):
&gt; +        (YearMonthController.prototype._handleMouseMove):
&gt; +        (YearMonthController.prototype._handleMonthPopupKey):
&gt; +        (YearMonthController.prototype._handleYearMonthChange):

Please update the list, and add comments for each of entries.

&gt; Source/WebCore/Resources/calendarPicker.js:443
&gt; +    this._monthPopup.setAttribute(&apos;tabindex&apos;, 0);

nit: this._monthPopup.tabIndex = 0 is simpler and consistent with other part.

&gt; Source/WebCore/Resources/calendarPicker.js:601
&gt; +        this._monthPopup.style.setProperty(&apos;-webkit-padding-end&apos;, &apos;15px&apos;);

nit: ...style.webkitPaddingEnd = &apos;15px&apos; is simpler and consistent with others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684186</commentid>
    <comment_count>6</comment_count>
      <attachid>155809</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-08-01 07:47:50 -0700</bug_when>
    <thetext>Created attachment 155809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684188</commentid>
    <comment_count>7</comment_count>
      <attachid>155527</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-08-01 07:49:13 -0700</bug_when>
    <thetext>Comment on attachment 155527
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:31
&gt;&gt; +        (YearMonthController.prototype._handleYearMonthChange):
&gt; 
&gt; Please update the list, and add comments for each of entries.

Done.

&gt;&gt; Source/WebCore/Resources/calendarPicker.js:443
&gt;&gt; +    this._monthPopup.setAttribute(&apos;tabindex&apos;, 0);
&gt; 
&gt; nit: this._monthPopup.tabIndex = 0 is simpler and consistent with other part.

Done.

&gt;&gt; Source/WebCore/Resources/calendarPicker.js:601
&gt;&gt; +        this._monthPopup.style.setProperty(&apos;-webkit-padding-end&apos;, &apos;15px&apos;);
&gt; 
&gt; nit: ...style.webkitPaddingEnd = &apos;15px&apos; is simpler and consistent with others.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684353</commentid>
    <comment_count>8</comment_count>
      <attachid>155527</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 11:21:39 -0700</bug_when>
    <thetext>Comment on attachment 155527
Patch

Cleared review? from obsolete attachment 155527 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684710</commentid>
    <comment_count>9</comment_count>
      <attachid>155809</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-08-01 16:06:10 -0700</bug_when>
    <thetext>Comment on attachment 155809
Patch

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

&gt; Source/WebCore/ChangeLog:30
&gt; +        Summary of changes:
&gt; +          - Changed selector popup from a list-box to an absolute positined div
&gt; +            to enable better CSS control over appearance.
&gt; +          - Added styles for menu content wrapper and month-year entries
&gt; +            to layout as a scrollable table within the popup window. 
&gt; +          - Add style to highlight selected month-year.
&gt; +          - Added rules to enlarge entries in the popup menu on devices that
&gt; +            support touch.
&gt; +          - Update attachTo to create popup menu and content wrapper.
&gt; +          - Update redraw to populate table in popup rather than listbox.
&gt; +          - Update showPopup to set the scroll position and add padding to 
&gt; +            accomodate a scrollbar as required.
&gt; +          - Update closePopup to restore focus to the calendar.
&gt; +          - Add support for keyboard navigation in handleMonthPopupKey.
&gt; +          - Added handleMouseMove to update the selected month-year on hover.
&gt; +          - Update handleYearMonthChange to retrieve the value from the selected
&gt; +            month-year.

Such comments should be put to the file/function list below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685431</commentid>
    <comment_count>10</comment_count>
      <attachid>156096</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-08-02 08:37:26 -0700</bug_when>
    <thetext>Created attachment 156096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685434</commentid>
    <comment_count>11</comment_count>
      <attachid>155809</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-08-02 08:38:31 -0700</bug_when>
    <thetext>Comment on attachment 155809
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:30
&gt;&gt; +            month-year.
&gt; 
&gt; Such comments should be put to the file/function list below.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685525</commentid>
    <comment_count>12</comment_count>
      <attachid>156096</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-02 10:02:16 -0700</bug_when>
    <thetext>Comment on attachment 156096
Patch

Clearing flags on attachment: 156096

Committed r124473: &lt;http://trac.webkit.org/changeset/124473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685526</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-02 10:02:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155362</attachid>
            <date>2012-07-30 14:22:38 -0700</date>
            <delta_ts>2012-07-31 07:27:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92678-20120730172222.patch</filename>
            <type>text/plain</type>
            <size>10987</size>
            <attacher name="Kevin Ellis">kevers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA4NWU3NzdmNTg3MDdm
YTJkZThlOWZmZWZmMGYxYjhmMjdiZTFmNS4uNzdlZDhjNjVlZGNjNWZiZGMzMWRiY2VmNDI4ZTEx
NzFkMTc3ODRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA3LTMwICBLZXZp
biBFbGxpcyAgPGtldmVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW9udGgteWVhciBzZWxl
Y3RvciBvbiBjYWxlbmRhciBwaWNrZXIgc2hvdWxkIGJlIHRvdWNoIGZyaWVuZGx5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI2NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5IHRoZSBt
b250aC15ZWFyIHBvcHVwIG1lbnUgd2FzIGltcGxlbWVudGVkIHVzaW5nIGEgbGlzdGJveCwKKyAg
ICAgICAgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBDU1MgY3VzdG9taXphdGlvbi4gIEVudHJpZXMg
aW4gdGhlIGxpc3Rib3gKKyAgICAgICAgd2VyZSB0b28gc2hhbGxvdyB0byByZWxpYWJseSB0YXJn
ZXQgd2l0aCB0b3VjaCBnZXN0dXJlcy4gIFRoZQorICAgICAgICByZXBsYWNlbWVudCBwb3B1cCBp
cyBDU1MgY29uZmlndXJhYmxlIHdpdGggbGFyZ2VyIGVudHJpZXMgb24gZGV2aWNlcworICAgICAg
ICB0aGF0IHN1cHBvcnQgdG91Y2ggaW5wdXQuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIHdp
dGggYW5kIHdpdGhvdXQgdG91Y2ggc3VwcG9ydCBpbiBFbmdsaXNoLCBKYXBhbmVzZQorICAgICAg
ICBhbmQgQXJhYmljLgorCisgICAgICAgICogUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmNzczoK
KyAgICAgICAgKC5tb250aC1zZWxlY3Rvci1wb3B1cCk6CisgICAgICAgICgubW9udGgtc2VsZWN0
b3ItcG9wdXAtY29udGVudHMpOgorICAgICAgICAoLm1vbnRoLXNlbGVjdG9yLXBvcHVwLWVudHJ5
KToKKyAgICAgICAgKC5tb250aC1zZWxlY3Rvci1wb3B1cC1lbnRyeVtzZWxlY3RlZD10cnVlXSk6
CisgICAgICAgIChAbWVkaWEgKHBvaW50ZXI6Y29hcnNlKSk6CisgICAgICAgICogUmVzb3VyY2Vz
L2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5
cGUuYXR0YWNoVG8pOgorICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX3Jl
ZHJhdyk6CisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5fc2hvd1BvcHVw
KToKKyAgICAgICAgKFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9jbG9zZVBvcHVwKToK
KyAgICAgICAgKFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9nZXRTZWxlY3Rpb24pOgor
ICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlTW92ZSk6
CisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlTW9udGhQb3B1
cEtleSk6CisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlWWVh
ck1vbnRoQ2hhbmdlKToKKwogMjAxMi0wNy0zMCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBUaGVyZSBpcyBubyB3YXkgdG8gdGVsbCB3
aGV0aGVyIGFuIGVsZW1lbnQgY2FuIGJlIGFjdGl2YXRlZCBvciBub3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRhclBpY2tlci5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvY2FsZW5kYXJQaWNrZXIuY3NzCmluZGV4IGU0YTYyNGFlZDYxYTdhOWI5MGJl
YTYxNDI3MGIxNjNkODhlYTc4YWMuLjEwNTkxNmIyZDNmYTUxMGVmZGNkN2UyZmYyOGNiYTQwN2Fk
MmZiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRhclBpY2tl
ci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmNzcwpA
QCAtODIsOSArODIsNTEgQEAgYm9keSB7CiB9CiAKIC5tb250aC1zZWxlY3Rvci1wb3B1cCB7Cisg
ICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIC13ZWJraXQtYm94LXNoYWRv
dzoKKyAgICAgICAgMCAwIDAgMXB4IHJnYmEoMCwwLDAsMC4xKSwKKyAgICAgICAgMCA1cHggMXB4
IDFweCByZ2JhKDAsMCwwLDAuMSksCisgICAgICAgIDAgNXB4IDJweCAxcHggcmdiYSgwLDAsMCww
LjEpLAorICAgICAgICAwIDVweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuNSk7CisgICAgLXdlYmtp
dC1wYWRkaW5nLXN0YXJ0OiA1cHg7CisgICAgLXdlYmtpdC1wYWRkaW5nLWVuZDogMTVweDsKKyAg
ICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgb3V0bGluZTogbm9u
ZTsKLSAgICB6LWluZGV4OiAyOworICAgIG1heC1oZWlnaHQ6IDEwLjhlbTsKKyAgICBvdmVyZmxv
dy15OiBhdXRvOworICAgIHBhZGRpbmctYm90dG9tOiAwOworICAgIHBhZGRpbmctdG9wOiAwOwor
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCisu
bW9udGgtc2VsZWN0b3ItcG9wdXAtY29udGVudHMgeworICAgIGRpc3BsYXk6IHRhYmxlOworfQor
CisubW9udGgtc2VsZWN0b3ItcG9wdXAtZW50cnkgeworICAgIC13ZWJraXQtcGFkZGluZy1zdGFy
dDogNXB4OworICAgIC13ZWJraXQtcGFkZGluZy1lbmQ6IDVweDsKKyAgICBjdXJzb3I6IHBvaW50
ZXI7CisgICAgZGlzcGxheTsgdGFibGUtcm93OworICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTsKK30K
KworLm1vbnRoLXNlbGVjdG9yLXBvcHVwLWVudHJ5W3NlbGVjdGVkPXRydWVdIHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoaWdobGlnaHQ7CisgICAgY29sb3I6IGhpZ2hsaWdodHRleHQ7CisgICAg
dGV4dC1zaGFkb3c6IG5vbmU7Cit9CisKK0BtZWRpYSAocG9pbnRlcjpjb2Fyc2UpIHsKKworICAg
IC5tb250aC1zZWxlY3Rvci1wb3B1cCB7CisgICAgICAgIG1heC1oZWlnaHQ6IDE1MHB4OworICAg
IH0KKworICAgIC5tb250aC1zZWxlY3Rvci1wb3B1cC1lbnRyeSB7CisgICAgICAgIGxpbmUtaGVp
Z2h0OiAzMHB4OworICAgIH0KIH0KIAogLm1vbnRoLXNlbGVjdG9yLXdhbGwgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmpzIGIvU291cmNlL1dl
YkNvcmUvUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmpzCmluZGV4IGYyYTg1MWYwMzJjZTBmY2Q4
ZDEzZDgzMjlkMGU5Y2ExODlhNDFkZTkuLmE3Njc0Y2I1ODZjMzdhY2EyMmY1MmU1YWEyMjY0YjUx
NzU0MDczOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRhclBp
Y2tlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvY2FsZW5kYXJQaWNrZXIuanMK
QEAgLTQ5LDYgKzQ5LDggQEAgdmFyIENsYXNzTmFtZXMgPSB7CiAgICAgTW9udGhTZWxlY3Rvcjog
Im1vbnRoLXNlbGVjdG9yIiwKICAgICBNb250aFNlbGVjdG9yQm94OiAibW9udGgtc2VsZWN0b3It
Ym94IiwKICAgICBNb250aFNlbGVjdG9yUG9wdXA6ICJtb250aC1zZWxlY3Rvci1wb3B1cCIsCisg
ICAgTW9udGhTZWxlY3RvclBvcHVwQ29udGVudHM6ICJtb250aC1zZWxlY3Rvci1wb3B1cC1jb250
ZW50cyIsCisgICAgTW9udGhTZWxlY3RvclBvcHVwRW50cnk6ICJtb250aC1zZWxlY3Rvci1wb3B1
cC1lbnRyeSIsCiAgICAgTW9udGhTZWxlY3RvcldhbGw6ICJtb250aC1zZWxlY3Rvci13YWxsIiwK
ICAgICBOb0ZvY3VzUmluZzogIm5vLWZvY3VzLXJpbmciLAogICAgIE5vdFRoaXNNb250aDogIm5v
dC10aGlzLW1vbnRoIiwKQEAgLTQzMiwxMCArNDM0LDE0IEBAIFllYXJNb250aENvbnRyb2xsZXIu
cHJvdG90eXBlLmF0dGFjaFRvID0gZnVuY3Rpb24obWFpbikgewogICAgIHZhciBib3ggPSBjcmVh
dGVFbGVtZW50KCJkaXYiLCBDbGFzc05hbWVzLk1vbnRoU2VsZWN0b3JCb3gpOwogICAgIGlubmVy
Q29udGFpbmVyLmFwcGVuZENoaWxkKGJveCk7CiAgICAgLy8gV2UgY2FuJ3QgdXNlIDxzZWxlY3Q+
IHBvcHVwIGluIFBhZ2VQb3B1cC4KLSAgICAvLyBGSVhNRTogVGhlIHBvcHVwLW1lbnUgZW11bGF0
aW9uIGJ5IGEgbGlzdGJveCBpcyBub3QgZ3JlYXQuCi0gICAgdGhpcy5fbW9udGhQb3B1cCA9IGNy
ZWF0ZUVsZW1lbnQoInNlbGVjdCIsIENsYXNzTmFtZXMuTW9udGhTZWxlY3RvclBvcHVwKTsKKyAg
ICB0aGlzLl9tb250aFBvcHVwID0gY3JlYXRlRWxlbWVudCgiZGl2IiwgQ2xhc3NOYW1lcy5Nb250
aFNlbGVjdG9yUG9wdXApOwogICAgIHRoaXMuX21vbnRoUG9wdXAuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBiaW5kKHRoaXMuX2hhbmRsZVllYXJNb250aENoYW5nZSwgdGhpcyksIGZhbHNlKTsK
ICAgICB0aGlzLl9tb250aFBvcHVwLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBiaW5kKHRo
aXMuX2hhbmRsZU1vbnRoUG9wdXBLZXksIHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy5fbW9udGhQ
b3B1cC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBiaW5kKHRoaXMuX2hhbmRsZU1vdXNl
TW92ZSwgdGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl91cGRhdGVTZWxlY3Rpb25Pbk1vdXNlTW92
ZSA9IHRydWU7CisgICAgdGhpcy5fbW9udGhQb3B1cC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4Jywg
MCk7CisgICAgdGhpcy5fbW9udGhQb3B1cENvbnRlbnRzID0gY3JlYXRlRWxlbWVudCgiZGl2Iiwg
Q2xhc3NOYW1lcy5Nb250aFNlbGVjdG9yUG9wdXBDb250ZW50cyk7CisgICAgdGhpcy5fbW9udGhQ
b3B1cC5hcHBlbmRDaGlsZCh0aGlzLl9tb250aFBvcHVwQ29udGVudHMpOwogICAgIGJveC5hcHBl
bmRDaGlsZCh0aGlzLl9tb250aFBvcHVwKTsKICAgICB0aGlzLl9tb250aCA9IGNyZWF0ZUVsZW1l
bnQoImRpdiIsIENsYXNzTmFtZXMuTW9udGhTZWxlY3Rvcik7CiAgICAgdGhpcy5fbW9udGguYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBiaW5kKHRoaXMuX3Nob3dQb3B1cCwgdGhpcyksIGZhbHNl
KTsKQEAgLTQ2Miw3ICs0NjgsNyBAQCBZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5hdHRh
Y2hUbyA9IGZ1bmN0aW9uKG1haW4pIHsKICAgICB9CiAgICAgdGhpcy5fbW9udGguc3R5bGUubWlu
V2lkdGggPSBtYXhXaWR0aCArICdweCc7CiAKLSAgICBnbG9iYWwuZmlyc3RGb2N1c2FibGVDb250
cm9sID0gdGhpcy5fbGVmdDI7IC8vIEZJWE1FOiBTaG91ZCBpdCBiZSB0aGlzLm1vbnRoPworICAg
IGdsb2JhbC5maXJzdEZvY3VzYWJsZUNvbnRyb2wgPSB0aGlzLl9sZWZ0MjsgLy8gRklYTUU6IFNo
b3VsZCBpdCBiZSB0aGlzLm1vbnRoPwogfTsKIAogWWVhck1vbnRoQ29udHJvbGxlci5hZGRUZW5Z
ZWFyc0J1dHRvbnMgPSBmYWxzZTsKQEAgLTU1OSw0NCArNTY1LDEwOCBAQCBZZWFyTW9udGhDb250
cm9sbGVyLnByb3RvdHlwZS5fcmVkcmF3ID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHRoaXMuX3Jp
Z2h0MykKICAgICAgICAgdGhpcy5fcmlnaHQzLmRpc2FibGVkID0gY3VycmVudCArIDEzID4gbWF4
OwogICAgIHRoaXMuX21vbnRoLmlubmVyVGV4dCA9IGZvcm1hdFllYXJNb250aCh0aGlzLl9jdXJy
ZW50WWVhciwgdGhpcy5fY3VycmVudE1vbnRoKTsKLSAgICB3aGlsZSAodGhpcy5fbW9udGhQb3B1
cC5oYXNDaGlsZE5vZGVzKCkpCi0gICAgICAgIHRoaXMuX21vbnRoUG9wdXAucmVtb3ZlQ2hpbGQo
dGhpcy5fbW9udGhQb3B1cC5maXJzdENoaWxkKTsKKyAgICB3aGlsZSAodGhpcy5fbW9udGhQb3B1
cENvbnRlbnRzLmhhc0NoaWxkTm9kZXMoKSkKKyAgICAgICAgdGhpcy5fbW9udGhQb3B1cENvbnRl
bnRzLnJlbW92ZUNoaWxkKHRoaXMuX21vbnRoUG9wdXBDb250ZW50cy5maXJzdENoaWxkKTsKKwog
ICAgIGZvciAodmFyIG0gPSBjdXJyZW50IC0gNjsgbSA8PSBjdXJyZW50ICsgNjsgbSsrKSB7CiAg
ICAgICAgIGlmIChtIDwgbWluIHx8IG0gPiBtYXgpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgdmFyIG9wdGlvbiA9IGNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIsIHVuZGVmaW5lZCwgZm9y
bWF0WWVhck1vbnRoKE1hdGguZmxvb3IobSAvIDEyKSwgbSAlIDEyKSk7Ci0gICAgICAgIG9wdGlv
bi52YWx1ZSA9IFN0cmluZyhNYXRoLmZsb29yKG0gLyAxMikpICsgIi0iICsgU3RyaW5nKG0gJSAx
Mik7Ci0gICAgICAgIHRoaXMuX21vbnRoUG9wdXAuYXBwZW5kQ2hpbGQob3B0aW9uKTsKKyAgICAg
ICAgdmFyIG9wdGlvbiA9IGNyZWF0ZUVsZW1lbnQoImRpdiIsIENsYXNzTmFtZXMuTW9udGhTZWxl
Y3RvclBvcHVwRW50cnksIGZvcm1hdFllYXJNb250aChNYXRoLmZsb29yKG0gLyAxMiksIG0gJSAx
MikpOworICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIFN0cmluZyhNYXRoLmZs
b29yKG0gLyAxMikpICsgIi0iICsgU3RyaW5nKG0gJSAxMikpOworICAgICAgICB0aGlzLl9tb250
aFBvcHVwQ29udGVudHMuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgaWYgKG0gPT0gY3Vy
cmVudCkKLSAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHRydWU7CisgICAgICAgICAgICBv
cHRpb24uc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsIHRydWUpOyAKICAgICB9CiB9OwogCiBZZWFy
TW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5fc2hvd1BvcHVwID0gZnVuY3Rpb24oKSB7Ci0gICAg
dGhpcy5fbW9udGhQb3B1cC5zaXplID0gTWF0aC5tYXgoNCwgTWF0aC5taW4oMTAsIHRoaXMuX21v
bnRoUG9wdXAubGVuZ3RoKSk7CiAgICAgdGhpcy5fbW9udGhQb3B1cC5zdHlsZS5kaXNwbGF5ID0g
ImJsb2NrIjsKLSAgICB0aGlzLl9tb250aFBvcHVwLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRl
IjsKICAgICB0aGlzLl9tb250aFBvcHVwLnN0eWxlLnpJbmRleCA9ICIxMDAwIjsgLy8gTGFyZ2Vy
IHRoYW4gdGhlIGRheXMgYXJlYS4KICAgICB0aGlzLl9tb250aFBvcHVwLnN0eWxlLmxlZnQgPSB0
aGlzLl9tb250aC5vZmZzZXRMZWZ0ICsgKHRoaXMuX21vbnRoLm9mZnNldFdpZHRoIC0gdGhpcy5f
bW9udGhQb3B1cC5vZmZzZXRXaWR0aCkgLyAyICsgInB4IjsKICAgICB0aGlzLl9tb250aFBvcHVw
LnN0eWxlLnRvcCA9IHRoaXMuX21vbnRoLm9mZnNldFRvcCArIHRoaXMuX21vbnRoLm9mZnNldEhl
aWdodCArICJweCI7Ci0gICAgdGhpcy5fbW9udGhQb3B1cC5mb2N1cygpOwogCiAgICAgdGhpcy5f
d2FsbC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICB0aGlzLl93YWxsLnN0eWxlLnpJbmRl
eCA9ICI5OTkiOyAvLyBUaGlzIHNob3VsZCBiZSBzbWFsbGVyIHRoYW4gdGhlIHotaW5kZXggb2Yg
bW9udGhQb3B1cC4KKworICAgIHZhciBwb3B1cEhlaWdodCA9IHRoaXMuX21vbnRoUG9wdXAuY2xp
ZW50SGVpZ2h0OworICAgIHZhciBmdWxsSGVpZ2h0ID0gdGhpcy5fbW9udGhQb3B1cENvbnRlbnRz
LmNsaWVudEhlaWdodDsKKyAgICB0aGlzLl9tb250aFBvcHVwLnNjcm9sbFRvcCA9IChmdWxsSGVp
Z2h0IC0gcG9wdXBIZWlnaHQpIC8gMjsKKyAgICB0aGlzLl9tb250aFBvcHVwLmZvY3VzKCk7CiB9
OwogCiBZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5fY2xvc2VQb3B1cCA9IGZ1bmN0aW9u
KCkgewogICAgIHRoaXMuX21vbnRoUG9wdXAuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICB0
aGlzLl93YWxsLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgdmFyIGNvbnRhaW5lciA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iICsgQ2xhc3NOYW1lcy5EYXlzQXJlYUNvbnRhaW5lcik7
CisgICAgY29udGFpbmVyLmZvY3VzKCk7CiB9OwogCitZZWFyTW9udGhDb250cm9sbGVyLnByb3Rv
dHlwZS5fZ2V0U2VsZWN0aW9uID0gZnVuY3Rpb24oKQoreworICAgIHJldHVybiBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCIuIiArIENsYXNzTmFtZXMuTW9udGhTZWxlY3RvclBvcHVwRW50cnkgKyAi
W3NlbGVjdGVkPXRydWVdIik7Cit9CisKKy8qKgorICogQHBhcmFtIHtFdmVudH0gZXZlbnQKKyAq
LworWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlTW92ZSA9IGZ1bmN0
aW9uKGV2ZW50KQoreworICAgIGlmICghdGhpcy5fdXBkYXRlU2VsZWN0aW9uT25Nb3VzZU1vdmUp
IHsKKyAgICAgICAgLy8gU2VsZWN0aW9uIHVwZGF0ZSB0dXJuZWQgb2ZmIHdoaWxlIG5hdmlnYXRp
bmcgd2l0aCBrZXlib2FyZCB0byBwcmV2ZW50IGEgbW91c2UKKyAgICAgICAgLy8gbW92ZSB0cmln
Z2VkIGR1cmluZyBhIHNjcm9sbCBmcm9tIHJlc2V0dGluZyB0aGUgc2VsZWN0aW9uLiAgQXV0b21h
dGljYWxseQorICAgICAgICAvLyByZWFybSBjb250cm9sIHRvIGVuYWJsZSBtb3VzZS1iYXNlZCBz
ZWxlY3Rpb24uCisgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbk9uTW91c2VNb3ZlID0gdHJ1
ZTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0OworICAg
ICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5fZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIGlmICh0
YXJnZXQgJiYgdGFyZ2V0ICE9IHNlbGVjdGlvbikgeworICAgICAgICAgICAgaWYgKHNlbGVjdGlv
bikKKyAgICAgICAgICAgICAgICBzZWxlY3Rpb24uc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsIGZh
bHNlKTsKKyAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdHJ1ZSk7
CisgICAgICAgIH0KKyAgICB9CisgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKK30KKwogLyoqCiAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAog
ICovCiBZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlTW9udGhQb3B1cEtleSA9
IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIHZhciBrZXkgPSBldmVudC5rZXlJZGVudGlmaWVyOwot
ICAgIGlmIChrZXkgPT0gIlUrMDAxQiIpIHsKKyAgICBpZiAoa2V5ID09ICJEb3duIikgeworICAg
ICAgICB2YXIgc2VsZWN0ZWQgPSB0aGlzLl9nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgaWYgKHNl
bGVjdGVkKSB7CisgICAgICAgICAgICB2YXIgbmV4dCA9IHNlbGVjdGVkLm5leHRTaWJsaW5nOwor
ICAgICAgICAgICAgaWYgKG5leHQpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZC5zZXRBdHRy
aWJ1dGUoJ3NlbGVjdGVkJywgZmFsc2UpOworICAgICAgICAgICAgICAgIG5leHQuc2V0QXR0cmli
dXRlKCdzZWxlY3RlZCcsIHRydWUpOworICAgICAgICAgICAgICAgIHZhciBib3R0b20gPSBuZXh0
Lm9mZnNldFRvcCArIG5leHQuY2xpZW50SGVpZ2h0OworICAgICAgICAgICAgICAgIGlmIChib3R0
b20gPiB0aGlzLl9tb250aFBvcHVwLnNjcm9sbFRvcCArIHRoaXMuX21vbnRoUG9wdXAuY2xpZW50
SGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbk9uTW91
c2VNb3ZlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoUG9wdXAuc2Ny
b2xsVG9wID0gYm90dG9tIC0gdGhpcy5fbW9udGhQb3B1cC5jbGllbnRIZWlnaHQ7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGV2ZW50LnN0b3BQ
cm9wYWdhdGlvbigpOworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0gZWxz
ZSBpZiAoa2V5ID09ICJVcCIpIHsKKyAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhpcy5fZ2V0U2Vs
ZWN0aW9uKCk7CisgICAgICAgIGlmIChzZWxlY3RlZCkgeworICAgICAgICAgICAgdmFyIHByZXZp
b3VzID0gc2VsZWN0ZWQucHJldmlvdXNTaWJsaW5nOworICAgICAgICAgICAgaWYgKHByZXZpb3Vz
KSB7CisgICAgICAgICAgICAgICAgc2VsZWN0ZWQuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsIGZh
bHNlKTsKKyAgICAgICAgICAgICAgICBwcmV2aW91cy5zZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJywg
dHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzLm9mZnNldFRvcCA8IHRoaXMuX21v
bnRoUG9wdXAuc2Nyb2xsVG9wKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNl
bGVjdGlvbk9uTW91c2VNb3ZlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21v
bnRoUG9wdXAuc2Nyb2xsVG9wID0gcHJldmlvdXMub2Zmc2V0VG9wOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRp
b24oKTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICB9IGVsc2UgaWYgKGtl
eSA9PSAiVSswMDFCIikgewogICAgICAgICB0aGlzLl9jbG9zZVBvcHVwKCk7CiAgICAgICAgIGV2
ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwpA
QCAtNjA5LDggKzY3OSwxMSBAQCBZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxl
TW9udGhQb3B1cEtleSA9IGZ1bmN0aW9uKGV2ZW50KQogCiBZZWFyTW9udGhDb250cm9sbGVyLnBy
b3RvdHlwZS5faGFuZGxlWWVhck1vbnRoQ2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgdGhpcy5f
Y2xvc2VQb3B1cCgpOwotCi0gICAgdmFyIHJlc3VsdCA9IHRoaXMuX21vbnRoUG9wdXAudmFsdWUu
bWF0Y2goLyhcZCspLShcZCspLyk7CisgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuX2dldFNlbGVj
dGlvbigpOworICAgIGlmICghc2VsZWN0aW9uKQorICAgICAgcmV0dXJuOworICAgIHZhciB2YWx1
ZSA9IHNlbGVjdGlvbi5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJyk7CisgICAgdmFyIHJlc3VsdCAgPSB2
YWx1ZS5tYXRjaCgvKFxkKyktKFxkKykvKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0
dXJuOwogICAgIHZhciBuZXdZZWFyID0gTnVtYmVyKHJlc3VsdFsxXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155527</attachid>
            <date>2012-07-31 07:23:09 -0700</date>
            <delta_ts>2012-08-01 11:21:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92678-20120731102252.patch</filename>
            <type>text/plain</type>
            <size>11548</size>
            <attacher name="Kevin Ellis">kevers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA4NWU3NzdmNTg3MDdm
YTJkZThlOWZmZWZmMGYxYjhmMjdiZTFmNS4uNzdlZDhjNjVlZGNjNWZiZGMzMWRiY2VmNDI4ZTEx
NzFkMTc3ODRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA3LTMwICBLZXZp
biBFbGxpcyAgPGtldmVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW9udGgteWVhciBzZWxl
Y3RvciBvbiBjYWxlbmRhciBwaWNrZXIgc2hvdWxkIGJlIHRvdWNoIGZyaWVuZGx5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI2NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5IHRoZSBt
b250aC15ZWFyIHBvcHVwIG1lbnUgd2FzIGltcGxlbWVudGVkIHVzaW5nIGEgbGlzdGJveCwKKyAg
ICAgICAgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBDU1MgY3VzdG9taXphdGlvbi4gIEVudHJpZXMg
aW4gdGhlIGxpc3Rib3gKKyAgICAgICAgd2VyZSB0b28gc2hhbGxvdyB0byByZWxpYWJseSB0YXJn
ZXQgd2l0aCB0b3VjaCBnZXN0dXJlcy4gIFRoZQorICAgICAgICByZXBsYWNlbWVudCBwb3B1cCBp
cyBDU1MgY29uZmlndXJhYmxlIHdpdGggbGFyZ2VyIGVudHJpZXMgb24gZGV2aWNlcworICAgICAg
ICB0aGF0IHN1cHBvcnQgdG91Y2ggaW5wdXQuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIHdp
dGggYW5kIHdpdGhvdXQgdG91Y2ggc3VwcG9ydCBpbiBFbmdsaXNoLCBKYXBhbmVzZQorICAgICAg
ICBhbmQgQXJhYmljLgorCisgICAgICAgICogUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmNzczoK
KyAgICAgICAgKC5tb250aC1zZWxlY3Rvci1wb3B1cCk6CisgICAgICAgICgubW9udGgtc2VsZWN0
b3ItcG9wdXAtY29udGVudHMpOgorICAgICAgICAoLm1vbnRoLXNlbGVjdG9yLXBvcHVwLWVudHJ5
KToKKyAgICAgICAgKC5tb250aC1zZWxlY3Rvci1wb3B1cC1lbnRyeVtzZWxlY3RlZD10cnVlXSk6
CisgICAgICAgIChAbWVkaWEgKHBvaW50ZXI6Y29hcnNlKSk6CisgICAgICAgICogUmVzb3VyY2Vz
L2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5
cGUuYXR0YWNoVG8pOgorICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX3Jl
ZHJhdyk6CisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5fc2hvd1BvcHVw
KToKKyAgICAgICAgKFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9jbG9zZVBvcHVwKToK
KyAgICAgICAgKFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9nZXRTZWxlY3Rpb24pOgor
ICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlTW92ZSk6
CisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlTW9udGhQb3B1
cEtleSk6CisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlWWVh
ck1vbnRoQ2hhbmdlKToKKwogMjAxMi0wNy0zMCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBUaGVyZSBpcyBubyB3YXkgdG8gdGVsbCB3
aGV0aGVyIGFuIGVsZW1lbnQgY2FuIGJlIGFjdGl2YXRlZCBvciBub3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRhclBpY2tlci5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvY2FsZW5kYXJQaWNrZXIuY3NzCmluZGV4IGU0YTYyNGFlZDYxYTdhOWI5MGJl
YTYxNDI3MGIxNjNkODhlYTc4YWMuLmUyMjBiMWM5MmE3NTAzNmU5NjlkNTUyZGMzZGFlYjg3YzZk
OTZmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRhclBpY2tl
ci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmNzcwpA
QCAtODIsOSArODIsNDcgQEAgYm9keSB7CiB9CiAKIC5tb250aC1zZWxlY3Rvci1wb3B1cCB7Cisg
ICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIC13ZWJraXQtYm94LXNoYWRv
dzoKKyAgICAgICAgMCAwIDAgMXB4IHJnYmEoMCwwLDAsMC4xKSwKKyAgICAgICAgMCA1cHggMXB4
IDFweCByZ2JhKDAsMCwwLDAuMSksCisgICAgICAgIDAgNXB4IDJweCAxcHggcmdiYSgwLDAsMCww
LjEpLAorICAgICAgICAwIDVweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuNSk7CisgICAgYmFja2dy
b3VuZDogI2ZmZjsKICAgICBkaXNwbGF5OiBub25lOwotICAgIG91dGxpbmU6IG5vbmU7Ci0gICAg
ei1pbmRleDogMjsKKyAgICBtYXgtaGVpZ2h0OiAxMC44ZW07CisgICAgb3ZlcmZsb3cteTogYXV0
bzsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30K
KworLm1vbnRoLXNlbGVjdG9yLXBvcHVwLWNvbnRlbnRzIHsKKyAgICBkaXNwbGF5OiB0YWJsZTsK
K30KKworLm1vbnRoLXNlbGVjdG9yLXBvcHVwLWVudHJ5IHsKKyAgICAtd2Via2l0LXBhZGRpbmct
c3RhcnQ6IDVweDsKKyAgICAtd2Via2l0LXBhZGRpbmctZW5kOiA1cHg7CisgICAgY3Vyc29yOiBw
b2ludGVyOworICAgIGRpc3BsYXk7IHRhYmxlLXJvdzsKKyAgICBsaW5lLWhlaWdodDogMS4yZW07
Cit9CisKKy5zZWxlY3RlZC1tb250aC15ZWFyIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoaWdo
bGlnaHQ7CisgICAgY29sb3I6IGhpZ2hsaWdodHRleHQ7CisgICAgdGV4dC1zaGFkb3c6IG5vbmU7
Cit9CisKK0BtZWRpYSAocG9pbnRlcjpjb2Fyc2UpIHsKKworICAgIC5tb250aC1zZWxlY3Rvci1w
b3B1cCB7CisgICAgICAgIG1heC1oZWlnaHQ6IDE1MHB4OworICAgIH0KKworICAgIC5tb250aC1z
ZWxlY3Rvci1wb3B1cC1lbnRyeSB7CisgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4OworICAgIH0K
IH0KIAogLm1vbnRoLXNlbGVjdG9yLXdhbGwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2Nh
bGVuZGFyUGlja2VyLmpzCmluZGV4IGYyYTg1MWYwMzJjZTBmY2Q4ZDEzZDgzMjlkMGU5Y2ExODlh
NDFkZTkuLjIwZjE2MjliM2YzOTJkNGRiMjU5MmRhOTc0ZDY3YTMwNjljOWZlNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRhclBpY2tlci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9SZXNvdXJjZXMvY2FsZW5kYXJQaWNrZXIuanMKQEAgLTQ5LDEwICs0OSwxMyBA
QCB2YXIgQ2xhc3NOYW1lcyA9IHsKICAgICBNb250aFNlbGVjdG9yOiAibW9udGgtc2VsZWN0b3Ii
LAogICAgIE1vbnRoU2VsZWN0b3JCb3g6ICJtb250aC1zZWxlY3Rvci1ib3giLAogICAgIE1vbnRo
U2VsZWN0b3JQb3B1cDogIm1vbnRoLXNlbGVjdG9yLXBvcHVwIiwKKyAgICBNb250aFNlbGVjdG9y
UG9wdXBDb250ZW50czogIm1vbnRoLXNlbGVjdG9yLXBvcHVwLWNvbnRlbnRzIiwKKyAgICBNb250
aFNlbGVjdG9yUG9wdXBFbnRyeTogIm1vbnRoLXNlbGVjdG9yLXBvcHVwLWVudHJ5IiwKICAgICBN
b250aFNlbGVjdG9yV2FsbDogIm1vbnRoLXNlbGVjdG9yLXdhbGwiLAogICAgIE5vRm9jdXNSaW5n
OiAibm8tZm9jdXMtcmluZyIsCiAgICAgTm90VGhpc01vbnRoOiAibm90LXRoaXMtbW9udGgiLAog
ICAgIFNlbGVjdGVkOiAiZGF5LXNlbGVjdGVkIiwKKyAgICBTZWxlY3RlZE1vbnRoWWVhcjogInNl
bGVjdGVkLW1vbnRoLXllYXIiLAogICAgIFRvZGF5QnV0dG9uOiAidG9kYXktYnV0dG9uIiwKICAg
ICBUb2RheUNsZWFyQXJlYTogInRvZGF5LWNsZWFyLWFyZWEiLAogICAgIFVuYXZhaWxhYmxlOiAi
dW5hdmFpbGFibGUiLApAQCAtNDMyLDEwICs0MzUsMTQgQEAgWWVhck1vbnRoQ29udHJvbGxlci5w
cm90b3R5cGUuYXR0YWNoVG8gPSBmdW5jdGlvbihtYWluKSB7CiAgICAgdmFyIGJveCA9IGNyZWF0
ZUVsZW1lbnQoImRpdiIsIENsYXNzTmFtZXMuTW9udGhTZWxlY3RvckJveCk7CiAgICAgaW5uZXJD
b250YWluZXIuYXBwZW5kQ2hpbGQoYm94KTsKICAgICAvLyBXZSBjYW4ndCB1c2UgPHNlbGVjdD4g
cG9wdXAgaW4gUGFnZVBvcHVwLgotICAgIC8vIEZJWE1FOiBUaGUgcG9wdXAtbWVudSBlbXVsYXRp
b24gYnkgYSBsaXN0Ym94IGlzIG5vdCBncmVhdC4KLSAgICB0aGlzLl9tb250aFBvcHVwID0gY3Jl
YXRlRWxlbWVudCgic2VsZWN0IiwgQ2xhc3NOYW1lcy5Nb250aFNlbGVjdG9yUG9wdXApOworICAg
IHRoaXMuX21vbnRoUG9wdXAgPSBjcmVhdGVFbGVtZW50KCJkaXYiLCBDbGFzc05hbWVzLk1vbnRo
U2VsZWN0b3JQb3B1cCk7CiAgICAgdGhpcy5fbW9udGhQb3B1cC5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIGJpbmQodGhpcy5faGFuZGxlWWVhck1vbnRoQ2hhbmdlLCB0aGlzKSwgZmFsc2UpOwog
ICAgIHRoaXMuX21vbnRoUG9wdXAuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGJpbmQodGhp
cy5faGFuZGxlTW9udGhQb3B1cEtleSwgdGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl9tb250aFBv
cHVwLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIGJpbmQodGhpcy5faGFuZGxlTW91c2VN
b3ZlLCB0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbk9uTW91c2VNb3Zl
ID0gdHJ1ZTsKKyAgICB0aGlzLl9tb250aFBvcHVwLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAw
KTsKKyAgICB0aGlzLl9tb250aFBvcHVwQ29udGVudHMgPSBjcmVhdGVFbGVtZW50KCJkaXYiLCBD
bGFzc05hbWVzLk1vbnRoU2VsZWN0b3JQb3B1cENvbnRlbnRzKTsKKyAgICB0aGlzLl9tb250aFBv
cHVwLmFwcGVuZENoaWxkKHRoaXMuX21vbnRoUG9wdXBDb250ZW50cyk7CiAgICAgYm94LmFwcGVu
ZENoaWxkKHRoaXMuX21vbnRoUG9wdXApOwogICAgIHRoaXMuX21vbnRoID0gY3JlYXRlRWxlbWVu
dCgiZGl2IiwgQ2xhc3NOYW1lcy5Nb250aFNlbGVjdG9yKTsKICAgICB0aGlzLl9tb250aC5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIGJpbmQodGhpcy5fc2hvd1BvcHVwLCB0aGlzKSwgZmFsc2Up
OwpAQCAtNDYyLDcgKzQ2OSw3IEBAIFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLmF0dGFj
aFRvID0gZnVuY3Rpb24obWFpbikgewogICAgIH0KICAgICB0aGlzLl9tb250aC5zdHlsZS5taW5X
aWR0aCA9IG1heFdpZHRoICsgJ3B4JzsKIAotICAgIGdsb2JhbC5maXJzdEZvY3VzYWJsZUNvbnRy
b2wgPSB0aGlzLl9sZWZ0MjsgLy8gRklYTUU6IFNob3VkIGl0IGJlIHRoaXMubW9udGg/CisgICAg
Z2xvYmFsLmZpcnN0Rm9jdXNhYmxlQ29udHJvbCA9IHRoaXMuX2xlZnQyOyAvLyBGSVhNRTogU2hv
dWxkIGl0IGJlIHRoaXMubW9udGg/CiB9OwogCiBZZWFyTW9udGhDb250cm9sbGVyLmFkZFRlblll
YXJzQnV0dG9ucyA9IGZhbHNlOwpAQCAtNTU5LDQ0ICs1NjYsMTE5IEBAIFllYXJNb250aENvbnRy
b2xsZXIucHJvdG90eXBlLl9yZWRyYXcgPSBmdW5jdGlvbigpIHsKICAgICBpZiAodGhpcy5fcmln
aHQzKQogICAgICAgICB0aGlzLl9yaWdodDMuZGlzYWJsZWQgPSBjdXJyZW50ICsgMTMgPiBtYXg7
CiAgICAgdGhpcy5fbW9udGguaW5uZXJUZXh0ID0gZm9ybWF0WWVhck1vbnRoKHRoaXMuX2N1cnJl
bnRZZWFyLCB0aGlzLl9jdXJyZW50TW9udGgpOwotICAgIHdoaWxlICh0aGlzLl9tb250aFBvcHVw
Lmhhc0NoaWxkTm9kZXMoKSkKLSAgICAgICAgdGhpcy5fbW9udGhQb3B1cC5yZW1vdmVDaGlsZCh0
aGlzLl9tb250aFBvcHVwLmZpcnN0Q2hpbGQpOworICAgIHdoaWxlICh0aGlzLl9tb250aFBvcHVw
Q29udGVudHMuaGFzQ2hpbGROb2RlcygpKQorICAgICAgICB0aGlzLl9tb250aFBvcHVwQ29udGVu
dHMucmVtb3ZlQ2hpbGQodGhpcy5fbW9udGhQb3B1cENvbnRlbnRzLmZpcnN0Q2hpbGQpOworCiAg
ICAgZm9yICh2YXIgbSA9IGN1cnJlbnQgLSA2OyBtIDw9IGN1cnJlbnQgKyA2OyBtKyspIHsKICAg
ICAgICAgaWYgKG0gPCBtaW4gfHwgbSA+IG1heCkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICB2YXIgb3B0aW9uID0gY3JlYXRlRWxlbWVudCgib3B0aW9uIiwgdW5kZWZpbmVkLCBmb3Jt
YXRZZWFyTW9udGgoTWF0aC5mbG9vcihtIC8gMTIpLCBtICUgMTIpKTsKLSAgICAgICAgb3B0aW9u
LnZhbHVlID0gU3RyaW5nKE1hdGguZmxvb3IobSAvIDEyKSkgKyAiLSIgKyBTdHJpbmcobSAlIDEy
KTsKLSAgICAgICAgdGhpcy5fbW9udGhQb3B1cC5hcHBlbmRDaGlsZChvcHRpb24pOworICAgICAg
ICB2YXIgb3B0aW9uID0gY3JlYXRlRWxlbWVudCgiZGl2IiwgQ2xhc3NOYW1lcy5Nb250aFNlbGVj
dG9yUG9wdXBFbnRyeSwgZm9ybWF0WWVhck1vbnRoKE1hdGguZmxvb3IobSAvIDEyKSwgbSAlIDEy
KSk7CisgICAgICAgIG9wdGlvbi5kYXRhc2V0LnZhbHVlID0gU3RyaW5nKE1hdGguZmxvb3IobSAv
IDEyKSkgKyAiLSIgKyBTdHJpbmcobSAlIDEyKTsKKyAgICAgICAgdGhpcy5fbW9udGhQb3B1cENv
bnRlbnRzLmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgIGlmIChtID09IGN1cnJlbnQpCi0g
ICAgICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlOworICAgICAgICAgICAgb3B0aW9uLmNs
YXNzTGlzdC5hZGQoQ2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVhcik7CiAgICAgfQogfTsKIAog
WWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX3Nob3dQb3B1cCA9IGZ1bmN0aW9uKCkgewot
ICAgIHRoaXMuX21vbnRoUG9wdXAuc2l6ZSA9IE1hdGgubWF4KDQsIE1hdGgubWluKDEwLCB0aGlz
Ll9tb250aFBvcHVwLmxlbmd0aCkpOwogICAgIHRoaXMuX21vbnRoUG9wdXAuc3R5bGUuZGlzcGxh
eSA9ICJibG9jayI7Ci0gICAgdGhpcy5fbW9udGhQb3B1cC5zdHlsZS5wb3NpdGlvbiA9ICJhYnNv
bHV0ZSI7CiAgICAgdGhpcy5fbW9udGhQb3B1cC5zdHlsZS56SW5kZXggPSAiMTAwMCI7IC8vIExh
cmdlciB0aGFuIHRoZSBkYXlzIGFyZWEuCiAgICAgdGhpcy5fbW9udGhQb3B1cC5zdHlsZS5sZWZ0
ID0gdGhpcy5fbW9udGgub2Zmc2V0TGVmdCArICh0aGlzLl9tb250aC5vZmZzZXRXaWR0aCAtIHRo
aXMuX21vbnRoUG9wdXAub2Zmc2V0V2lkdGgpIC8gMiArICJweCI7CiAgICAgdGhpcy5fbW9udGhQ
b3B1cC5zdHlsZS50b3AgPSB0aGlzLl9tb250aC5vZmZzZXRUb3AgKyB0aGlzLl9tb250aC5vZmZz
ZXRIZWlnaHQgKyAicHgiOwotICAgIHRoaXMuX21vbnRoUG9wdXAuZm9jdXMoKTsKIAogICAgIHRo
aXMuX3dhbGwuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgdGhpcy5fd2FsbC5zdHlsZS56
SW5kZXggPSAiOTk5IjsgLy8gVGhpcyBzaG91bGQgYmUgc21hbGxlciB0aGFuIHRoZSB6LWluZGV4
IG9mIG1vbnRoUG9wdXAuCisKKyAgICB2YXIgcG9wdXBIZWlnaHQgPSB0aGlzLl9tb250aFBvcHVw
LmNsaWVudEhlaWdodDsKKyAgICB2YXIgZnVsbEhlaWdodCA9IHRoaXMuX21vbnRoUG9wdXBDb250
ZW50cy5jbGllbnRIZWlnaHQ7CisgICAgaWYgKGZ1bGxIZWlnaHQgPiBwb3B1cEhlaWdodCkgewor
ICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGlzLl9nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgaWYg
KHNlbGVjdGVkKSB7CisgICAgICAgICAgIHZhciBib3R0b20gPSBzZWxlY3RlZC5vZmZzZXRUb3Ag
KyBzZWxlY3RlZC5jbGllbnRIZWlnaHQ7CisgICAgICAgICAgIGlmIChib3R0b20gPiBwb3B1cEhl
aWdodCkKKyAgICAgICAgICAgICAgIHRoaXMuX21vbnRoUG9wdXAuc2Nyb2xsVG9wID0gYm90dG9t
IC0gcG9wdXBIZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fbW9udGhQb3B1cC5zdHls
ZS5zZXRQcm9wZXJ0eSgnLXdlYmtpdC1wYWRkaW5nLWVuZCcsICcxNXB4Jyk7CisgICAgfQorICAg
IHRoaXMuX21vbnRoUG9wdXAuZm9jdXMoKTsKIH07CiAKIFllYXJNb250aENvbnRyb2xsZXIucHJv
dG90eXBlLl9jbG9zZVBvcHVwID0gZnVuY3Rpb24oKSB7CiAgICAgdGhpcy5fbW9udGhQb3B1cC5z
dHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgIHRoaXMuX3dhbGwuc3R5bGUuZGlzcGxheSA9ICJu
b25lIjsKKyAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLiIgKyBD
bGFzc05hbWVzLkRheXNBcmVhQ29udGFpbmVyKTsKKyAgICBjb250YWluZXIuZm9jdXMoKTsKIH07
CiAKIC8qKgorICogQHJldHVybiB7RWxlbWVudH0gU2VsZWN0ZWQgZWxlbWVudCBpbiB0aGUgbW9u
dGgteWVhciBwb3B1cC4KKyAqLworWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2dldFNl
bGVjdGlvbiA9IGZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiLiIgKyBDbGFzc05hbWVzLlNlbGVjdGVkTW9udGhZZWFyKTsKK30KKworLyoqCisgKiBAcGFy
YW0ge0V2ZW50fSBldmVudAorICovCitZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5faGFu
ZGxlTW91c2VNb3ZlID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgaWYgKCF0aGlzLl91cGRhdGVT
ZWxlY3Rpb25Pbk1vdXNlTW92ZSkgeworICAgICAgICAvLyBTZWxlY3Rpb24gdXBkYXRlIHR1cm5l
ZCBvZmYgd2hpbGUgbmF2aWdhdGluZyB3aXRoIGtleWJvYXJkIHRvIHByZXZlbnQgYSBtb3VzZQor
ICAgICAgICAvLyBtb3ZlIHRyaWdnZWQgZHVyaW5nIGEgc2Nyb2xsIGZyb20gcmVzZXR0aW5nIHRo
ZSBzZWxlY3Rpb24uIEF1dG9tYXRpY2FsbHkKKyAgICAgICAgLy8gcmVhcm0gY29udHJvbCB0byBl
bmFibGUgbW91c2UtYmFzZWQgc2VsZWN0aW9uLgorICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rp
b25Pbk1vdXNlTW92ZSA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIHRhcmdldCA9
IGV2ZW50LnRhcmdldDsKKyAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuX2dldFNlbGVjdGlv
bigpOworICAgICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldCAhPSBzZWxlY3Rpb24gJiYgdGFyZ2V0
LmNsYXNzTGlzdC5jb250YWlucyhDbGFzc05hbWVzLk1vbnRoU2VsZWN0b3JQb3B1cEVudHJ5KSkg
eworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbikKKyAgICAgICAgICAgICAgICBzZWxlY3Rpb24u
Y2xhc3NMaXN0LnJlbW92ZShDbGFzc05hbWVzLlNlbGVjdGVkTW9udGhZZWFyKTsKKyAgICAgICAg
ICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKENsYXNzTmFtZXMuU2VsZWN0ZWRNb250aFllYXIpOwor
ICAgICAgICB9CisgICAgfQorICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7Cit9CisKKy8qKgogICogQHBhcmFtIHtFdmVudH0gZXZlbnQKICAq
LwogWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZU1vbnRoUG9wdXBLZXkgPSBm
dW5jdGlvbihldmVudCkKIHsKICAgICB2YXIga2V5ID0gZXZlbnQua2V5SWRlbnRpZmllcjsKLSAg
ICBpZiAoa2V5ID09ICJVKzAwMUIiKSB7CisgICAgaWYgKGtleSA9PSAiRG93biIpIHsKKyAgICAg
ICAgdmFyIHNlbGVjdGVkID0gdGhpcy5fZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIGlmIChzZWxl
Y3RlZCkgeworICAgICAgICAgICAgdmFyIG5leHQgPSBzZWxlY3RlZC5uZXh0U2libGluZzsKKyAg
ICAgICAgICAgIGlmIChuZXh0KSB7CisgICAgICAgICAgICAgICAgc2VsZWN0ZWQuY2xhc3NMaXN0
LnJlbW92ZShDbGFzc05hbWVzLlNlbGVjdGVkTW9udGhZZWFyKTsKKyAgICAgICAgICAgICAgICBu
ZXh0LmNsYXNzTGlzdC5hZGQoQ2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVhcik7CisgICAgICAg
ICAgICAgICAgdmFyIGJvdHRvbSA9IG5leHQub2Zmc2V0VG9wICsgbmV4dC5jbGllbnRIZWlnaHQ7
CisgICAgICAgICAgICAgICAgaWYgKGJvdHRvbSA+IHRoaXMuX21vbnRoUG9wdXAuc2Nyb2xsVG9w
ICsgdGhpcy5fbW9udGhQb3B1cC5jbGllbnRIZWlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5fdXBkYXRlU2VsZWN0aW9uT25Nb3VzZU1vdmUgPSBmYWxzZTsKKyAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fbW9udGhQb3B1cC5zY3JvbGxUb3AgPSBib3R0b20gLSB0aGlzLl9tb250aFBv
cHVwLmNsaWVudEhlaWdodDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CisgICAgfSBlbHNlIGlmIChrZXkgPT0gIlVwIikgeworICAgICAgICB2
YXIgc2VsZWN0ZWQgPSB0aGlzLl9nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgaWYgKHNlbGVjdGVk
KSB7CisgICAgICAgICAgICB2YXIgcHJldmlvdXMgPSBzZWxlY3RlZC5wcmV2aW91c1NpYmxpbmc7
CisgICAgICAgICAgICBpZiAocHJldmlvdXMpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZC5j
bGFzc0xpc3QucmVtb3ZlKENsYXNzTmFtZXMuU2VsZWN0ZWRNb250aFllYXIpOworICAgICAgICAg
ICAgICAgIHByZXZpb3VzLmNsYXNzTGlzdC5hZGQoQ2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVh
cik7CisgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzLm9mZnNldFRvcCA8IHRoaXMuX21vbnRo
UG9wdXAuc2Nyb2xsVG9wKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVj
dGlvbk9uTW91c2VNb3ZlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21vbnRo
UG9wdXAuc2Nyb2xsVG9wID0gcHJldmlvdXMub2Zmc2V0VG9wOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24o
KTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICB9IGVsc2UgaWYgKGtleSA9
PSAiVSswMDFCIikgewogICAgICAgICB0aGlzLl9jbG9zZVBvcHVwKCk7CiAgICAgICAgIGV2ZW50
LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwpAQCAt
NjA5LDggKzY5MSwxMSBAQCBZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlTW9u
dGhQb3B1cEtleSA9IGZ1bmN0aW9uKGV2ZW50KQogCiBZZWFyTW9udGhDb250cm9sbGVyLnByb3Rv
dHlwZS5faGFuZGxlWWVhck1vbnRoQ2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgdGhpcy5fY2xv
c2VQb3B1cCgpOwotCi0gICAgdmFyIHJlc3VsdCA9IHRoaXMuX21vbnRoUG9wdXAudmFsdWUubWF0
Y2goLyhcZCspLShcZCspLyk7CisgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuX2dldFNlbGVjdGlv
bigpOworICAgIGlmICghc2VsZWN0aW9uKQorICAgICAgICByZXR1cm47CisgICAgdmFyIHZhbHVl
ID0gc2VsZWN0aW9uLmRhdGFzZXQudmFsdWU7CisgICAgdmFyIHJlc3VsdCAgPSB2YWx1ZS5tYXRj
aCgvKFxkKyktKFxkKykvKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuOwogICAg
IHZhciBuZXdZZWFyID0gTnVtYmVyKHJlc3VsdFsxXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155809</attachid>
            <date>2012-08-01 07:47:50 -0700</date>
            <delta_ts>2012-08-02 08:38:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92678-20120801104732.patch</filename>
            <type>text/plain</type>
            <size>12569</size>
            <attacher name="Kevin Ellis">kevers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA4NWU3NzdmNTg3MDdm
YTJkZThlOWZmZWZmMGYxYjhmMjdiZTFmNS4uMTBmMmJhMDY0MjZmYzRkZjM0YzRhYTkyMDQ2M2Ux
NzkxMTRkZWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA4LTAxICBLZXZp
biBFbGxpcyAgPGtldmVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW9udGgteWVhciBzZWxl
Y3RvciBvbiBjYWxlbmRhciBwaWNrZXIgc2hvdWxkIGJlIHRvdWNoIGZyaWVuZGx5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI2NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5IHRoZSBt
b250aC15ZWFyIHBvcHVwIG1lbnUgd2FzIGltcGxlbWVudGVkIHVzaW5nIGEgbGlzdGJveCwKKyAg
ICAgICAgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBDU1MgY3VzdG9taXphdGlvbi4gIEVudHJpZXMg
aW4gdGhlIGxpc3Rib3gKKyAgICAgICAgd2VyZSB0b28gc2hhbGxvdyB0byByZWxpYWJseSB0YXJn
ZXQgd2l0aCB0b3VjaCBnZXN0dXJlcy4gIFRoZQorICAgICAgICByZXBsYWNlbWVudCBwb3B1cCBp
cyBDU1MgY29uZmlndXJhYmxlIHdpdGggbGFyZ2VyIGVudHJpZXMgb24gZGV2aWNlcworICAgICAg
ICB0aGF0IHN1cHBvcnQgdG91Y2ggaW5wdXQuCisKKyAgICAgICAgU3VtbWFyeSBvZiBjaGFuZ2Vz
OgorICAgICAgICAgIC0gQ2hhbmdlZCBzZWxlY3RvciBwb3B1cCBmcm9tIGEgbGlzdC1ib3ggdG8g
YW4gYWJzb2x1dGUgcG9zaXRpbmVkIGRpdgorICAgICAgICAgICAgdG8gZW5hYmxlIGJldHRlciBD
U1MgY29udHJvbCBvdmVyIGFwcGVhcmFuY2UuCisgICAgICAgICAgLSBBZGRlZCBzdHlsZXMgZm9y
IG1lbnUgY29udGVudCB3cmFwcGVyIGFuZCBtb250aC15ZWFyIGVudHJpZXMKKyAgICAgICAgICAg
IHRvIGxheW91dCBhcyBhIHNjcm9sbGFibGUgdGFibGUgd2l0aGluIHRoZSBwb3B1cCB3aW5kb3cu
IAorICAgICAgICAgIC0gQWRkIHN0eWxlIHRvIGhpZ2hsaWdodCBzZWxlY3RlZCBtb250aC15ZWFy
LgorICAgICAgICAgIC0gQWRkZWQgcnVsZXMgdG8gZW5sYXJnZSBlbnRyaWVzIGluIHRoZSBwb3B1
cCBtZW51IG9uIGRldmljZXMgdGhhdAorICAgICAgICAgICAgc3VwcG9ydCB0b3VjaC4KKyAgICAg
ICAgICAtIFVwZGF0ZSBhdHRhY2hUbyB0byBjcmVhdGUgcG9wdXAgbWVudSBhbmQgY29udGVudCB3
cmFwcGVyLgorICAgICAgICAgIC0gVXBkYXRlIHJlZHJhdyB0byBwb3B1bGF0ZSB0YWJsZSBpbiBw
b3B1cCByYXRoZXIgdGhhbiBsaXN0Ym94LgorICAgICAgICAgIC0gVXBkYXRlIHNob3dQb3B1cCB0
byBzZXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBhbmQgYWRkIHBhZGRpbmcgdG8gCisgICAgICAgICAg
ICBhY2NvbW9kYXRlIGEgc2Nyb2xsYmFyIGFzIHJlcXVpcmVkLgorICAgICAgICAgIC0gVXBkYXRl
IGNsb3NlUG9wdXAgdG8gcmVzdG9yZSBmb2N1cyB0byB0aGUgY2FsZW5kYXIuCisgICAgICAgICAg
LSBBZGQgc3VwcG9ydCBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiBpbiBoYW5kbGVNb250aFBvcHVw
S2V5LgorICAgICAgICAgIC0gQWRkZWQgaGFuZGxlTW91c2VNb3ZlIHRvIHVwZGF0ZSB0aGUgc2Vs
ZWN0ZWQgbW9udGgteWVhciBvbiBob3Zlci4KKyAgICAgICAgICAtIFVwZGF0ZSBoYW5kbGVZZWFy
TW9udGhDaGFuZ2UgdG8gcmV0cmlldmUgdGhlIHZhbHVlIGZyb20gdGhlIHNlbGVjdGVkCisgICAg
ICAgICAgICBtb250aC15ZWFyLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIGFuZCB3
aXRob3V0IHRvdWNoIHN1cHBvcnQgaW4gRW5nbGlzaCwgSmFwYW5lc2UKKyAgICAgICAgYW5kIEFy
YWJpYy4KKworICAgICAgICAqIFJlc291cmNlcy9jYWxlbmRhclBpY2tlci5jc3M6CisgICAgICAg
ICgubW9udGgtc2VsZWN0b3ItcG9wdXApOgorICAgICAgICAoLm1vbnRoLXNlbGVjdG9yLXBvcHVw
LWNvbnRlbnRzKToKKyAgICAgICAgKC5tb250aC1zZWxlY3Rvci1wb3B1cC1lbnRyeSk6CisgICAg
ICAgICguc2VsZWN0ZWQtbW9udGgteWVhcik6CisgICAgICAgIChAbWVkaWEgKHBvaW50ZXI6Y29h
cnNlKSk6CisgICAgICAgICogUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAo
WWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuYXR0YWNoVG8pOgorICAgICAgICAoWWVhck1v
bnRoQ29udHJvbGxlci5wcm90b3R5cGUuX3JlZHJhdyk6CisgICAgICAgIChZZWFyTW9udGhDb250
cm9sbGVyLnByb3RvdHlwZS5fc2hvd1BvcHVwKToKKyAgICAgICAgKFllYXJNb250aENvbnRyb2xs
ZXIucHJvdG90eXBlLl9jbG9zZVBvcHVwKToKKyAgICAgICAgKFllYXJNb250aENvbnRyb2xsZXIu
cHJvdG90eXBlLl9nZXRTZWxlY3Rpb24pOgorICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5w
cm90b3R5cGUuX2hhbmRsZU1vdXNlTW92ZSk6CisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVy
LnByb3RvdHlwZS5faGFuZGxlTW9udGhQb3B1cEtleSk6CisgICAgICAgIChZZWFyTW9udGhDb250
cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlWWVhck1vbnRoQ2hhbmdlKToKKwogMjAxMi0wNy0zMCAg
QWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAg
ICBUaGVyZSBpcyBubyB3YXkgdG8gdGVsbCB3aGV0aGVyIGFuIGVsZW1lbnQgY2FuIGJlIGFjdGl2
YXRlZCBvciBub3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRh
clBpY2tlci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvY2FsZW5kYXJQaWNrZXIuY3Nz
CmluZGV4IGU0YTYyNGFlZDYxYTdhOWI5MGJlYTYxNDI3MGIxNjNkODhlYTc4YWMuLmUyMjBiMWM5
MmE3NTAzNmU5NjlkNTUyZGMzZGFlYjg3YzZkOTZmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1Jlc291cmNlcy9jYWxlbmRhclBpY2tlci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL2NhbGVuZGFyUGlja2VyLmNzcwpAQCAtODIsOSArODIsNDcgQEAgYm9keSB7CiB9CiAK
IC5tb250aC1zZWxlY3Rvci1wb3B1cCB7CisgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXIt
Ym94OworICAgIC13ZWJraXQtYm94LXNoYWRvdzoKKyAgICAgICAgMCAwIDAgMXB4IHJnYmEoMCww
LDAsMC4xKSwKKyAgICAgICAgMCA1cHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMSksCisgICAgICAg
IDAgNXB4IDJweCAxcHggcmdiYSgwLDAsMCwwLjEpLAorICAgICAgICAwIDVweCAxMnB4IDFweCBy
Z2JhKDAsMCwwLDAuNSk7CisgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICBkaXNwbGF5OiBub25l
OwotICAgIG91dGxpbmU6IG5vbmU7Ci0gICAgei1pbmRleDogMjsKKyAgICBtYXgtaGVpZ2h0OiAx
MC44ZW07CisgICAgb3ZlcmZsb3cteTogYXV0bzsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworLm1vbnRoLXNlbGVjdG9yLXBvcHVwLWNvbnRl
bnRzIHsKKyAgICBkaXNwbGF5OiB0YWJsZTsKK30KKworLm1vbnRoLXNlbGVjdG9yLXBvcHVwLWVu
dHJ5IHsKKyAgICAtd2Via2l0LXBhZGRpbmctc3RhcnQ6IDVweDsKKyAgICAtd2Via2l0LXBhZGRp
bmctZW5kOiA1cHg7CisgICAgY3Vyc29yOiBwb2ludGVyOworICAgIGRpc3BsYXk7IHRhYmxlLXJv
dzsKKyAgICBsaW5lLWhlaWdodDogMS4yZW07Cit9CisKKy5zZWxlY3RlZC1tb250aC15ZWFyIHsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoaWdobGlnaHQ7CisgICAgY29sb3I6IGhpZ2hsaWdodHRl
eHQ7CisgICAgdGV4dC1zaGFkb3c6IG5vbmU7Cit9CisKK0BtZWRpYSAocG9pbnRlcjpjb2Fyc2Up
IHsKKworICAgIC5tb250aC1zZWxlY3Rvci1wb3B1cCB7CisgICAgICAgIG1heC1oZWlnaHQ6IDE1
MHB4OworICAgIH0KKworICAgIC5tb250aC1zZWxlY3Rvci1wb3B1cC1lbnRyeSB7CisgICAgICAg
IGxpbmUtaGVpZ2h0OiAzMHB4OworICAgIH0KIH0KIAogLm1vbnRoLXNlbGVjdG9yLXdhbGwgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmpzIGIv
U291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmpzCmluZGV4IGYyYTg1MWYw
MzJjZTBmY2Q4ZDEzZDgzMjlkMGU5Y2ExODlhNDFkZTkuLjgzNDNiMDk3MTc1YzliZWQ2MTA3ZDEy
MGNkOWQ4MWRmMWQ2ZTAyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9j
YWxlbmRhclBpY2tlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvY2FsZW5kYXJQ
aWNrZXIuanMKQEAgLTQ5LDEwICs0OSwxMyBAQCB2YXIgQ2xhc3NOYW1lcyA9IHsKICAgICBNb250
aFNlbGVjdG9yOiAibW9udGgtc2VsZWN0b3IiLAogICAgIE1vbnRoU2VsZWN0b3JCb3g6ICJtb250
aC1zZWxlY3Rvci1ib3giLAogICAgIE1vbnRoU2VsZWN0b3JQb3B1cDogIm1vbnRoLXNlbGVjdG9y
LXBvcHVwIiwKKyAgICBNb250aFNlbGVjdG9yUG9wdXBDb250ZW50czogIm1vbnRoLXNlbGVjdG9y
LXBvcHVwLWNvbnRlbnRzIiwKKyAgICBNb250aFNlbGVjdG9yUG9wdXBFbnRyeTogIm1vbnRoLXNl
bGVjdG9yLXBvcHVwLWVudHJ5IiwKICAgICBNb250aFNlbGVjdG9yV2FsbDogIm1vbnRoLXNlbGVj
dG9yLXdhbGwiLAogICAgIE5vRm9jdXNSaW5nOiAibm8tZm9jdXMtcmluZyIsCiAgICAgTm90VGhp
c01vbnRoOiAibm90LXRoaXMtbW9udGgiLAogICAgIFNlbGVjdGVkOiAiZGF5LXNlbGVjdGVkIiwK
KyAgICBTZWxlY3RlZE1vbnRoWWVhcjogInNlbGVjdGVkLW1vbnRoLXllYXIiLAogICAgIFRvZGF5
QnV0dG9uOiAidG9kYXktYnV0dG9uIiwKICAgICBUb2RheUNsZWFyQXJlYTogInRvZGF5LWNsZWFy
LWFyZWEiLAogICAgIFVuYXZhaWxhYmxlOiAidW5hdmFpbGFibGUiLApAQCAtNDMyLDEwICs0MzUs
MTQgQEAgWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuYXR0YWNoVG8gPSBmdW5jdGlvbiht
YWluKSB7CiAgICAgdmFyIGJveCA9IGNyZWF0ZUVsZW1lbnQoImRpdiIsIENsYXNzTmFtZXMuTW9u
dGhTZWxlY3RvckJveCk7CiAgICAgaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoYm94KTsKICAg
ICAvLyBXZSBjYW4ndCB1c2UgPHNlbGVjdD4gcG9wdXAgaW4gUGFnZVBvcHVwLgotICAgIC8vIEZJ
WE1FOiBUaGUgcG9wdXAtbWVudSBlbXVsYXRpb24gYnkgYSBsaXN0Ym94IGlzIG5vdCBncmVhdC4K
LSAgICB0aGlzLl9tb250aFBvcHVwID0gY3JlYXRlRWxlbWVudCgic2VsZWN0IiwgQ2xhc3NOYW1l
cy5Nb250aFNlbGVjdG9yUG9wdXApOworICAgIHRoaXMuX21vbnRoUG9wdXAgPSBjcmVhdGVFbGVt
ZW50KCJkaXYiLCBDbGFzc05hbWVzLk1vbnRoU2VsZWN0b3JQb3B1cCk7CiAgICAgdGhpcy5fbW9u
dGhQb3B1cC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGJpbmQodGhpcy5faGFuZGxlWWVhck1v
bnRoQ2hhbmdlLCB0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuX21vbnRoUG9wdXAuYWRkRXZlbnRM
aXN0ZW5lcigia2V5ZG93biIsIGJpbmQodGhpcy5faGFuZGxlTW9udGhQb3B1cEtleSwgdGhpcyks
IGZhbHNlKTsKKyAgICB0aGlzLl9tb250aFBvcHVwLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92
ZSIsIGJpbmQodGhpcy5faGFuZGxlTW91c2VNb3ZlLCB0aGlzKSwgZmFsc2UpOworICAgIHRoaXMu
X3VwZGF0ZVNlbGVjdGlvbk9uTW91c2VNb3ZlID0gdHJ1ZTsKKyAgICB0aGlzLl9tb250aFBvcHVw
LnRhYkluZGV4ID0gMDsKKyAgICB0aGlzLl9tb250aFBvcHVwQ29udGVudHMgPSBjcmVhdGVFbGVt
ZW50KCJkaXYiLCBDbGFzc05hbWVzLk1vbnRoU2VsZWN0b3JQb3B1cENvbnRlbnRzKTsKKyAgICB0
aGlzLl9tb250aFBvcHVwLmFwcGVuZENoaWxkKHRoaXMuX21vbnRoUG9wdXBDb250ZW50cyk7CiAg
ICAgYm94LmFwcGVuZENoaWxkKHRoaXMuX21vbnRoUG9wdXApOwogICAgIHRoaXMuX21vbnRoID0g
Y3JlYXRlRWxlbWVudCgiZGl2IiwgQ2xhc3NOYW1lcy5Nb250aFNlbGVjdG9yKTsKICAgICB0aGlz
Ll9tb250aC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGJpbmQodGhpcy5fc2hvd1BvcHVwLCB0
aGlzKSwgZmFsc2UpOwpAQCAtNDYyLDcgKzQ2OSw3IEBAIFllYXJNb250aENvbnRyb2xsZXIucHJv
dG90eXBlLmF0dGFjaFRvID0gZnVuY3Rpb24obWFpbikgewogICAgIH0KICAgICB0aGlzLl9tb250
aC5zdHlsZS5taW5XaWR0aCA9IG1heFdpZHRoICsgJ3B4JzsKIAotICAgIGdsb2JhbC5maXJzdEZv
Y3VzYWJsZUNvbnRyb2wgPSB0aGlzLl9sZWZ0MjsgLy8gRklYTUU6IFNob3VkIGl0IGJlIHRoaXMu
bW9udGg/CisgICAgZ2xvYmFsLmZpcnN0Rm9jdXNhYmxlQ29udHJvbCA9IHRoaXMuX2xlZnQyOyAv
LyBGSVhNRTogU2hvdWxkIGl0IGJlIHRoaXMubW9udGg/CiB9OwogCiBZZWFyTW9udGhDb250cm9s
bGVyLmFkZFRlblllYXJzQnV0dG9ucyA9IGZhbHNlOwpAQCAtNTU5LDQ0ICs1NjYsMTE5IEBAIFll
YXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9yZWRyYXcgPSBmdW5jdGlvbigpIHsKICAgICBp
ZiAodGhpcy5fcmlnaHQzKQogICAgICAgICB0aGlzLl9yaWdodDMuZGlzYWJsZWQgPSBjdXJyZW50
ICsgMTMgPiBtYXg7CiAgICAgdGhpcy5fbW9udGguaW5uZXJUZXh0ID0gZm9ybWF0WWVhck1vbnRo
KHRoaXMuX2N1cnJlbnRZZWFyLCB0aGlzLl9jdXJyZW50TW9udGgpOwotICAgIHdoaWxlICh0aGlz
Ll9tb250aFBvcHVwLmhhc0NoaWxkTm9kZXMoKSkKLSAgICAgICAgdGhpcy5fbW9udGhQb3B1cC5y
ZW1vdmVDaGlsZCh0aGlzLl9tb250aFBvcHVwLmZpcnN0Q2hpbGQpOworICAgIHdoaWxlICh0aGlz
Ll9tb250aFBvcHVwQ29udGVudHMuaGFzQ2hpbGROb2RlcygpKQorICAgICAgICB0aGlzLl9tb250
aFBvcHVwQ29udGVudHMucmVtb3ZlQ2hpbGQodGhpcy5fbW9udGhQb3B1cENvbnRlbnRzLmZpcnN0
Q2hpbGQpOworCiAgICAgZm9yICh2YXIgbSA9IGN1cnJlbnQgLSA2OyBtIDw9IGN1cnJlbnQgKyA2
OyBtKyspIHsKICAgICAgICAgaWYgKG0gPCBtaW4gfHwgbSA+IG1heCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICB2YXIgb3B0aW9uID0gY3JlYXRlRWxlbWVudCgib3B0aW9uIiwgdW5k
ZWZpbmVkLCBmb3JtYXRZZWFyTW9udGgoTWF0aC5mbG9vcihtIC8gMTIpLCBtICUgMTIpKTsKLSAg
ICAgICAgb3B0aW9uLnZhbHVlID0gU3RyaW5nKE1hdGguZmxvb3IobSAvIDEyKSkgKyAiLSIgKyBT
dHJpbmcobSAlIDEyKTsKLSAgICAgICAgdGhpcy5fbW9udGhQb3B1cC5hcHBlbmRDaGlsZChvcHRp
b24pOworICAgICAgICB2YXIgb3B0aW9uID0gY3JlYXRlRWxlbWVudCgiZGl2IiwgQ2xhc3NOYW1l
cy5Nb250aFNlbGVjdG9yUG9wdXBFbnRyeSwgZm9ybWF0WWVhck1vbnRoKE1hdGguZmxvb3IobSAv
IDEyKSwgbSAlIDEyKSk7CisgICAgICAgIG9wdGlvbi5kYXRhc2V0LnZhbHVlID0gU3RyaW5nKE1h
dGguZmxvb3IobSAvIDEyKSkgKyAiLSIgKyBTdHJpbmcobSAlIDEyKTsKKyAgICAgICAgdGhpcy5f
bW9udGhQb3B1cENvbnRlbnRzLmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgIGlmIChtID09
IGN1cnJlbnQpCi0gICAgICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlOworICAgICAgICAg
ICAgb3B0aW9uLmNsYXNzTGlzdC5hZGQoQ2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVhcik7CiAg
ICAgfQogfTsKIAogWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX3Nob3dQb3B1cCA9IGZ1
bmN0aW9uKCkgewotICAgIHRoaXMuX21vbnRoUG9wdXAuc2l6ZSA9IE1hdGgubWF4KDQsIE1hdGgu
bWluKDEwLCB0aGlzLl9tb250aFBvcHVwLmxlbmd0aCkpOwogICAgIHRoaXMuX21vbnRoUG9wdXAu
c3R5bGUuZGlzcGxheSA9ICJibG9jayI7Ci0gICAgdGhpcy5fbW9udGhQb3B1cC5zdHlsZS5wb3Np
dGlvbiA9ICJhYnNvbHV0ZSI7CiAgICAgdGhpcy5fbW9udGhQb3B1cC5zdHlsZS56SW5kZXggPSAi
MTAwMCI7IC8vIExhcmdlciB0aGFuIHRoZSBkYXlzIGFyZWEuCiAgICAgdGhpcy5fbW9udGhQb3B1
cC5zdHlsZS5sZWZ0ID0gdGhpcy5fbW9udGgub2Zmc2V0TGVmdCArICh0aGlzLl9tb250aC5vZmZz
ZXRXaWR0aCAtIHRoaXMuX21vbnRoUG9wdXAub2Zmc2V0V2lkdGgpIC8gMiArICJweCI7CiAgICAg
dGhpcy5fbW9udGhQb3B1cC5zdHlsZS50b3AgPSB0aGlzLl9tb250aC5vZmZzZXRUb3AgKyB0aGlz
Ll9tb250aC5vZmZzZXRIZWlnaHQgKyAicHgiOwotICAgIHRoaXMuX21vbnRoUG9wdXAuZm9jdXMo
KTsKIAogICAgIHRoaXMuX3dhbGwuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgdGhpcy5f
d2FsbC5zdHlsZS56SW5kZXggPSAiOTk5IjsgLy8gVGhpcyBzaG91bGQgYmUgc21hbGxlciB0aGFu
IHRoZSB6LWluZGV4IG9mIG1vbnRoUG9wdXAuCisKKyAgICB2YXIgcG9wdXBIZWlnaHQgPSB0aGlz
Ll9tb250aFBvcHVwLmNsaWVudEhlaWdodDsKKyAgICB2YXIgZnVsbEhlaWdodCA9IHRoaXMuX21v
bnRoUG9wdXBDb250ZW50cy5jbGllbnRIZWlnaHQ7CisgICAgaWYgKGZ1bGxIZWlnaHQgPiBwb3B1
cEhlaWdodCkgeworICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGlzLl9nZXRTZWxlY3Rpb24oKTsK
KyAgICAgICAgaWYgKHNlbGVjdGVkKSB7CisgICAgICAgICAgIHZhciBib3R0b20gPSBzZWxlY3Rl
ZC5vZmZzZXRUb3AgKyBzZWxlY3RlZC5jbGllbnRIZWlnaHQ7CisgICAgICAgICAgIGlmIChib3R0
b20gPiBwb3B1cEhlaWdodCkKKyAgICAgICAgICAgICAgIHRoaXMuX21vbnRoUG9wdXAuc2Nyb2xs
VG9wID0gYm90dG9tIC0gcG9wdXBIZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fbW9u
dGhQb3B1cC5zdHlsZS53ZWJraXRQYWRkaW5nRW5kID0gJzE1cHgnOworICAgIH0KKyAgICB0aGlz
Ll9tb250aFBvcHVwLmZvY3VzKCk7CiB9OwogCiBZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlw
ZS5fY2xvc2VQb3B1cCA9IGZ1bmN0aW9uKCkgewogICAgIHRoaXMuX21vbnRoUG9wdXAuc3R5bGUu
ZGlzcGxheSA9ICJub25lIjsKICAgICB0aGlzLl93YWxsLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7
CisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iICsgQ2xhc3NO
YW1lcy5EYXlzQXJlYUNvbnRhaW5lcik7CisgICAgY29udGFpbmVyLmZvY3VzKCk7CiB9OwogCiAv
KioKKyAqIEByZXR1cm4ge0VsZW1lbnR9IFNlbGVjdGVkIGVsZW1lbnQgaW4gdGhlIG1vbnRoLXll
YXIgcG9wdXAuCisgKi8KK1llYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9nZXRTZWxlY3Rp
b24gPSBmdW5jdGlvbigpCit7CisgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4i
ICsgQ2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVhcik7Cit9CisKKy8qKgorICogQHBhcmFtIHtF
dmVudH0gZXZlbnQKKyAqLworWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZU1v
dXNlTW92ZSA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIGlmICghdGhpcy5fdXBkYXRlU2VsZWN0
aW9uT25Nb3VzZU1vdmUpIHsKKyAgICAgICAgLy8gU2VsZWN0aW9uIHVwZGF0ZSB0dXJuZWQgb2Zm
IHdoaWxlIG5hdmlnYXRpbmcgd2l0aCBrZXlib2FyZCB0byBwcmV2ZW50IGEgbW91c2UKKyAgICAg
ICAgLy8gbW92ZSB0cmlnZ2VkIGR1cmluZyBhIHNjcm9sbCBmcm9tIHJlc2V0dGluZyB0aGUgc2Vs
ZWN0aW9uLiBBdXRvbWF0aWNhbGx5CisgICAgICAgIC8vIHJlYXJtIGNvbnRyb2wgdG8gZW5hYmxl
IG1vdXNlLWJhc2VkIHNlbGVjdGlvbi4KKyAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9uT25N
b3VzZU1vdmUgPSB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciB0YXJnZXQgPSBldmVu
dC50YXJnZXQ7CisgICAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLl9nZXRTZWxlY3Rpb24oKTsK
KyAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQgIT0gc2VsZWN0aW9uICYmIHRhcmdldC5jbGFz
c0xpc3QuY29udGFpbnMoQ2xhc3NOYW1lcy5Nb250aFNlbGVjdG9yUG9wdXBFbnRyeSkpIHsKKyAg
ICAgICAgICAgIGlmIChzZWxlY3Rpb24pCisgICAgICAgICAgICAgICAgc2VsZWN0aW9uLmNsYXNz
TGlzdC5yZW1vdmUoQ2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVhcik7CisgICAgICAgICAgICB0
YXJnZXQuY2xhc3NMaXN0LmFkZChDbGFzc05hbWVzLlNlbGVjdGVkTW9udGhZZWFyKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOworfQorCisvKioKICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50CiAgKi8KIFll
YXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVNb250aFBvcHVwS2V5ID0gZnVuY3Rp
b24oZXZlbnQpCiB7CiAgICAgdmFyIGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7Ci0gICAgaWYg
KGtleSA9PSAiVSswMDFCIikgeworICAgIGlmIChrZXkgPT0gIkRvd24iKSB7CisgICAgICAgIHZh
ciBzZWxlY3RlZCA9IHRoaXMuX2dldFNlbGVjdGlvbigpOworICAgICAgICBpZiAoc2VsZWN0ZWQp
IHsKKyAgICAgICAgICAgIHZhciBuZXh0ID0gc2VsZWN0ZWQubmV4dFNpYmxpbmc7CisgICAgICAg
ICAgICBpZiAobmV4dCkgeworICAgICAgICAgICAgICAgIHNlbGVjdGVkLmNsYXNzTGlzdC5yZW1v
dmUoQ2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVhcik7CisgICAgICAgICAgICAgICAgbmV4dC5j
bGFzc0xpc3QuYWRkKENsYXNzTmFtZXMuU2VsZWN0ZWRNb250aFllYXIpOworICAgICAgICAgICAg
ICAgIHZhciBib3R0b20gPSBuZXh0Lm9mZnNldFRvcCArIG5leHQuY2xpZW50SGVpZ2h0OworICAg
ICAgICAgICAgICAgIGlmIChib3R0b20gPiB0aGlzLl9tb250aFBvcHVwLnNjcm9sbFRvcCArIHRo
aXMuX21vbnRoUG9wdXAuY2xpZW50SGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMu
X3VwZGF0ZVNlbGVjdGlvbk9uTW91c2VNb3ZlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX21vbnRoUG9wdXAuc2Nyb2xsVG9wID0gYm90dG9tIC0gdGhpcy5fbW9udGhQb3B1cC5j
bGllbnRIZWlnaHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworICAgIH0gZWxzZSBpZiAoa2V5ID09ICJVcCIpIHsKKyAgICAgICAgdmFyIHNl
bGVjdGVkID0gdGhpcy5fZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIGlmIChzZWxlY3RlZCkgewor
ICAgICAgICAgICAgdmFyIHByZXZpb3VzID0gc2VsZWN0ZWQucHJldmlvdXNTaWJsaW5nOworICAg
ICAgICAgICAgaWYgKHByZXZpb3VzKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0ZWQuY2xhc3NM
aXN0LnJlbW92ZShDbGFzc05hbWVzLlNlbGVjdGVkTW9udGhZZWFyKTsKKyAgICAgICAgICAgICAg
ICBwcmV2aW91cy5jbGFzc0xpc3QuYWRkKENsYXNzTmFtZXMuU2VsZWN0ZWRNb250aFllYXIpOwor
ICAgICAgICAgICAgICAgIGlmIChwcmV2aW91cy5vZmZzZXRUb3AgPCB0aGlzLl9tb250aFBvcHVw
LnNjcm9sbFRvcCkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rpb25P
bk1vdXNlTW92ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb250aFBvcHVw
LnNjcm9sbFRvcCA9IHByZXZpb3VzLm9mZnNldFRvcDsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Cisg
ICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgfSBlbHNlIGlmIChrZXkgPT0gIlUr
MDAxQiIpIHsKICAgICAgICAgdGhpcy5fY2xvc2VQb3B1cCgpOwogICAgICAgICBldmVudC5zdG9w
UHJvcGFnYXRpb24oKTsKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKQEAgLTYwOSw4
ICs2OTEsMTEgQEAgWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZU1vbnRoUG9w
dXBLZXkgPSBmdW5jdGlvbihldmVudCkKIAogWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUu
X2hhbmRsZVllYXJNb250aENoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgIHRoaXMuX2Nsb3NlUG9w
dXAoKTsKLQotICAgIHZhciByZXN1bHQgPSB0aGlzLl9tb250aFBvcHVwLnZhbHVlLm1hdGNoKC8o
XGQrKS0oXGQrKS8pOworICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLl9nZXRTZWxlY3Rpb24oKTsK
KyAgICBpZiAoIXNlbGVjdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIHZhciB2YWx1ZSA9IHNl
bGVjdGlvbi5kYXRhc2V0LnZhbHVlOworICAgIHZhciByZXN1bHQgID0gdmFsdWUubWF0Y2goLyhc
ZCspLShcZCspLyk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybjsKICAgICB2YXIg
bmV3WWVhciA9IE51bWJlcihyZXN1bHRbMV0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156096</attachid>
            <date>2012-08-02 08:37:26 -0700</date>
            <delta_ts>2012-08-02 10:02:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92678-20120802113707.patch</filename>
            <type>text/plain</type>
            <size>12045</size>
            <attacher name="Kevin Ellis">kevers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODJlNDVjMzdiNjIwYzVk
MjMzYWU4MjA2OGZiN2Q3MTE1YTM1NjVhNC4uMTE1Njk3ZTYzYjNjZjQ2MTkzZGJhM2ZlMmEwMDkx
MWQ3MGZkN2RjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4LTAyICBLZXZp
biBFbGxpcyAgPGtldmVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW9udGgteWVhciBzZWxl
Y3RvciBvbiBjYWxlbmRhciBwaWNrZXIgc2hvdWxkIGJlIHRvdWNoIGZyaWVuZGx5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI2NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAgICBQcmV2aW91c2x5IHRoZSBtb250
aC15ZWFyIHBvcHVwIG1lbnUgd2FzIGltcGxlbWVudGVkIHVzaW5nIGEgbGlzdGJveCwKKyAgICAg
ICAgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBDU1MgY3VzdG9taXphdGlvbi4gIEVudHJpZXMgaW4g
dGhlIGxpc3Rib3gKKyAgICAgICAgd2VyZSB0b28gc2hhbGxvdyB0byByZWxpYWJseSB0YXJnZXQg
d2l0aCB0b3VjaCBnZXN0dXJlcy4gIFRoZQorICAgICAgICByZXBsYWNlbWVudCBwb3B1cCBpcyBD
U1MgY29uZmlndXJhYmxlIHdpdGggbGFyZ2VyIGVudHJpZXMgb24gZGV2aWNlcworICAgICAgICB0
aGF0IHN1cHBvcnQgdG91Y2ggaW5wdXQuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIHdpdGgg
YW5kIHdpdGhvdXQgdG91Y2ggc3VwcG9ydCBpbiBFbmdsaXNoLCBKYXBhbmVzZQorICAgICAgICBh
bmQgQXJhYmljLgorCisgICAgICAgICogUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmNzczoKKyAg
ICAgICAgKC5tb250aC1zZWxlY3Rvci1wb3B1cCk6IFVwZGF0ZSB0byB1c2Ugc2Nyb2xsYWJsZSBk
aXYgaW5zdGVhZCBvZiBsaXN0Ym94LgorICAgICAgICAoLm1vbnRoLXNlbGVjdG9yLXBvcHVwLWNv
bnRlbnRzKTogUmVuZGVyIHBvcHVwIGFzIGEgdGFibGUgd2l0aGluIGEgc2Nyb2xsYWJsZSBkaXYu
CisgICAgICAgICgubW9udGgtc2VsZWN0b3ItcG9wdXAtZW50cnkpOiBGb3JtYXR0aW5nIGVudHJp
ZXMgaW4gdGhlIG1vbnRoLXllYXIgcG9wdXAuCisgICAgICAgICguc2VsZWN0ZWQtbW9udGgteWVh
cik6IEhpZ2hsaWdodCB0aGUgc2VsZWN0ZWQgbW9udGgteWVhci4KKyAgICAgICAgKEBtZWRpYSAo
cG9pbnRlcjpjb2Fyc2UpKTogRW5sYXJnZSBlbnRyaWVzIGluIHRoZSBwb3B1cCBtZXUgb24gZGV2
aWNlcyB0aGF0IHN1cHBvcnQgdG91Y2guCisgICAgICAgICogUmVzb3VyY2VzL2NhbGVuZGFyUGlj
a2VyLmpzOgorICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuYXR0YWNoVG8p
OiBDaGFuZ2Ugc2VsZWN0b3IgcG9wdXAgZnJvbSBhIGxpc3QtYm94IHRvIGEgZGl2LgorICAgICAg
ICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX3JlZHJhdyk6IFBvcHVsYXRlIHRhYmxl
IGJhc2VkIHBvcHVwIHJhdGhlciB0aGFuIGxpc3Rib3guCisgICAgICAgIChZZWFyTW9udGhDb250
cm9sbGVyLnByb3RvdHlwZS5fc2hvd1BvcHVwKTogU2V0IHNjcm9sbCBwb3NpdGlvbiBhbmQgcmVz
aXplIGZvciBzY3JvbGxiYXIuCisgICAgICAgIChZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlw
ZS5fY2xvc2VQb3B1cCk6IFJlc3RvcmUgZm9jdXMgdG8gdGhlIGNhbGVuZGFyLgorICAgICAgICAo
WWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2dldFNlbGVjdGlvbik6IEFkZGVkIHRvIHJl
dHJpZXZlIHRoZSBzZWxlY3RlZCBtb250aC15ZWFyLgorICAgICAgICAoWWVhck1vbnRoQ29udHJv
bGxlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlTW92ZSk6IEFkZGVkIHRvIHVwZGF0ZSBzZWxlY3Rl
ZCBtb250aC15ZWFyIG9uIGhvdmVyLgorICAgICAgICAoWWVhck1vbnRoQ29udHJvbGxlci5wcm90
b3R5cGUuX2hhbmRsZU1vbnRoUG9wdXBLZXkpOiBBZGQga2V5Ym9hcmQgbmF2aWdhdGlvbi4KKyAg
ICAgICAgKFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVZZWFyTW9udGhDaGFu
Z2UpOiBSZXRyaWV2ZSB2YWx1ZSBmcm9tIHNlbGVjdGVkIG1vbnRoLXllYXIuCisKIDIwMTItMDgt
MDIgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90dHNjaGVzQGludGVsLmNvbT4KIAog
ICAgICAgICBbQ2Fpcm9dIEFkZCBjb21wbGV4IGZvbnQgZHJhd2luZyB1c2luZyBIYXJmYnV6ek5H
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvY2FsZW5kYXJQaWNrZXIuY3Nz
IGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmNzcwppbmRleCBlNGE2
MjRhZWQ2MWE3YTliOTBiZWE2MTQyNzBiMTYzZDg4ZWE3OGFjLi5lMjIwYjFjOTJhNzUwMzZlOTY5
ZDU1MmRjM2RhZWI4N2M2ZDk2ZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJj
ZXMvY2FsZW5kYXJQaWNrZXIuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxl
bmRhclBpY2tlci5jc3MKQEAgLTgyLDkgKzgyLDQ3IEBAIGJvZHkgewogfQogCiAubW9udGgtc2Vs
ZWN0b3ItcG9wdXAgeworICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICAt
d2Via2l0LWJveC1zaGFkb3c6CisgICAgICAgIDAgMCAwIDFweCByZ2JhKDAsMCwwLDAuMSksCisg
ICAgICAgIDAgNXB4IDFweCAxcHggcmdiYSgwLDAsMCwwLjEpLAorICAgICAgICAwIDVweCAycHgg
MXB4IHJnYmEoMCwwLDAsMC4xKSwKKyAgICAgICAgMCA1cHggMTJweCAxcHggcmdiYSgwLDAsMCww
LjUpOworICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgZGlzcGxheTogbm9uZTsKLSAgICBvdXRs
aW5lOiBub25lOwotICAgIHotaW5kZXg6IDI7CisgICAgbWF4LWhlaWdodDogMTAuOGVtOworICAg
IG92ZXJmbG93LXk6IGF1dG87CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHdoaXRlLXNw
YWNlOiBub3dyYXA7Cit9CisKKy5tb250aC1zZWxlY3Rvci1wb3B1cC1jb250ZW50cyB7CisgICAg
ZGlzcGxheTogdGFibGU7Cit9CisKKy5tb250aC1zZWxlY3Rvci1wb3B1cC1lbnRyeSB7CisgICAg
LXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiA1cHg7CisgICAgLXdlYmtpdC1wYWRkaW5nLWVuZDogNXB4
OworICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICBkaXNwbGF5OyB0YWJsZS1yb3c7CisgICAgbGlu
ZS1oZWlnaHQ6IDEuMmVtOworfQorCisuc2VsZWN0ZWQtbW9udGgteWVhciB7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogaGlnaGxpZ2h0OworICAgIGNvbG9yOiBoaWdobGlnaHR0ZXh0OworICAgIHRl
eHQtc2hhZG93OiBub25lOworfQorCitAbWVkaWEgKHBvaW50ZXI6Y29hcnNlKSB7CisKKyAgICAu
bW9udGgtc2VsZWN0b3ItcG9wdXAgeworICAgICAgICBtYXgtaGVpZ2h0OiAxNTBweDsKKyAgICB9
CisKKyAgICAubW9udGgtc2VsZWN0b3ItcG9wdXAtZW50cnkgeworICAgICAgICBsaW5lLWhlaWdo
dDogMzBweDsKKyAgICB9CiB9CiAKIC5tb250aC1zZWxlY3Rvci13YWxsIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRhclBpY2tlci5qcyBiL1NvdXJjZS9XZWJD
b3JlL1Jlc291cmNlcy9jYWxlbmRhclBpY2tlci5qcwppbmRleCBmMmE4NTFmMDMyY2UwZmNkOGQx
M2Q4MzI5ZDBlOWNhMTg5YTQxZGU5Li44MzQzYjA5NzE3NWM5YmVkNjEwN2QxMjBjZDlkODFkZjFk
NmUwMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvY2FsZW5kYXJQaWNr
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2NhbGVuZGFyUGlja2VyLmpzCkBA
IC00OSwxMCArNDksMTMgQEAgdmFyIENsYXNzTmFtZXMgPSB7CiAgICAgTW9udGhTZWxlY3Rvcjog
Im1vbnRoLXNlbGVjdG9yIiwKICAgICBNb250aFNlbGVjdG9yQm94OiAibW9udGgtc2VsZWN0b3It
Ym94IiwKICAgICBNb250aFNlbGVjdG9yUG9wdXA6ICJtb250aC1zZWxlY3Rvci1wb3B1cCIsCisg
ICAgTW9udGhTZWxlY3RvclBvcHVwQ29udGVudHM6ICJtb250aC1zZWxlY3Rvci1wb3B1cC1jb250
ZW50cyIsCisgICAgTW9udGhTZWxlY3RvclBvcHVwRW50cnk6ICJtb250aC1zZWxlY3Rvci1wb3B1
cC1lbnRyeSIsCiAgICAgTW9udGhTZWxlY3RvcldhbGw6ICJtb250aC1zZWxlY3Rvci13YWxsIiwK
ICAgICBOb0ZvY3VzUmluZzogIm5vLWZvY3VzLXJpbmciLAogICAgIE5vdFRoaXNNb250aDogIm5v
dC10aGlzLW1vbnRoIiwKICAgICBTZWxlY3RlZDogImRheS1zZWxlY3RlZCIsCisgICAgU2VsZWN0
ZWRNb250aFllYXI6ICJzZWxlY3RlZC1tb250aC15ZWFyIiwKICAgICBUb2RheUJ1dHRvbjogInRv
ZGF5LWJ1dHRvbiIsCiAgICAgVG9kYXlDbGVhckFyZWE6ICJ0b2RheS1jbGVhci1hcmVhIiwKICAg
ICBVbmF2YWlsYWJsZTogInVuYXZhaWxhYmxlIiwKQEAgLTQzMiwxMCArNDM1LDE0IEBAIFllYXJN
b250aENvbnRyb2xsZXIucHJvdG90eXBlLmF0dGFjaFRvID0gZnVuY3Rpb24obWFpbikgewogICAg
IHZhciBib3ggPSBjcmVhdGVFbGVtZW50KCJkaXYiLCBDbGFzc05hbWVzLk1vbnRoU2VsZWN0b3JC
b3gpOwogICAgIGlubmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGJveCk7CiAgICAgLy8gV2UgY2Fu
J3QgdXNlIDxzZWxlY3Q+IHBvcHVwIGluIFBhZ2VQb3B1cC4KLSAgICAvLyBGSVhNRTogVGhlIHBv
cHVwLW1lbnUgZW11bGF0aW9uIGJ5IGEgbGlzdGJveCBpcyBub3QgZ3JlYXQuCi0gICAgdGhpcy5f
bW9udGhQb3B1cCA9IGNyZWF0ZUVsZW1lbnQoInNlbGVjdCIsIENsYXNzTmFtZXMuTW9udGhTZWxl
Y3RvclBvcHVwKTsKKyAgICB0aGlzLl9tb250aFBvcHVwID0gY3JlYXRlRWxlbWVudCgiZGl2Iiwg
Q2xhc3NOYW1lcy5Nb250aFNlbGVjdG9yUG9wdXApOwogICAgIHRoaXMuX21vbnRoUG9wdXAuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBiaW5kKHRoaXMuX2hhbmRsZVllYXJNb250aENoYW5nZSwg
dGhpcyksIGZhbHNlKTsKICAgICB0aGlzLl9tb250aFBvcHVwLmFkZEV2ZW50TGlzdGVuZXIoImtl
eWRvd24iLCBiaW5kKHRoaXMuX2hhbmRsZU1vbnRoUG9wdXBLZXksIHRoaXMpLCBmYWxzZSk7Cisg
ICAgdGhpcy5fbW9udGhQb3B1cC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBiaW5kKHRo
aXMuX2hhbmRsZU1vdXNlTW92ZSwgdGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl91cGRhdGVTZWxl
Y3Rpb25Pbk1vdXNlTW92ZSA9IHRydWU7CisgICAgdGhpcy5fbW9udGhQb3B1cC50YWJJbmRleCA9
IDA7CisgICAgdGhpcy5fbW9udGhQb3B1cENvbnRlbnRzID0gY3JlYXRlRWxlbWVudCgiZGl2Iiwg
Q2xhc3NOYW1lcy5Nb250aFNlbGVjdG9yUG9wdXBDb250ZW50cyk7CisgICAgdGhpcy5fbW9udGhQ
b3B1cC5hcHBlbmRDaGlsZCh0aGlzLl9tb250aFBvcHVwQ29udGVudHMpOwogICAgIGJveC5hcHBl
bmRDaGlsZCh0aGlzLl9tb250aFBvcHVwKTsKICAgICB0aGlzLl9tb250aCA9IGNyZWF0ZUVsZW1l
bnQoImRpdiIsIENsYXNzTmFtZXMuTW9udGhTZWxlY3Rvcik7CiAgICAgdGhpcy5fbW9udGguYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBiaW5kKHRoaXMuX3Nob3dQb3B1cCwgdGhpcyksIGZhbHNl
KTsKQEAgLTQ2Miw3ICs0NjksNyBAQCBZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5hdHRh
Y2hUbyA9IGZ1bmN0aW9uKG1haW4pIHsKICAgICB9CiAgICAgdGhpcy5fbW9udGguc3R5bGUubWlu
V2lkdGggPSBtYXhXaWR0aCArICdweCc7CiAKLSAgICBnbG9iYWwuZmlyc3RGb2N1c2FibGVDb250
cm9sID0gdGhpcy5fbGVmdDI7IC8vIEZJWE1FOiBTaG91ZCBpdCBiZSB0aGlzLm1vbnRoPworICAg
IGdsb2JhbC5maXJzdEZvY3VzYWJsZUNvbnRyb2wgPSB0aGlzLl9sZWZ0MjsgLy8gRklYTUU6IFNo
b3VsZCBpdCBiZSB0aGlzLm1vbnRoPwogfTsKIAogWWVhck1vbnRoQ29udHJvbGxlci5hZGRUZW5Z
ZWFyc0J1dHRvbnMgPSBmYWxzZTsKQEAgLTU1OSw0NCArNTY2LDExOSBAQCBZZWFyTW9udGhDb250
cm9sbGVyLnByb3RvdHlwZS5fcmVkcmF3ID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHRoaXMuX3Jp
Z2h0MykKICAgICAgICAgdGhpcy5fcmlnaHQzLmRpc2FibGVkID0gY3VycmVudCArIDEzID4gbWF4
OwogICAgIHRoaXMuX21vbnRoLmlubmVyVGV4dCA9IGZvcm1hdFllYXJNb250aCh0aGlzLl9jdXJy
ZW50WWVhciwgdGhpcy5fY3VycmVudE1vbnRoKTsKLSAgICB3aGlsZSAodGhpcy5fbW9udGhQb3B1
cC5oYXNDaGlsZE5vZGVzKCkpCi0gICAgICAgIHRoaXMuX21vbnRoUG9wdXAucmVtb3ZlQ2hpbGQo
dGhpcy5fbW9udGhQb3B1cC5maXJzdENoaWxkKTsKKyAgICB3aGlsZSAodGhpcy5fbW9udGhQb3B1
cENvbnRlbnRzLmhhc0NoaWxkTm9kZXMoKSkKKyAgICAgICAgdGhpcy5fbW9udGhQb3B1cENvbnRl
bnRzLnJlbW92ZUNoaWxkKHRoaXMuX21vbnRoUG9wdXBDb250ZW50cy5maXJzdENoaWxkKTsKKwog
ICAgIGZvciAodmFyIG0gPSBjdXJyZW50IC0gNjsgbSA8PSBjdXJyZW50ICsgNjsgbSsrKSB7CiAg
ICAgICAgIGlmIChtIDwgbWluIHx8IG0gPiBtYXgpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgdmFyIG9wdGlvbiA9IGNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIsIHVuZGVmaW5lZCwgZm9y
bWF0WWVhck1vbnRoKE1hdGguZmxvb3IobSAvIDEyKSwgbSAlIDEyKSk7Ci0gICAgICAgIG9wdGlv
bi52YWx1ZSA9IFN0cmluZyhNYXRoLmZsb29yKG0gLyAxMikpICsgIi0iICsgU3RyaW5nKG0gJSAx
Mik7Ci0gICAgICAgIHRoaXMuX21vbnRoUG9wdXAuYXBwZW5kQ2hpbGQob3B0aW9uKTsKKyAgICAg
ICAgdmFyIG9wdGlvbiA9IGNyZWF0ZUVsZW1lbnQoImRpdiIsIENsYXNzTmFtZXMuTW9udGhTZWxl
Y3RvclBvcHVwRW50cnksIGZvcm1hdFllYXJNb250aChNYXRoLmZsb29yKG0gLyAxMiksIG0gJSAx
MikpOworICAgICAgICBvcHRpb24uZGF0YXNldC52YWx1ZSA9IFN0cmluZyhNYXRoLmZsb29yKG0g
LyAxMikpICsgIi0iICsgU3RyaW5nKG0gJSAxMik7CisgICAgICAgIHRoaXMuX21vbnRoUG9wdXBD
b250ZW50cy5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICBpZiAobSA9PSBjdXJyZW50KQot
ICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIG9wdGlvbi5j
bGFzc0xpc3QuYWRkKENsYXNzTmFtZXMuU2VsZWN0ZWRNb250aFllYXIpOwogICAgIH0KIH07CiAK
IFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9zaG93UG9wdXAgPSBmdW5jdGlvbigpIHsK
LSAgICB0aGlzLl9tb250aFBvcHVwLnNpemUgPSBNYXRoLm1heCg0LCBNYXRoLm1pbigxMCwgdGhp
cy5fbW9udGhQb3B1cC5sZW5ndGgpKTsKICAgICB0aGlzLl9tb250aFBvcHVwLnN0eWxlLmRpc3Bs
YXkgPSAiYmxvY2siOwotICAgIHRoaXMuX21vbnRoUG9wdXAuc3R5bGUucG9zaXRpb24gPSAiYWJz
b2x1dGUiOwogICAgIHRoaXMuX21vbnRoUG9wdXAuc3R5bGUuekluZGV4ID0gIjEwMDAiOyAvLyBM
YXJnZXIgdGhhbiB0aGUgZGF5cyBhcmVhLgogICAgIHRoaXMuX21vbnRoUG9wdXAuc3R5bGUubGVm
dCA9IHRoaXMuX21vbnRoLm9mZnNldExlZnQgKyAodGhpcy5fbW9udGgub2Zmc2V0V2lkdGggLSB0
aGlzLl9tb250aFBvcHVwLm9mZnNldFdpZHRoKSAvIDIgKyAicHgiOwogICAgIHRoaXMuX21vbnRo
UG9wdXAuc3R5bGUudG9wID0gdGhpcy5fbW9udGgub2Zmc2V0VG9wICsgdGhpcy5fbW9udGgub2Zm
c2V0SGVpZ2h0ICsgInB4IjsKLSAgICB0aGlzLl9tb250aFBvcHVwLmZvY3VzKCk7CiAKICAgICB0
aGlzLl93YWxsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgIHRoaXMuX3dhbGwuc3R5bGUu
ekluZGV4ID0gIjk5OSI7IC8vIFRoaXMgc2hvdWxkIGJlIHNtYWxsZXIgdGhhbiB0aGUgei1pbmRl
eCBvZiBtb250aFBvcHVwLgorCisgICAgdmFyIHBvcHVwSGVpZ2h0ID0gdGhpcy5fbW9udGhQb3B1
cC5jbGllbnRIZWlnaHQ7CisgICAgdmFyIGZ1bGxIZWlnaHQgPSB0aGlzLl9tb250aFBvcHVwQ29u
dGVudHMuY2xpZW50SGVpZ2h0OworICAgIGlmIChmdWxsSGVpZ2h0ID4gcG9wdXBIZWlnaHQpIHsK
KyAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhpcy5fZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIGlm
IChzZWxlY3RlZCkgeworICAgICAgICAgICB2YXIgYm90dG9tID0gc2VsZWN0ZWQub2Zmc2V0VG9w
ICsgc2VsZWN0ZWQuY2xpZW50SGVpZ2h0OworICAgICAgICAgICBpZiAoYm90dG9tID4gcG9wdXBI
ZWlnaHQpCisgICAgICAgICAgICAgICB0aGlzLl9tb250aFBvcHVwLnNjcm9sbFRvcCA9IGJvdHRv
bSAtIHBvcHVwSGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHRoaXMuX21vbnRoUG9wdXAuc3R5
bGUud2Via2l0UGFkZGluZ0VuZCA9ICcxNXB4JzsKKyAgICB9CisgICAgdGhpcy5fbW9udGhQb3B1
cC5mb2N1cygpOwogfTsKIAogWWVhck1vbnRoQ29udHJvbGxlci5wcm90b3R5cGUuX2Nsb3NlUG9w
dXAgPSBmdW5jdGlvbigpIHsKICAgICB0aGlzLl9tb250aFBvcHVwLnN0eWxlLmRpc3BsYXkgPSAi
bm9uZSI7CiAgICAgdGhpcy5fd2FsbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgIHZhciBj
b250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIiArIENsYXNzTmFtZXMuRGF5c0Fy
ZWFDb250YWluZXIpOworICAgIGNvbnRhaW5lci5mb2N1cygpOwogfTsKIAogLyoqCisgKiBAcmV0
dXJuIHtFbGVtZW50fSBTZWxlY3RlZCBlbGVtZW50IGluIHRoZSBtb250aC15ZWFyIHBvcHVwLgor
ICovCitZZWFyTW9udGhDb250cm9sbGVyLnByb3RvdHlwZS5fZ2V0U2VsZWN0aW9uID0gZnVuY3Rp
b24oKQoreworICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIiArIENsYXNzTmFt
ZXMuU2VsZWN0ZWRNb250aFllYXIpOworfQorCisvKioKKyAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50
CisgKi8KK1llYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVNb3VzZU1vdmUgPSBm
dW5jdGlvbihldmVudCkKK3sKKyAgICBpZiAoIXRoaXMuX3VwZGF0ZVNlbGVjdGlvbk9uTW91c2VN
b3ZlKSB7CisgICAgICAgIC8vIFNlbGVjdGlvbiB1cGRhdGUgdHVybmVkIG9mZiB3aGlsZSBuYXZp
Z2F0aW5nIHdpdGgga2V5Ym9hcmQgdG8gcHJldmVudCBhIG1vdXNlCisgICAgICAgIC8vIG1vdmUg
dHJpZ2dlZCBkdXJpbmcgYSBzY3JvbGwgZnJvbSByZXNldHRpbmcgdGhlIHNlbGVjdGlvbi4gQXV0
b21hdGljYWxseQorICAgICAgICAvLyByZWFybSBjb250cm9sIHRvIGVuYWJsZSBtb3VzZS1iYXNl
ZCBzZWxlY3Rpb24uCisgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbk9uTW91c2VNb3ZlID0g
dHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0Owor
ICAgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5fZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIGlm
ICh0YXJnZXQgJiYgdGFyZ2V0ICE9IHNlbGVjdGlvbiAmJiB0YXJnZXQuY2xhc3NMaXN0LmNvbnRh
aW5zKENsYXNzTmFtZXMuTW9udGhTZWxlY3RvclBvcHVwRW50cnkpKSB7CisgICAgICAgICAgICBp
ZiAoc2VsZWN0aW9uKQorICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5jbGFzc0xpc3QucmVtb3Zl
KENsYXNzTmFtZXMuU2VsZWN0ZWRNb250aFllYXIpOworICAgICAgICAgICAgdGFyZ2V0LmNsYXNz
TGlzdC5hZGQoQ2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVhcik7CisgICAgICAgIH0KKyAgICB9
CisgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKK30KKworLyoqCiAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAogICovCiBZZWFyTW9udGhDb250
cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlTW9udGhQb3B1cEtleSA9IGZ1bmN0aW9uKGV2ZW50KQog
ewogICAgIHZhciBrZXkgPSBldmVudC5rZXlJZGVudGlmaWVyOwotICAgIGlmIChrZXkgPT0gIlUr
MDAxQiIpIHsKKyAgICBpZiAoa2V5ID09ICJEb3duIikgeworICAgICAgICB2YXIgc2VsZWN0ZWQg
PSB0aGlzLl9nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgaWYgKHNlbGVjdGVkKSB7CisgICAgICAg
ICAgICB2YXIgbmV4dCA9IHNlbGVjdGVkLm5leHRTaWJsaW5nOworICAgICAgICAgICAgaWYgKG5l
eHQpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZC5jbGFzc0xpc3QucmVtb3ZlKENsYXNzTmFt
ZXMuU2VsZWN0ZWRNb250aFllYXIpOworICAgICAgICAgICAgICAgIG5leHQuY2xhc3NMaXN0LmFk
ZChDbGFzc05hbWVzLlNlbGVjdGVkTW9udGhZZWFyKTsKKyAgICAgICAgICAgICAgICB2YXIgYm90
dG9tID0gbmV4dC5vZmZzZXRUb3AgKyBuZXh0LmNsaWVudEhlaWdodDsKKyAgICAgICAgICAgICAg
ICBpZiAoYm90dG9tID4gdGhpcy5fbW9udGhQb3B1cC5zY3JvbGxUb3AgKyB0aGlzLl9tb250aFBv
cHVwLmNsaWVudEhlaWdodCkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVTZWxl
Y3Rpb25Pbk1vdXNlTW92ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb250
aFBvcHVwLnNjcm9sbFRvcCA9IGJvdHRvbSAtIHRoaXMuX21vbnRoUG9wdXAuY2xpZW50SGVpZ2h0
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBl
dmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICB9IGVsc2UgaWYgKGtleSA9PSAiVXAiKSB7CisgICAgICAgIHZhciBzZWxlY3RlZCA9IHRo
aXMuX2dldFNlbGVjdGlvbigpOworICAgICAgICBpZiAoc2VsZWN0ZWQpIHsKKyAgICAgICAgICAg
IHZhciBwcmV2aW91cyA9IHNlbGVjdGVkLnByZXZpb3VzU2libGluZzsKKyAgICAgICAgICAgIGlm
IChwcmV2aW91cykgeworICAgICAgICAgICAgICAgIHNlbGVjdGVkLmNsYXNzTGlzdC5yZW1vdmUo
Q2xhc3NOYW1lcy5TZWxlY3RlZE1vbnRoWWVhcik7CisgICAgICAgICAgICAgICAgcHJldmlvdXMu
Y2xhc3NMaXN0LmFkZChDbGFzc05hbWVzLlNlbGVjdGVkTW9udGhZZWFyKTsKKyAgICAgICAgICAg
ICAgICBpZiAocHJldmlvdXMub2Zmc2V0VG9wIDwgdGhpcy5fbW9udGhQb3B1cC5zY3JvbGxUb3Ap
IHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9uT25Nb3VzZU1vdmUg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW9udGhQb3B1cC5zY3JvbGxUb3Ag
PSBwcmV2aW91cy5vZmZzZXRUb3A7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0gZWxzZSBpZiAoa2V5ID09ICJVKzAwMUIiKSB7CiAg
ICAgICAgIHRoaXMuX2Nsb3NlUG9wdXAoKTsKICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9u
KCk7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CkBAIC02MDksOCArNjkxLDExIEBA
IFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVNb250aFBvcHVwS2V5ID0gZnVu
Y3Rpb24oZXZlbnQpCiAKIFllYXJNb250aENvbnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVZZWFy
TW9udGhDaGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgICB0aGlzLl9jbG9zZVBvcHVwKCk7Ci0KLSAg
ICB2YXIgcmVzdWx0ID0gdGhpcy5fbW9udGhQb3B1cC52YWx1ZS5tYXRjaCgvKFxkKyktKFxkKykv
KTsKKyAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5fZ2V0U2VsZWN0aW9uKCk7CisgICAgaWYgKCFz
ZWxlY3Rpb24pCisgICAgICAgIHJldHVybjsKKyAgICB2YXIgdmFsdWUgPSBzZWxlY3Rpb24uZGF0
YXNldC52YWx1ZTsKKyAgICB2YXIgcmVzdWx0ICA9IHZhbHVlLm1hdGNoKC8oXGQrKS0oXGQrKS8p
OwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm47CiAgICAgdmFyIG5ld1llYXIgPSBO
dW1iZXIocmVzdWx0WzFdKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>