!function(c){if(!c.hasInitialised){var a={escapeRegExp:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},hasClass:function(e,t){var o=" ";return 1===e.nodeType&&(o+e.className+o).replace(/[\n\t]/g,o).indexOf(o+t+o)>=0},addClass:function(e,t){e.className+=" "+t},removeClass:function(e,t){var o=new RegExp("\\b"+this.escapeRegExp(t)+"\\b");e.className=e.className.replace(o,"")},interpolateString:function(e,t){return e.replace(/{{([a-z][a-z0-9\-_]*)}}/gi,function(o){return t(arguments[1])||""})},getCookie:function(e){var t=("; "+document.cookie).split("; "+e+"=");return t.length<2?void 0:t.pop().split(";").shift()},setCookie:function(e,t,o,d,f,n){var r=new Date;r.setHours(r.getHours()+24*(o||365));var u=[e+"="+t,"expires="+r.toUTCString(),"path="+(f||"/")];d&&u.push("domain="+d),n&&u.push("secure"),document.cookie=u.join(";")},deepExtend:function(e,t){for(var o in t)t.hasOwnProperty(o)&&(o in e&&this.isPlainObject(e[o])&&this.isPlainObject(t[o])?this.deepExtend(e[o],t[o]):e[o]=t[o]);return e},throttle:function(e,t){var o=!1;return function(){o||(e.apply(this,arguments),o=!0,setTimeout(function(){o=!1},t))}},hash:function(e){var t,o,d=0;if(0===e.length)return d;for(t=0,o=e.length;t<o;++t)d=(d<<5)-d+e.charCodeAt(t),d|=0;return d},normaliseHex:function(e){return"#"==e[0]&&(e=e.substr(1)),3==e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e},getContrast:function(e){return e=this.normaliseHex(e),(299*parseInt(e.substr(0,2),16)+587*parseInt(e.substr(2,2),16)+114*parseInt(e.substr(4,2),16))/1e3>=128?"#000":"#fff"},getLuminance:function(e){var t=parseInt(this.normaliseHex(e),16),o=38+(t>>16),d=38+(t>>8&255),f=38+(255&t);return"#"+(16777216+65536*(o<255?o<1?0:o:255)+256*(d<255?d<1?0:d:255)+(f<255?f<1?0:f:255)).toString(16).slice(1)},isMobile:function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},isPlainObject:function(e){return"object"==typeof e&&null!==e&&e.constructor==Object},traverseDOMPath:function(e,t){return e&&e.parentNode?a.hasClass(e,t)?e:this.traverseDOMPath(e.parentNode,t):null}};c.status={deny:"deny",allow:"allow",dismiss:"dismiss"},c.transitionEnd=function(){var e=document.createElement("div"),t={t:"transitionend",OT:"oTransitionEnd",msT:"MSTransitionEnd",MozT:"transitionend",WebkitT:"webkitTransitionEnd"};for(var o in t)if(t.hasOwnProperty(o)&&void 0!==e.style[o+"ransition"])return t[o];return""}(),c.hasTransition=!!c.transitionEnd;var N=Object.keys(c.status).map(a.escapeRegExp);c.customStyles={},c.Popup=function(){var e={enabled:!0,container:null,cookie:{name:"cookieconsent_status",path:"/",domain:"",expiryDays:365,secure:!1},onPopupOpen:function(){},onPopupClose:function(){},onInitialise:function(i){},onStatusChange:function(i,s){},onRevokeChoice:function(){},onNoCookieLaw:function(i,s){},content:{header:"Cookies used on the website!",message:"This website uses cookies to ensure you get the best experience on our website.",dismiss:"Got it!",allow:"Allow cookies",deny:"Decline",link:"Learn more",href:"https://www.cookiesandyou.com",close:"&#x274c;",target:"_blank",policy:"Cookie Policy"},elements:{header:'<span class="cc-header">{{header}}</span>&nbsp;',message:'<span id="cookieconsent:desc" class="cc-message">{{message}}</span>',messagelink:'<span id="cookieconsent:desc" class="cc-message">{{message}} <a aria-label="learn more about cookies" role=button tabindex="0" class="cc-link" href="{{href}}" rel="noopener noreferrer nofollow" target="{{target}}">{{link}}</a></span>',dismiss:'<a aria-label="dismiss cookie message" role=button tabindex="0" class="cc-btn cc-dismiss">{{dismiss}}</a>',allow:'<a aria-label="allow cookies" role=button tabindex="0"  class="cc-btn cc-allow">{{allow}}</a>',deny:'<a aria-label="deny cookies" role=button tabindex="0" class="cc-btn cc-deny">{{deny}}</a>',link:'<a aria-label="learn more about cookies" role=button tabindex="0" class="cc-link" href="{{href}}" rel="noopener noreferrer nofollow" target="{{target}}">{{link}}</a>',close:'<span aria-label="dismiss cookie message" role=button tabindex="0" class="cc-close">{{close}}</span>'},window:'<div role="dialog" aria-live="polite" aria-label="cookieconsent" aria-describedby="cookieconsent:desc" class="cc-window {{classes}}">\x3c!--googleoff: all--\x3e{{children}}\x3c!--googleon: all--\x3e</div>',revokeBtn:'<div class="cc-revoke {{classes}}">{{policy}}</div>',compliance:{info:'<div class="cc-compliance">{{dismiss}}</div>',"opt-in":'<div class="cc-compliance cc-highlight">{{deny}}{{allow}}</div>',"opt-out":'<div class="cc-compliance cc-highlight">{{deny}}{{allow}}</div>'},type:"info",layouts:{basic:"{{messagelink}}{{compliance}}","basic-close":"{{messagelink}}{{compliance}}{{close}}","basic-header":"{{header}}{{message}}{{link}}{{compliance}}"},layout:"basic",position:"bottom",theme:"block",static:!1,palette:null,revokable:!1,animateRevokable:!0,showLink:!0,dismissOnScroll:!1,dismissOnTimeout:!1,dismissOnWindowClick:!1,ignoreClicksFrom:["cc-revoke","cc-btn"],autoOpen:!0,autoAttach:!0,whitelistPage:[],blacklistPage:[],overrideHTML:null};function t(){this.initialise.apply(this,arguments)}function o(i){this.openingTimeout=null,a.removeClass(i,"cc-invisible")}function d(i){i.style.display="none",i.removeEventListener(c.transitionEnd,this.afterTransition),this.afterTransition=null}function f(){var i=this.options.position.split("-"),s=[];return i.forEach(function(h){s.push("cc-"+h)}),s}function n(i){var s=this.options,h=document.createElement("div"),m=s.container&&1===s.container.nodeType?s.container:document.body;h.innerHTML=i;var l=h.children[0];return l.style.display="none",a.hasClass(l,"cc-window")&&c.hasTransition&&a.addClass(l,"cc-invisible"),this.onButtonClick=function(p){var v=a.traverseDOMPath(p.target,"cc-btn")||p.target;if(a.hasClass(v,"cc-btn")){var b=v.className.match(new RegExp("\\bcc-("+N.join("|")+")\\b")),k=b&&b[1]||!1;k&&(this.setStatus(k),this.close(!0))}a.hasClass(v,"cc-close")&&(this.setStatus(c.status.dismiss),this.close(!0)),a.hasClass(v,"cc-revoke")&&this.revokeChoice()}.bind(this),l.addEventListener("click",this.onButtonClick),s.autoAttach&&(m.firstChild?m.insertBefore(l,m.firstChild):m.appendChild(l)),l}function r(i){return"000000"==(i=a.normaliseHex(i))?"#222":a.getLuminance(i)}function u(i,s){for(var h=0,m=i.length;h<m;++h){var l=i[h];if(l instanceof RegExp&&l.test(s)||"string"==typeof l&&l.length&&l===s)return!0}return!1}return t.prototype.initialise=function(i){this.options&&this.destroy(),a.deepExtend(this.options={},e),a.isPlainObject(i)&&a.deepExtend(this.options,i),function(){var l=this.options.onInitialise.bind(this);if(!window.navigator.cookieEnabled)return l(c.status.deny),!0;if(window.CookiesOK||window.navigator.CookiesOK)return l(c.status.allow),!0;var p=Object.keys(c.status),v=this.getStatus(),b=p.indexOf(v)>=0;return b&&l(v),b}.call(this)&&(this.options.enabled=!1),u(this.options.blacklistPage,location.pathname)&&(this.options.enabled=!1),u(this.options.whitelistPage,location.pathname)&&(this.options.enabled=!0);var s=this.options.window.replace("{{classes}}",function(){var l=this.options,p="top"==l.position||"bottom"==l.position?"banner":"floating";a.isMobile()&&(p="floating");var v=["cc-"+p,"cc-type-"+l.type,"cc-theme-"+l.theme];return l.static&&v.push("cc-static"),v.push.apply(v,f.call(this)),function(b){var k=a.hash(JSON.stringify(b)),O="cc-color-override-"+k,x=a.isPlainObject(b);return this.customStyleSelector=x?O:null,x&&function(E,T,w){if(c.customStyles[E])++c.customStyles[E].references;else{var C={},y=T.popup,g=T.button,S=T.highlight;y&&(y.text=y.text?y.text:a.getContrast(y.background),y.link=y.link?y.link:y.text,C[w+".cc-window"]=["color: "+y.text,"background-color: "+y.background],C[w+".cc-revoke"]=["color: "+y.text,"background-color: "+y.background],C[w+" .cc-link,"+w+" .cc-link:active,"+w+" .cc-link:visited"]=["color: "+y.link],g&&(g.text=g.text?g.text:a.getContrast(g.background),g.border=g.border?g.border:"transparent",C[w+" .cc-btn"]=["color: "+g.text,"border-color: "+g.border,"background-color: "+g.background],g.padding&&C[w+" .cc-btn"].push("padding: "+g.padding),"transparent"!=g.background&&(C[w+" .cc-btn:hover, "+w+" .cc-btn:focus"]=["background-color: "+(g.hover||r(g.background))]),S?(S.text=S.text?S.text:a.getContrast(S.background),S.border=S.border?S.border:"transparent",C[w+" .cc-highlight .cc-btn:first-child"]=["color: "+S.text,"border-color: "+S.border,"background-color: "+S.background]):C[w+" .cc-highlight .cc-btn:first-child"]=["color: "+y.text]));var L=document.createElement("style");document.head.appendChild(L),c.customStyles[E]={references:1,element:L.sheet};var R=-1;for(var P in C)C.hasOwnProperty(P)&&L.sheet.insertRule(P+"{"+C[P].join(";")+"}",++R)}}(k,b,"."+O),x}.call(this,this.options.palette),this.customStyleSelector&&v.push(this.customStyleSelector),v}.call(this).join(" ")).replace("{{children}}",function(){var l={},p=this.options;p.showLink||(p.elements.link="",p.elements.messagelink=p.elements.message),Object.keys(p.elements).forEach(function(k){l[k]=a.interpolateString(p.elements[k],function(O){var x=p.content[O];return O&&"string"==typeof x&&x.length?x:""})});var v=p.compliance[p.type];v||(v=p.compliance.info),l.compliance=a.interpolateString(v,function(k){return l[k]});var b=p.layouts[p.layout];return b||(b=p.layouts.basic),a.interpolateString(b,function(k){return l[k]})}.call(this)),h=this.options.overrideHTML;if("string"==typeof h&&h.length&&(s=h),this.options.static){var m=n.call(this,'<div class="cc-grower">'+s+"</div>");m.style.display="",this.element=m.firstChild,this.element.style.display="none",a.addClass(this.element,"cc-invisible")}else this.element=n.call(this,s);(function(){var l=this.setStatus.bind(this),p=this.close.bind(this),v=this.options.dismissOnTimeout;"number"==typeof v&&v>=0&&(this.dismissTimeout=window.setTimeout(function(){l(c.status.dismiss),p(!0)},Math.floor(v)));var b=this.options.dismissOnScroll;if("number"==typeof b&&b>=0){var k=function(T){window.pageYOffset>Math.floor(b)&&(l(c.status.dismiss),p(!0),window.removeEventListener("scroll",k),this.onWindowScroll=null)};this.options.enabled&&(this.onWindowScroll=k,window.addEventListener("scroll",k))}var x=this.options.ignoreClicksFrom;if(this.options.dismissOnWindowClick){var E=function(T){for(var w=!1,C=T.path.length,y=x.length,g=0;g<C;g++)if(!w)for(var S=0;S<y;S++)w||(w=a.hasClass(T.path[g],x[S]));w||(l(c.status.dismiss),p(!0),window.removeEventListener("click",E),window.removeEventListener("touchend",E),this.onWindowClick=null)}.bind(this);this.options.enabled&&(this.onWindowClick=E,window.addEventListener("click",E),window.addEventListener("touchend",E))}}).call(this),function(){if("info"!=this.options.type&&(this.options.revokable=!0),a.isMobile()&&(this.options.animateRevokable=!1),this.options.revokable){var l=f.call(this);this.options.animateRevokable&&l.push("cc-animate"),this.customStyleSelector&&l.push(this.customStyleSelector);var p=this.options.revokeBtn.replace("{{classes}}",l.join(" ")).replace("{{policy}}",this.options.content.policy);this.revokeBtn=n.call(this,p);var v=this.revokeBtn;if(this.options.animateRevokable){var b=a.throttle(function(k){var O=!1,x=window.innerHeight-20;a.hasClass(v,"cc-top")&&k.clientY<20&&(O=!0),a.hasClass(v,"cc-bottom")&&k.clientY>x&&(O=!0),O?a.hasClass(v,"cc-active")||a.addClass(v,"cc-active"):a.hasClass(v,"cc-active")&&a.removeClass(v,"cc-active")},200);this.onMouseMove=b,window.addEventListener("mousemove",b)}}}.call(this),this.options.autoOpen&&this.autoOpen()},t.prototype.destroy=function(){this.onButtonClick&&this.element&&(this.element.removeEventListener("click",this.onButtonClick),this.onButtonClick=null),this.dismissTimeout&&(clearTimeout(this.dismissTimeout),this.dismissTimeout=null),this.onWindowScroll&&(window.removeEventListener("scroll",this.onWindowScroll),this.onWindowScroll=null),this.onWindowClick&&(window.removeEventListener("click",this.onWindowClick),this.onWindowClick=null),this.onMouseMove&&(window.removeEventListener("mousemove",this.onMouseMove),this.onMouseMove=null),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.revokeBtn&&this.revokeBtn.parentNode&&this.revokeBtn.parentNode.removeChild(this.revokeBtn),this.revokeBtn=null,function(i){if(a.isPlainObject(i)){var s=a.hash(JSON.stringify(i)),h=c.customStyles[s];if(h&&! --h.references){var m=h.element.ownerNode;m&&m.parentNode&&m.parentNode.removeChild(m),c.customStyles[s]=null}}}(this.options.palette),this.options=null},t.prototype.open=function(i){if(this.element)return this.isOpen()||(c.hasTransition?this.fadeIn():this.element.style.display="",this.options.revokable&&this.toggleRevokeButton(),this.options.onPopupOpen.call(this)),this},t.prototype.close=function(i){if(this.element)return this.isOpen()&&(c.hasTransition?this.fadeOut():this.element.style.display="none",i&&this.options.revokable&&this.toggleRevokeButton(!0),this.options.onPopupClose.call(this)),this},t.prototype.fadeIn=function(){var i=this.element;c.hasTransition&&i&&(this.afterTransition&&d.call(this,i),a.hasClass(i,"cc-invisible"))&&(i.style.display="",this.options.static&&(this.element.parentNode.style.maxHeight=this.element.clientHeight+"px"),this.openingTimeout=setTimeout(o.bind(this,i),20))},t.prototype.fadeOut=function(){var i=this.element;c.hasTransition&&i&&(this.openingTimeout&&(clearTimeout(this.openingTimeout),o.bind(this,i)),a.hasClass(i,"cc-invisible")||(this.options.static&&(this.element.parentNode.style.maxHeight=""),this.afterTransition=d.bind(this,i),i.addEventListener(c.transitionEnd,this.afterTransition),a.addClass(i,"cc-invisible")))},t.prototype.isOpen=function(){return this.element&&""==this.element.style.display&&(!c.hasTransition||!a.hasClass(this.element,"cc-invisible"))},t.prototype.toggleRevokeButton=function(i){this.revokeBtn&&(this.revokeBtn.style.display=i?"":"none")},t.prototype.revokeChoice=function(i){this.options.enabled=!0,this.clearStatus(),this.options.onRevokeChoice.call(this),i||this.autoOpen()},t.prototype.hasAnswered=function(i){return Object.keys(c.status).indexOf(this.getStatus())>=0},t.prototype.hasConsented=function(i){var s=this.getStatus();return s==c.status.allow||s==c.status.dismiss},t.prototype.autoOpen=function(i){!this.hasAnswered()&&this.options.enabled?this.open():this.hasAnswered()&&this.options.revokable&&this.toggleRevokeButton(!0)},t.prototype.setStatus=function(i){var s=this.options.cookie,h=a.getCookie(s.name),m=Object.keys(c.status).indexOf(h)>=0;Object.keys(c.status).indexOf(i)>=0?(a.setCookie(s.name,i,s.expiryDays,s.domain,s.path,s.secure),this.options.onStatusChange.call(this,i,m)):this.clearStatus()},t.prototype.getStatus=function(){return a.getCookie(this.options.cookie.name)},t.prototype.clearStatus=function(){var i=this.options.cookie;a.setCookie(i.name,"",-1,i.domain,i.path)},t}(),c.Location=function(){var e={timeout:5e3,services:["ipinfo"],serviceDefinitions:{ipinfo:function(){return{url:"//ipinfo.io",headers:["Accept: application/json"],callback:function(n,r){try{var u=JSON.parse(r);return u.error?f(u):{code:u.country}}catch(i){return f({error:"Invalid response ("+i+")"})}}}},ipinfodb:function(n){return{url:"//api.ipinfodb.com/v3/ip-country/?key={api_key}&format=json&callback={callback}",isScript:!0,callback:function(r,u){try{var i=JSON.parse(u);return"ERROR"==i.statusCode?f({error:i.statusMessage}):{code:i.countryCode}}catch(s){return f({error:"Invalid response ("+s+")"})}}}},maxmind:function(){return{url:"//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js",isScript:!0,callback:function(n){window.geoip2?geoip2.country(function(r){try{n({code:r.country.iso_code})}catch(u){n(f(u))}},function(r){n(f(r))}):n(new Error("Unexpected response format. The downloaded script should have exported `geoip2` to the global scope"))}}}}};function t(n){a.deepExtend(this.options={},e),a.isPlainObject(n)&&a.deepExtend(this.options,n),this.currentServiceIndex=-1}function o(n,r,u){var i,s=document.createElement("script");s.type="text/"+(n.type||"javascript"),s.src=n.src||n,s.async=!1,s.onreadystatechange=s.onload=function(){var h=s.readyState;clearTimeout(i),r.done||h&&!/loaded|complete/.test(h)||(r.done=!0,r(),s.onreadystatechange=s.onload=null)},document.body.appendChild(s),i=setTimeout(function(){r.done=!0,r(),s.onreadystatechange=s.onload=null},u)}function d(n,r,u,i,s){var h=new(window.XMLHttpRequest||window.ActiveXObject)("MSXML2.XMLHTTP.3.0");if(h.open(i?"POST":"GET",n,1),h.setRequestHeader("Content-type","application/x-www-form-urlencoded"),Array.isArray(s))for(var m=0,l=s.length;m<l;++m){var p=s[m].split(":",2);h.setRequestHeader(p[0].replace(/^\s+|\s+$/g,""),p[1].replace(/^\s+|\s+$/g,""))}"function"==typeof r&&(h.onreadystatechange=function(){h.readyState>3&&r(h)}),h.send(i)}function f(n){return new Error("Error ["+(n.code||"UNKNOWN")+"]: "+n.error)}return t.prototype.getNextService=function(){var n;do{n=this.getServiceByIdx(++this.currentServiceIndex)}while(this.currentServiceIndex<this.options.services.length&&!n);return n},t.prototype.getServiceByIdx=function(n){var r=this.options.services[n];if("function"==typeof r){var u=r();return u.name&&a.deepExtend(u,this.options.serviceDefinitions[u.name](u)),u}return"string"==typeof r?this.options.serviceDefinitions[r]():a.isPlainObject(r)?this.options.serviceDefinitions[r.name](r):null},t.prototype.locate=function(n,r){var u=this.getNextService();u?(this.callbackComplete=n,this.callbackError=r,this.runService(u,this.runNextServiceOnError.bind(this))):r(new Error("No services to run"))},t.prototype.setupUrl=function(n){var r=this.getCurrentServiceOpts();return n.url.replace(/\{(.*?)\}/g,function(u,i){if("callback"===i){var s="callback"+Date.now();return window[s]=function(h){n.__JSONP_DATA=JSON.stringify(h)},s}if(i in r.interpolateUrl)return r.interpolateUrl[i]})},t.prototype.runService=function(n,r){var u=this;n&&n.url&&n.callback&&(n.isScript?o:d)(this.setupUrl(n),function(i){var s=i?i.responseText:"";n.__JSONP_DATA&&(s=n.__JSONP_DATA,delete n.__JSONP_DATA),u.runServiceCallback.call(u,r,n,s)},this.options.timeout,n.data,n.headers)},t.prototype.runServiceCallback=function(n,r,u){var i=this,s=r.callback(function(h){s||i.onServiceResult.call(i,n,h)},u);s&&this.onServiceResult.call(this,n,s)},t.prototype.onServiceResult=function(n,r){r instanceof Error||r&&r.error?n.call(this,r,null):n.call(this,null,r)},t.prototype.runNextServiceOnError=function(n,r){if(n){this.logError(n);var u=this.getNextService();u?this.runService(u,this.runNextServiceOnError.bind(this)):this.completeService.call(this,this.callbackError,new Error("All services failed"))}else this.completeService.call(this,this.callbackComplete,r)},t.prototype.getCurrentServiceOpts=function(){var n=this.options.services[this.currentServiceIndex];return"string"==typeof n?{name:n}:"function"==typeof n?n():a.isPlainObject(n)?n:{}},t.prototype.completeService=function(n,r){this.currentServiceIndex=-1,n&&n(r)},t.prototype.logError=function(n){var r=this.currentServiceIndex,u=this.getServiceByIdx(r);console.warn("The service["+r+"] ("+u.url+") responded with the following error",n)},t}(),c.Law=function(){var e={regionalLaw:!0,hasLaw:["AT","BE","BG","HR","CZ","CY","DK","EE","FI","FR","DE","EL","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","SK","ES","SE","GB","UK","GR","EU"],revokable:["HR","CY","DK","EE","FR","DE","LV","LT","NL","PT","ES"],explicitAction:["HR","IT","ES"]};function t(o){this.initialise.apply(this,arguments)}return t.prototype.initialise=function(o){a.deepExtend(this.options={},e),a.isPlainObject(o)&&a.deepExtend(this.options,o)},t.prototype.get=function(o){var d=this.options;return{hasLaw:d.hasLaw.indexOf(o)>=0,revokable:d.revokable.indexOf(o)>=0,explicitAction:d.explicitAction.indexOf(o)>=0}},t.prototype.applyLaw=function(o,d){var f=this.get(d);return f.hasLaw||(o.enabled=!1,"function"==typeof o.onNoCookieLaw&&o.onNoCookieLaw(d,f)),this.options.regionalLaw&&(f.revokable&&(o.revokable=!0),f.explicitAction&&(o.dismissOnScroll=!1,o.dismissOnTimeout=!1)),o},t}(),c.initialise=function(e,t,o){var d=new c.Law(e.law);t||(t=function(){}),o||(o=function(){});var f=Object.keys(c.status),n=a.getCookie("cookieconsent_status");f.indexOf(n)>=0?t(new c.Popup(e)):c.getCountryCode(e,function(r){delete e.law,delete e.location,r.code&&(e=d.applyLaw(e,r.code)),t(new c.Popup(e))},function(r){delete e.law,delete e.location,o(r,new c.Popup(e))})},c.getCountryCode=function(e,t,o){e.law&&e.law.countryCode?t({code:e.law.countryCode}):e.location?new c.Location(e.location).locate(function(d){t(d||{})},o):t({})},c.utils=a,c.hasInitialised=!0,window.cookieconsent=c}}(window.cookieconsent||{});