Repository: zookeeper
Updated Branches:
  refs/heads/website ef9d41acc -> a0fb79f81


http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/js/popper.min.js
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/js/popper.min.js 
b/src/main/resources/markdown/js/popper.min.js
new file mode 100644
index 0000000..79ccbf5
--- /dev/null
+++ b/src/main/resources/markdown/js/popper.min.js
@@ -0,0 +1,5 @@
+/*
+ Copyright (C) Federico Zivolo 2018
+ Distributed under the MIT License (license terms are at 
http://opensource.org/licenses/MIT).
+ */(function(e,t){'object'==typeof exports&&'undefined'!=typeof 
module?module.exports=t():'function'==typeof 
define&&define.amd?define(t):e.Popper=t()})(this,function(){'use 
strict';function e(e){return e&&'[object 
Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var 
o=getComputedStyle(e,null);return t?o[t]:o}function 
o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function 
n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return 
e.ownerDocument.body;case'#document':return e.body;}var 
i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return 
/(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 
11===e?re:10===e?pe:re||pe}function p(e){if(!e)return 
document.documentElement;for(var 
o=r(10)?document.body:null,n=e.offsetParent;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var
 i=n&&n.nodeName;return 
i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e
 ?e.ownerDocument.documentElement:document.documentElement}function s(e){var 
t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function
 d(e){return null===e.parentNode?e:d(e.parentNode)}function 
a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var 
o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var
 l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return 
s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function 
l(e){var t=1<arguments.length&&void 
0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var
 i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return 
r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 
0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return 
e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}fu
 nction m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return 
parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function
 h(e,t,o,n){return 
$(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?o['offset'+e]+n['margin'+('Height'===e?'Top':'Left')]+n['margin'+('Height'===e?'Bottom':'Right')]:0)}function
 c(){var 
e=document.body,t=document.documentElement,o=r(10)&&getComputedStyle(t);return{height:h('Height',e,t,o),width:h('Width',e,t,o)}}function
 g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function 
u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var 
n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else 
o=e.getBoundingClientRect()}catch(t){}var 
p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c():{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var
 u=t
 (e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function 
b(e,o){var i=2<arguments.length&&void 
0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&'HTML'===o.nodeName&&(a.top=$(a.top,0),a.left=$(a.left,0));var
 
b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var
 
y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function
 y(e){var t=1<arguments.length&&void 
0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=$(o.clientWidth,window.innerWidth||0),r=$(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return
 g(d)}function w(e){var n=e.n
 
odeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function
 E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var 
o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return 
o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 
0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var
 
l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var
 f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var 
m=c(),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else
 s=f}return s.left+=i,s.top+=i,s.right-=i,s.bottom-=i,s}function x(e){var 
t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var 
r=5<arguments.length&&void 
0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var 
p=v(o,n,r,i),s={top:{width:p.width,height:t.top-
 
p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return
 le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return 
t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return 
t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return
 l+(f?'-'+f:'')}function L(e,t,o){var n=3<arguments.length&&void 
0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function 
S(e){var 
t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),n=parseFloat(t.marginLeft)+parseFloat(t.marginRight),i={width:e.offsetWidth+n,height:e.offsetHeight+o};return
 i}function T(e){var 
t={left:'right',right:'left',bottom:'top',top:'bottom'};return 
e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function 
C(e,t,o){o=o.split('-')[0];var 
n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].inde
 
xOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return
 i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function D(e,t){return 
Array.prototype.find?e.find(t):e.filter(t)[0]}function 
N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return 
e[t]===o});var n=D(e,function(e){return e[t]===o});return e.indexOf(n)}function 
P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return 
i.forEach(function(t){t['function']&&console.warn('`modifier.function` is 
deprecated, use `modifier.fn`!');var 
n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function
 k(){if(!this.state.isDestroyed){var 
e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modi
 
fiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=C(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function
 W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return 
n&&o===t})}function B(e){for(var 
t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var
 i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return 
r}return null}function H(){return 
this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[B('t
 
ransform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function
 A(e){var t=e.ownerDocument;return t?t.defaultView:window}function 
M(e,t,o,i){var 
r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function
 
I(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var
 r=n(e);return 
M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function
 
F(){this.state.eventsEnabled||(this.state=I(this.reference,this.options,this.state,this.scheduleUpdate))}function
 R(e,t){return 
A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function
 
U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.re
 ference,this.state))}function 
Y(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function 
j(e,t){Object.keys(t).forEach(function(o){var 
n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function
 K(e,t){Object.keys(t).forEach(function(o){var 
n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function 
q(e,t,o){var n=D(e,function(e){var o=e.name;return 
o===t}),i=!!n&&e.some(function(e){return 
e.name===o&&e.enabled&&e.order<n.order});if(!i){var 
r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in 
order to work, be sure to include it before '+r+'!')}return i}function 
G(e){return'end'===e?'start':'start'===e?'end':e}function z(e){var 
t=1<arguments.length&&void 
0!==arguments[1]&&arguments[1],o=me.indexOf(e),n=me.slice(o+1).concat(me.slice(0,o));return
 t?n.reverse():n}function V(e,t,o,n){var 
i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return 
e;if(0===p.indexOf('%')){var s;switch(
 p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return 
d[t]/100*r}if('vh'===p||'vw'===p){var a;return 
a='vh'===p?$(document.documentElement.clientHeight,window.innerHeight||0):$(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return
 r}function _(e,t,o,n){var 
i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return
 
e.trim()}),s=p.indexOf(D(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets
 separated by white space(s) are deprecated, use a comma (,) instead.');var 
d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return
 a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return 
e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return
 V(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y
 (o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function X(e,t){var 
o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return
 
o=Y(+n)?[+n,0]:_(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var
 J=Math.min,Q=Math.round,Z=Math.floor,$=Math.max,ee='undefined'!=typeof 
window&&'undefined'!=typeof 
document,te=['Edge','Trident','Firefox'],oe=0,ne=0;ne<te.length;ne+=1)if(ee&&0<=navigator.userAgent.indexOf(te[ne])){oe=1;break}var
 i=ee&&window.Promise,ie=i?function(e){var t=!1;return 
function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var
 t=!1;return 
function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=ee&&!!(window.MSInputMethodContext&&document.documentMode),pe=ee&&/MSIE
 10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new 
TypeError('Cannot call a class as a function'
 )},de=function(){function e(e,t){for(var 
o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in
 o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return 
function(t,o,n){return 
o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in 
e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var
 t,o=1;o<arguments.length;o++)for(var n in 
t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return 
e},fe=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],me=fe.slice(3),he={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ce=function(){function
 t(o,n){var i=this,r=2<arguments.length&&void 
0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return
 requestAnimationFrame(i.update)},this.update=ie(this.update.bi
 
nd(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return
 le({name:e},i.options.modifiers[e])}).sort(function(e,t){return 
e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var
 
p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return
 de(t,[{key:'update',value:function(){return 
k.call(this)}},{key:'destroy',value:function(){return 
H.call(this)}},{key:'enableEventListeners',value:function(){return 
F.call(this)}},{key:'disableEventListeners',value:function(){return 
U.call(this)}}]),t}();return 
 ce.Utils=('undefined'==typeof 
window?global:window).PopperUtils,ce.placements=fe,ce.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var
 t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var 
i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return
 
e}},offset:{order:200,enabled:!0,fn:X,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var
 
o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var
 
n=B('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top='',i.left='',i[n]='';var
 
a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var
 l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];
 return 
f[e]<a[e]&&!t.escapeWithReference&&(o=$(f[e],a[e])),ae({},e,o)},secondary:function(e){var
 o='right'===e?'left':'top',n=f[o];return 
f[e]>a[e]&&!t.escapeWithReference&&(n=J(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return
 l.forEach(function(e){var 
t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var
 
t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return
 
o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var
 n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var 
i=o.element;if('string'==typeof 
i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.pop
 per.contains(i))return console.warn('WARNING: `arrow.element` must be child of 
its popper element!'),e;var 
r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var
 
b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return
 
v=$(J(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,Q(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return
 e;if(e.flipped&&e.placement===e.originalPlacement)return e;var 
o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.spli
 t('-')[1]||'',p=[];switch(t.behavior){case he.FLIP:p=[n,i];break;case 
he.CLOCKWISE:p=z(n);break;case 
he.COUNTERCLOCKWISE:p=z(n,!0);break;default:p=t.behavior;}return 
p.forEach(function(s,d){if(n!==s||p.length===d+1)return 
e;n=e.placement.split('-')[0],i=T(n);var 
a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=G(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'
 viewport'},inner:{order:700,enabled:!1,fn:function(e){var 
t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return
 
i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return
 e;var 
t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return
 e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return 
e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return 
e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var 
o=t.x,n=t.y,i=e.offsets.popper,r=D(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void
 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` 
modif
 ier and will not be supported in future versions of Popper.js!');var 
s,d,a=void 
0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h={left:Z(i.left),top:Q(i.top),bottom:Q(i.bottom),right:Z(i.right)},c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?-f.height+h.bottom:h.top,s='right'==g?-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px,
 '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var 
y='bottom'==c?-1:1,w='right'==g?-1:1;m[c]=d*y,m[g]=s*w,m.willChange=c+', 
'+g}var E={"x-placement":e.placement};return 
e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return
 
j(e.instance.popper,e.styles),K(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var
 r=L(i,t,e,
 
o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return
 
t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void
 0}}},ce});
+//# sourceMappingURL=popper.min.js.map

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/lists.md
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/lists.md 
b/src/main/resources/markdown/lists.md
new file mode 100644
index 0000000..5350696
--- /dev/null
+++ b/src/main/resources/markdown/lists.md
@@ -0,0 +1,53 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# ZooKeeper Mailing Lists
+
+## Users
+
+If you use ZooKeeper, please subscribe to the ZooKeeper user mailing list.
+
+The ZooKeeper user mailing list is: 
[[email protected]](mailto:[email protected])
+
+* [Subscribe to List](mailto:[email protected])
+* [Unsubscribe from List](mailto:[email protected])
+* [Archives](https://mail-archives.apache.org/mod_mbox/zookeeper-user/)
+* [Older Archives (Hadoop, 
pre-TLP)](https://mail-archives.apache.org/mod_mbox/hadoop-zookeeper-user/)
+
+Note
+In order to post to the list, it is necessary to first subscribe to it.
+
+
+## Developers
+
+If you'd like to contribute to ZooKeeper, please subscribe to the ZooKeeper 
developer mailing list.
+
+The ZooKeeper developer mailing list is : 
[[email protected]](mailto:[email protected])
+
+* [Subscribe to List](mailto:[email protected])
+* [Unsubscribe from List](mailto:[email protected])
+* [Archives](https://mail-archives.apache.org/mod_mbox/zookeeper-dev/)
+* [Older Archives (Hadoop, 
pre-TLP)](https://mail-archives.apache.org/mod_mbox/hadoop-zookeeper-dev/)
+
+Note
+In order to post to the list, it is necessary to first subscribe to it.
+
+## Commits
+
+If you'd like to see changes made in ZooKeeper's version control system then 
subscribe to the ZooKeeper commit mailing list.
+
+* [Subscribe to List](mailto:[email protected])
+* [Unsubscribe from List](mailto:[email protected])
+* [Archives](https://mail-archives.apache.org/mod_mbox/zookeeper-commits/)
+* [Older Archives (Hadoop, 
pre-TLP)](https://mail-archives.apache.org/mod_mbox/hadoop-zookeeper-commits/)

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/privacy.md
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/privacy.md 
b/src/main/resources/markdown/privacy.md
new file mode 100644
index 0000000..fce090f
--- /dev/null
+++ b/src/main/resources/markdown/privacy.md
@@ -0,0 +1,38 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# Privacy Policy
+
+Information about your use of this website is collected using server access 
logs and a tracking
+cookie. The collected information consists of the following:
+
+1. The IP address from which you access the website;
+1. The type of browser and operating system you use to access our site;
+1. The date and time you access our site;
+1. The pages you visit; and
+1. The addresses of pages from where you followed a link to our site.
+
+Part of this information is gathered using a tracking cookie set by the
+[Google Analytics](https://www.google.com/analytics/) service and handled by 
Google as described in
+their [privacy policy](https://www.google.com/privacy.html). See your browser 
documentation for
+instructions on how to disable the cookie if you prefer not to share this data 
with Google.
+
+We use the gathered information to help us make our site more useful to 
visitors and to better
+understand how and when our site is used. We do not track or collect 
personally identifiable
+information or associate gathered data with any personally identifying 
information from other sources.
+
+By using this website, you consent to the collection of this data in the 
manner and for the purpose
+described above.
+
+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/releases.md
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/releases.md 
b/src/main/resources/markdown/releases.md
new file mode 100644
index 0000000..bb2489e
--- /dev/null
+++ b/src/main/resources/markdown/releases.md
@@ -0,0 +1,223 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# Apache ZooKeeper&trade; Releases
+
+The Apache ZooKeeper system for distributed coordination is a high-performance 
service for building distributed applications.
+
+* [Download](#download)
+* [Release Notes](#releasenotes)
+* [News](#news)
+
+<a name="download"></a>
+## Download
+
+Active releases may be downloaded from Apache mirrors: 
[Download](https://www.apache.org/dyn/closer.cgi/zookeeper/)
+
+On the mirror, all recent releases are available.
+
+Older releases are available in the 
[archive](https://archive.apache.org/dist/zookeeper/).
+
+You can verify the integrity of a downloaded release using the PGP signatures 
and hashes (MD5 or SHA1) hosted at the main [Apache distro 
site](https://apache.org/dist/zookeeper/).  For additional information, refer 
to the Apache documentation for [verifying the integrity of Apache project 
releases](https://www.apache.org/dyn/closer.cgi#verify).
+
+<a name="releasenotes"></a>
+## Release Notes
+
+Release notes for Apache Zookeeper releases are available in Jira: [Browse 
release 
notes](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
+
+<a name="news"></a>
+## News
+
+### 15 July, 2018: release 3.4.13 available
+
+This is a bugfix release. It fixes 17 issues, including issues such as 
ZOOKEEPER-2959 that could cause data loss when observer is used, and 
ZOOKEEPER-2184 that prevents ZooKeeper Java clients working in dynamic IP 
(container / cloud) environment. See [ZooKeeper 3.4.13 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.13/releasenotes.html) for details.
+
+### 17 May, 2018: release 3.5.4-beta available
+
+3.5.4-beta is the second beta in the planned 3.5 release line leading up to a 
stable 3.5 release. It comprises 113 bug fixes and improvements.
+
+Release 3.5.3 added a new feature ZOOKEEPER-2169 "Enable creation of nodes 
with TTLs". There was a major oversight when TTL nodes were implemented. The 
session ID generator for each server is seeded with the configured Server ID in 
the high byte. TTL Nodes were using the highest bit to denote a TTL node when 
used in the ephemeral owner. This meant that Server IDs > 127 that created 
ephemeral nodes would have those nodes always considered TTL nodes (with the 
TTL being essentially a random number). ZOOKEEPER-2901 fixes the issue. By 
default TTL is disabled and must now be enabled in zoo.cfg. When TTL Nodes are 
enabled, the max Server ID changes from 255 to 254. See the documentation for 
TTL in the administrator guide (or the referenced JIRAs) for more details.
+
+### 1 May, 2018: release 3.4.12 available
+
+This release fixes 22 issues, including issues that affect incorrect handling 
of the dataDir and the dataLogDir.  See [ZooKeeper 3.4.12 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.12/releasenotes.html) for details.
+
+### 9 November, 2017: release 3.4.11 available
+
+This release fixes 53 issues, it includes support for Java 9 and other 
critical bug fixes.  See [ZooKeeper 3.4.11 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.11/releasenotes.html) for details.
+
+**WARNING**: 
[ZOOKEEPER-2960](https://issues.apache.org/jira/browse/ZOOKEEPER-2960) was 
recently identified as a regression in 3.4.11 affecting the specification of 
separate dataDir and dataLogDir configuration parameters (vs the default which 
is a single directory for both). It will be addressed in 3.4.12.
+
+### 17 April, 2017: release 3.5.3-beta available
+
+3.5.3-beta is the first beta in the planned 3.5 release line leading up to a 
stable 3.5 release. It comprises 76 bug fixes and improvements. This release 
includes important security fix around dynamic reconfigure API, improvements on 
test infrastructure, and new features such as TTL node.
+
+### 30 March, 2017: release 3.4.10 available
+
+This release fixes 43 issues, including security feature QuorumPeer mutual 
authentication via SASL and other critical bugs. See [ZooKeeper 3.4.10 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.10/releasenotes.html) for details.
+
+### 03 September, 2016: release 3.4.9 available
+
+This release fixes many critical bugs and improvements. See [ZooKeeper 3.4.9 
Release Notes](https://zookeeper.apache.org/doc/r3.4.9/releasenotes.html) for 
details.
+
+### 20 July, 2016: release 3.5.2-alpha available
+
+This is an alpha quality release that contains many bug fixes and improvements.
+
+### 20 February, 2016: release 3.4.8 available
+
+This release fixes 9 issues, most notably a deadlock when shutting down 
ZooKeeper. See [ZooKeeper 3.4.8 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.8/releasenotes.html) for details.
+
+### 31 August, 2015: release 3.5.1-alpha available
+
+This is an alpha quality release that contains many bug fixes and 
improvements. It also introduces a few new features, including container znodes 
and SSL support for client-server communication.
+
+See the [ZooKeeper 3.5.1-alpha Release 
Notes](https://zookeeper.apache.org/doc/r3.5.1-alpha/releasenotes.html) for 
details.
+
+### 6 August, 2014: release 3.5.0-alpha available
+
+This release is alpha quality and contains many improvements, new features, 
bug fixes and optimizations.
+
+See the [ZooKeeper 3.5.0-alpha Release 
Notes](https://zookeeper.apache.org/doc/r3.5.0-alpha/releasenotes.html) for 
details. Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 10 March, 2014: release 3.4.6 available
+
+The release fixes a critical bug that could prevent a server from joining an 
established ensemble. See
+[ZooKeeper 3.4.6 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.6/releasenotes.html) for details.
+
+### 18 November, 2012: release 3.4.5 available
+
+The release fixes a critical bug that could cause client connection issues. See
+[ZooKeeper 3.4.5 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.5/releasenotes.html) for details.
+
+### 23 September, 2012: release 3.4.4 available
+
+The release fixes a critical bug that could cause data inconsistency. See
+[ZooKeeper 3.4.4 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.4/releasenotes.html) for details.
+
+
+### 02 August, 2012: release 3.3.6 available
+
+The release fixes a critical bug that could cause data loss. See
+[ZooKeeper 3.3.6 Release 
Notes](https://zookeeper.apache.org/doc/r3.3.6/releasenotes.html) for details.
+
+### 20 March, 2012: release 3.3.5 available
+
+The release fixes a critical bug that could cause data corruption. See
+[ZooKeeper 3.3.5 Release 
Notes](https://zookeeper.apache.org/doc/r3.3.5/releasenotes.html) for details.
+
+### 13 Feb, 2012: release 3.4.3 available
+
+This release fixes  critical bugs in 3.4.2. See
+[ZooKeeper 3.4.3 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.3/releasenotes.html) for details.
+
+We are now upgrading this release to a beta release given that we have had 
quite a few bug fixes to 3.4 branch and 3.4 releases have been out for some 
time now.
+
+### 29 Dec, 2011: release 3.4.2 available
+
+This release fixes a critical bug in 3.4.1. See
+[ZooKeeper 3.4.2 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.2/releasenotes.html) for details.
+
+Please note that this is still an alpha release and we do not recommend this 
for production. Please use the stable release line 3.3.* for production use. 
+
+
+### 16 Dec, 2011: release 3.4.1 available
+
+This release fixes a critical bug with data loss in 3.4.0. See
+[ZooKeeper 3.4.1 Release 
Notes](https://zookeeper.apache.org/doc/r3.4.1/releasenotes.html) for details.
+In case you are already using 3.4.0 release please upgrade ASAP.
+
+Please note that this is an alpha release and not ready for production as of 
now.
+
+### 26 Nov, 2011: release 3.3.4 available
+
+The release fixes a number of critical bugs that could cause data corruption. 
See
+[ZooKeeper 3.3.4 Release 
Notes](https://zookeeper.apache.org/doc/r3.3.4/releasenotes.html) for details.
+
+### 22 Nov, 2011: release 3.4.0 available
+
+Due to data loss issues, this release has been removed from the downloads 
page. Release 3.4.1 is now available. 
+
+### 27 Feb, 2011: release 3.3.3 available
+
+The release fixes two critical bugs that could cause data corruption. It also 
addresses 12 other issues. See
+[ZooKeeper 3.3.3 Release 
Notes](https://zookeeper.apache.org/doc/r3.3.3/releasenotes.html) for details.
+
+### 11 Nov, 2010: release 3.3.2 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.3.2 Release 
Notes](https://zookeeper.apache.org/doc/r3.3.2/releasenotes.html) for details. 
Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 17 May, 2010: release 3.3.1 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.3.1 Release 
Notes](https://zookeeper.apache.org/doc/r3.3.1/releasenotes.html) for details. 
Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 25 March, 2010: release 3.3.0 available
+
+This release contains many improvements, new features, bug fixes and 
optimizations.
+
+See the [ZooKeeper 3.3.0 Release 
Notes](https://zookeeper.apache.org/doc/r3.3.0/releasenotes.html) for details. 
Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 14 December, 2009: release 3.2.2 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.2.2 Release 
Notes](https://zookeeper.apache.org/doc/r3.2.2/releasenotes.html) for details. 
Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 14 December, 2009: release 3.1.2 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.1.2 Release 
Notes](https://zookeeper.apache.org/doc/r3.1.2/releasenotes.html) for details. 
Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 4 September, 2009: release 3.2.1 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.2.1 Release 
Notes](https://zookeeper.apache.org/doc/r3.2.1/releasenotes.html) for details. 
Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 8 July, 2009: release 3.2.0 available
+
+This release contains many improvements, new features, bug fixes and 
optimizations.
+
+See the [ZooKeeper 3.2.0 Release 
Notes](https://zookeeper.apache.org/doc/r3.2.0/releasenotes.html) for details. 
Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 27 March, 2009: release 3.1.1 available
+
+This release contains a small number of bug fixes.
+
+See the [ZooKeeper 3.1.1 Release 
Notes](https://zookeeper.apache.org/doc/r3.1.1/releasenotes.html) for details. 
Alternatively, you can look at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 13 February, 2009: release 3.1.0 available
+
+This release contains many improvements, new features, bug fixes and 
optimizations.
+
+See the ZooKeeper 3.1.0 Release Notes for details. Alternatively, you can look 
at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 4 December, 2008: release 3.0.1 available
+
+This release contains many improvements, new features, bug fixes and 
optimizations.
+
+See the ZooKeeper 3.0.1 Release Notes for details. Alternatively, you can look 
at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+### 27 October, 2008: release 3.0.0 available
+
+This release contains many improvements, new features, bug fixes and 
optimizations.
+
+See the ZooKeeper 3.0.0 Release Notes for details. Alternatively, you can look 
at the 
[Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
 issue log for all releases.
+
+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/security.md
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/security.md 
b/src/main/resources/markdown/security.md
new file mode 100644
index 0000000..76038b0
--- /dev/null
+++ b/src/main/resources/markdown/security.md
@@ -0,0 +1,154 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# ZooKeeper Security
+
+The Apache Software Foundation takes security issues very seriously. Due to 
the infrastructure
+nature of the Apache ZooKeeper project specifically, we haven't had many 
reports over time, but
+it doesn't mean that we haven't had concerns over some bugs and 
vulnerabilities. If you have any
+concern or believe you have uncovered a vulnerability, we suggest that you get 
in touch via the 
+e-mail address <a 
href="mailto:[email protected]?Subject=[SECURITY] My security issue"
+target="_top">[email protected]</a>. In the message, try to 
provide a description of
+the issue and ideally a way of reproducing it. Note that this security address 
should be used
+only for undisclosed vulnerabilities. Dealing with known issues should be 
handled regularly 
+via jira and the mailing lists. **Please report any security problems to the 
project security
+address before disclosing it publicly.**  
+
+The ASF Security team maintains a page with a description of how 
vulnerabilities are handled, check
+their <a href="https://www.apache.org/security/";>Web page</a> for more 
information.
+
+## Vulnerability reports
+
+* [CVE-2018-8012: Apache ZooKeeper Quorum Peer mutual 
authentication](#CVE-2018-8012)
+* [CVE-2017-5637: DOS attack on wchp/wchc four letter words 
(4lw)](#CVE-2017-5637)
+* [CVE-2016-5017: Buffer overflow vulnerability in ZooKeeper C cli 
shell](#CVE-2016-5017)
+
+
+<a name="CVE-2018-8012"></a>
+### CVE-2018-8012: Apache ZooKeeper Quorum Peer mutual authentication
+
+Severity: Critical
+
+Vendor:
+The Apache Software Foundation
+
+Versions Affected:
+ZooKeeper prior to 3.4.10
+ZooKeeper 3.5.0-alpha through 3.5.3-beta
+The unsupported ZooKeeper 1.x through 3.3.x versions may be also affected
+
+Description:
+No authentication/authorization is enforced when a server attempts to join a 
quorum. As a result an
+arbitrary end point could join the cluster and begin propagating counterfeit 
changes to the leader.
+
+Mitigation:
+Upgrade to 3.4.10 or later (3.5.4-beta or later if on the 3.5 branch) and 
enable Quorum Peer mutual
+authentication.
+
+Alternately ensure the ensemble election/quorum communication is protected by 
a firewall as this
+will mitigate the issue.
+
+See the documentation for more details on correct cluster administration.
+
+Credit:
+This issue was identified by Földi Tamás and Eugene Koontz
+
+References:
+https://issues.apache.org/jira/browse/ZOOKEEPER-1045
+https://cwiki.apache.org/confluence/display/ZOOKEEPER/Server-Server+mutual+authentication
+http://zookeeper.apache.org/doc/current/zookeeperAdmin.html
+
+
+<a name="CVE-2017-5637"></a>
+### CVE-2017-5637: DOS attack on wchp/wchc four letter words (4lw) 
{#CVE-2017-5637}
+
+Severity: moderate
+
+Vendor:
+The Apache Software Foundation
+
+Versions Affected:
+ZooKeeper 3.4.0 to 3.4.9
+ZooKeeper 3.5.0 to 3.5.2
+The unsupported ZooKeeper 1.x through 3.3.x versions may be also affected
+
+Note: The 3.5 branch is still beta at this time.
+
+Description:
+Two four letter word commands “wchp/wchc” are CPU intensive and could 
cause spike of CPU utilization
+on ZooKeeper server if abused,
+which leads to the server unable to serve legitimate client requests. There is 
no known compromise
+which takes advantage of this vulnerability.
+
+Mitigation:
+This affects ZooKeeper ensembles whose client port is publicly accessible, so 
it is recommended to
+protect ZooKeeper ensemble with firewall.
+Documentation has also been updated to clarify on this point. In addition, a 
patch (ZOOKEEPER-2693)
+is provided to disable "wchp/wchc” commands
+by default.
+- ZooKeeper 3.4.x users should upgrade to 3.4.10 or apply the patch.
+- ZooKeeper 3.5.x users should upgrade to 3.5.3 or apply the patch.
+
+References
+[1] https://issues.apache.org/jira/browse/ZOOKEEPER-2693
+
+
+<a name="CVE-2016-5017"></a>
+### CVE-2016-5017: Buffer overflow vulnerability in ZooKeeper C cli shell 
{#CVE-2016-5017}
+
+Severity: moderate
+
+Vendor:
+The Apache Software Foundation
+
+Versions Affected:
+ZooKeeper 3.4.0 to 3.4.8
+ZooKeeper 3.5.0 to 3.5.2
+The unsupported ZooKeeper 1.x through 3.3.x versions may be also affected
+
+Note: The 3.5 branch is still alpha at this time.
+
+Description:
+The ZooKeeper C client shells "cli_st" and "cli_mt" have a buffer
+overflow vulnerability associated with parsing of the input command
+when using the "cmd:<cmd>" batch mode syntax. If the command string
+exceeds 1024 characters a buffer overflow will occur. There is no
+known compromise which takes advantage of this vulnerability, and if
+security is enabled the attacker would be limited by client level
+security constraints. The C cli shell is intended as a sample/example
+of how to use the C client interface, not as a production tool - the
+documentation has also been clarified on this point.
+
+Mitigation:
+It is important to use the fully featured/supported Java cli shell rather
+than the C cli shell independent of version.
+
+- ZooKeeper 3.4.x users should upgrade to 3.4.9 or apply this
+[patch](https://git-wip-us.apache.org/repos/asf?p=zookeeper.git;a=commitdiff;h=27ecf981a15554dc8e64a28630af7a5c9e2bdf4f)
+
+- ZooKeeper 3.5.x users should upgrade to 3.5.3 when released or apply
+this 
[patch](https://git-wip-us.apache.org/repos/asf?p=zookeeper.git;a=commitdiff;h=f09154d6648eeb4ec5e1ac8a2bacbd2f8c87c14a)
+
+The patch solves the problem reported here, but it does not make the
+client ready for production use. The community has no plan to make
+this client production ready at this time, and strongly recommends that
+users move to the Java cli and use the C cli for illustration purposes only.
+
+
+Credit:
+This issue was discovered by Lyon Yang (@l0Op3r)
+
+References:
+[Apache ZooKeeper Security Page](https://zookeeper.apache.org/security.html)
+

Reply via email to