CINXE.COM
Contributor guide | Drupal.org
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#"> <head profile="http://www.w3.org/1999/xhtml/vocab"><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://www.drupal.org/community/contributor-guide","20210329162432","https://web.archive.org/","web","/_static/", "1617035072"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta name="HandheldFriendly" content="true"/> <meta name="viewport" content="width=device-width"/> <meta name="MobileOptimized" content="width"/> <!--[if IE]><![endif]--> <link rel="dns-prefetch" href="//web.archive.org/web/20210329162432/https://fonts.gstatic.com/"/> <link rel="preconnect" href="//web.archive.org/web/20210329162432/https://fonts.gstatic.com/" crossorigin=""/> <link rel="dns-prefetch" href="//web.archive.org/web/20210329162432/https://fonts.googleapis.com/"/> <link rel="preconnect" href="//web.archive.org/web/20210329162432/https://fonts.googleapis.com/"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><script type="text/javascript">(window.NREUM||(NREUM={})).loader_config={xpid:"XAcEV19XGwcCUldTDwg=",licenseKey:"e671e25255",applicationID:"4266189"};window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var i=e[n]={exports:{}};t[n][0].call(i.exports,function(e){var i=t[n][1][e];return r(i||e)},i,i.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var i=0;i<n.length;i++)r(n[i]);return r}({1:[function(t,e,n){function r(t){try{c.console&&console.log(t)}catch(e){}}var i,o=t("ee"),a=t(24),c={};try{i=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(c.console=!0,i.indexOf("dev")!==-1&&(c.dev=!0),i.indexOf("nr_dev")!==-1&&(c.nrDev=!0))}catch(s){}c.nrDev&&o.on("internal-error",function(t){r(t.stack)}),c.dev&&o.on("fn-err",function(t,e,n){r(n.stack)}),c.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(c,function(t,e){return t}).join(", ")))},{}],2:[function(t,e,n){function r(t,e,n,r,c){try{p?p-=1:i(c||new UncaughtException(t,e,n),!0)}catch(f){try{o("ierr",[f,s.now(),!0])}catch(d){}}return"function"==typeof u&&u.apply(this,a(arguments))}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional information",this.sourceURL=e,this.line=n}function i(t,e){var n=e?null:s.now();o("err",[t,n])}var o=t("handle"),a=t(25),c=t("ee"),s=t("loader"),f=t("gos"),u=window.onerror,d=!1,l="nr@seenError",p=0;s.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(h){"stack"in h&&(t(9),t(8),"addEventListener"in window&&t(5),s.xhrWrappable&&t(10),d=!0)}c.on("fn-start",function(t,e,n){d&&(p+=1)}),c.on("fn-err",function(t,e,n){d&&!n[l]&&(f(n,l,function(){return!0}),this.thrown=!0,i(n))}),c.on("fn-end",function(){d&&!this.thrown&&p>0&&(p-=1)}),c.on("internal-error",function(t){o("ierr",[t,s.now(),!0])})},{}],3:[function(t,e,n){t("loader").features.ins=!0},{}],4:[function(t,e,n){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var i=t("ee"),o=t("handle"),a=t(9),c=t(8),s="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",g="pushState",y=t("loader");y.features.stn=!0,t(7),"addEventListener"in window&&t(5);var x=NREUM.o.EV;i.on(m,function(t,e){var n=t[0];n instanceof x&&(this.bstStart=y.now())}),i.on(w,function(t,e){var n=t[0];n instanceof x&&o("bst",[n,e,this.bstStart,y.now()])}),a.on(m,function(t,e,n){this.bstStart=y.now(),this.bstType=n}),a.on(w,function(t,e){o(v,[e,this.bstStart,y.now(),this.bstType])}),c.on(m,function(){this.bstStart=y.now()}),c.on(w,function(t,e){o(v,[e,this.bstStart,y.now(),"requestAnimationFrame"])}),i.on(g+p,function(t){this.time=y.now(),this.startPath=location.pathname+location.hash}),i.on(g+h,function(t){o("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+s]?window.performance[f](u,function(t){o(d,[window.performance.getEntriesByType(l)]),window.performance["c"+s]()},!1):window.performance[f]("webkit"+u,function(t){o(d,[window.performance.getEntriesByType(l)]),window.performance["webkitC"+s]()},!1)),document[f]("scroll",r,{passive:!0}),document[f]("keypress",r,!1),document[f]("click",r,!1)}},{}],5:[function(t,e,n){function r(t){for(var e=t;e&&!e.hasOwnProperty(u);)e=Object.getPrototypeOf(e);e&&i(e)}function i(t){c.inPlace(t,[u,d],"-",o)}function o(t,e){return t[1]}var a=t("ee").get("events"),c=t("wrap-function")(a,!0),s=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";e.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(i(window),i(f.prototype)),a.on(u+"-start",function(t,e){var n=t[1],r=s(n,"nr@wrapped",function(){function t(){if("function"==typeof n.handleEvent)return n.handleEvent.apply(n,arguments)}var e={object:t,"function":n}[typeof n];return e?c(e,"fn-",null,e.name||"anonymous"):n});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,e,n){function r(t,e,n){var r=t[e];"function"==typeof r&&(t[e]=function(){var t=o(arguments),e={};i.emit(n+"before-start",[t],e);var a;e[m]&&e[m].dt&&(a=e[m].dt);var c=r.apply(this,t);return i.emit(n+"start",[t,a],c),c.then(function(t){return i.emit(n+"end",[null,t],c),t},function(t){throw i.emit(n+"end",[t],c),t})})}var i=t("ee").get("fetch"),o=t(25),a=t(24);e.exports=i;var c=window,s="fetch-",f=s+"body-",u=["arrayBuffer","blob","json","text","formData"],d=c.Request,l=c.Response,p=c.fetch,h="prototype",m="nr@context";d&&l&&p&&(a(u,function(t,e){r(d[h],e,f),r(l[h],e,f)}),r(c,"fetch",s),i.on(s+"end",function(t,e){var n=this;if(e){var r=e.headers.get("content-length");null!==r&&(n.rxSize=r),i.emit(s+"done",[null,e],n)}else i.emit(s+"done",[t],n)}))},{}],7:[function(t,e,n){var r=t("ee").get("history"),i=t("wrap-function")(r);e.exports=r;var o=window.history&&window.history.constructor&&window.history.constructor.prototype,a=window.history;o&&o.pushState&&o.replaceState&&(a=o),i.inPlace(a,["pushState","replaceState"],"-")},{}],8:[function(t,e,n){var r=t("ee").get("raf"),i=t("wrap-function")(r),o="equestAnimationFrame";e.exports=r,i.inPlace(window,["r"+o,"mozR"+o,"webkitR"+o,"msR"+o],"raf-"),r.on("raf-start",function(t){t[0]=i(t[0],"fn-")})},{}],9:[function(t,e,n){function r(t,e,n){t[0]=a(t[0],"fn-",null,n)}function i(t,e,n){this.method=n,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,n)}var o=t("ee").get("timer"),a=t("wrap-function")(o),c="setTimeout",s="setInterval",f="clearTimeout",u="-start",d="-";e.exports=o,a.inPlace(window,[c,"setImmediate"],c+d),a.inPlace(window,[s],s+d),a.inPlace(window,[f,"clearImmediate"],f+d),o.on(s+u,r),o.on(c+u,i)},{}],10:[function(t,e,n){function r(t,e){d.inPlace(e,["onreadystatechange"],"fn-",c)}function i(){var t=this,e=u.context(t);t.readyState>3&&!e.resolved&&(e.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,g,"fn-",c)}function o(t){y.push(t),h&&(b?b.then(a):w?w(a):(E=-E,R.data=E))}function a(){for(var t=0;t<y.length;t++)r([],y[t]);y.length&&(y=[])}function c(t,e){return e}function s(t,e){for(var n in t)e[n]=t[n];return e}t(5);var f=t("ee"),u=f.get("xhr"),d=t("wrap-function")(u),l=NREUM.o,p=l.XHR,h=l.MO,m=l.PR,w=l.SI,v="readystatechange",g=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],y=[];e.exports=u;var x=window.XMLHttpRequest=function(t){var e=new p(t);try{u.emit("new-xhr",[e],e),e.addEventListener(v,i,!1)}catch(n){try{u.emit("internal-error",[n])}catch(r){}}return e};if(s(p,x),x.prototype=p.prototype,d.inPlace(x.prototype,["open","send"],"-xhr-",c),u.on("send-xhr-start",function(t,e){r(t,e),o(e)}),u.on("open-xhr-start",r),h){var b=m&&m.resolve();if(!w&&!m){var E=1,R=document.createTextNode(E);new h(a).observe(R,{characterData:!0})}}else f.on("fn-end",function(t){t[0]&&t[0].type===v||a()})},{}],11:[function(t,e,n){function r(t){if(!c(t))return null;var e=window.NREUM;if(!e.loader_config)return null;var n=(e.loader_config.accountID||"").toString()||null,r=(e.loader_config.agentID||"").toString()||null,f=(e.loader_config.trustKey||"").toString()||null;if(!n||!r)return null;var h=p.generateSpanId(),m=p.generateTraceId(),w=Date.now(),v={spanId:h,traceId:m,timestamp:w};return(t.sameOrigin||s(t)&&l())&&(v.traceContextParentHeader=i(h,m),v.traceContextStateHeader=o(h,w,n,r,f)),(t.sameOrigin&&!u()||!t.sameOrigin&&s(t)&&d())&&(v.newrelicHeader=a(h,m,w,n,r,f)),v}function i(t,e){return"00-"+e+"-"+t+"-01"}function o(t,e,n,r,i){var o=0,a="",c=1,s="",f="";return i+"@nr="+o+"-"+c+"-"+n+"-"+r+"-"+t+"-"+a+"-"+s+"-"+f+"-"+e}function a(t,e,n,r,i,o){var a="btoa"in window&&"function"==typeof window.btoa;if(!a)return null;var c={v:[0,1],d:{ty:"Browser",ac:r,ap:i,id:t,tr:e,ti:n}};return o&&r!==o&&(c.d.tk=o),btoa(JSON.stringify(c))}function c(t){return f()&&s(t)}function s(t){var e=!1,n={};if("init"in NREUM&&"distributed_tracing"in NREUM.init&&(n=NREUM.init.distributed_tracing),t.sameOrigin)e=!0;else if(n.allowed_origins instanceof Array)for(var r=0;r<n.allowed_origins.length;r++){var i=h(n.allowed_origins[r]);if(t.hostname===i.hostname&&t.protocol===i.protocol&&t.port===i.port){e=!0;break}}return e}function f(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.enabled}function u(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.exclude_newrelic_header}function d(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&NREUM.init.distributed_tracing.cors_use_newrelic_header!==!1}function l(){return"init"in NREUM&&"distributed_tracing"in NREUM.init&&!!NREUM.init.distributed_tracing.cors_use_tracecontext_headers}var p=t(21),h=t(13);e.exports={generateTracePayload:r,shouldGenerateTrace:c}},{}],12:[function(t,e,n){function r(t){var e=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<l;r++)t.removeEventListener(d[r],this.listener,!1);e.aborted||(n.duration=a.now()-this.startTime,this.loadCaptureCalled||4!==t.readyState?null==e.status&&(e.status=0):o(this,t),n.cbTime=this.cbTime,u.emit("xhr-done",[t],t),c("xhr",[e,n,this.startTime]))}}function i(t,e){var n=s(e),r=t.params;r.host=n.hostname+":"+n.port,r.pathname=n.pathname,t.parsedOrigin=s(e),t.sameOrigin=t.parsedOrigin.sameOrigin}function o(t,e){t.params.status=e.status;var n=w(e,t.lastSize);if(n&&(t.metrics.rxSize=n),t.sameOrigin){var r=e.getResponseHeader("X-NewRelic-App-Data");r&&(t.params.cat=r.split(", ").pop())}t.loadCaptureCalled=!0}var a=t("loader");if(a.xhrWrappable){var c=t("handle"),s=t(13),f=t(11).generateTracePayload,u=t("ee"),d=["load","error","abort","timeout"],l=d.length,p=t("id"),h=t(17),m=t(16),w=t(14),v=window.XMLHttpRequest;a.features.xhr=!0,t(10),t(6),u.on("new-xhr",function(t){var e=this;e.totalCbs=0,e.called=0,e.cbTime=0,e.end=r,e.ended=!1,e.xhrGuids={},e.lastSize=null,e.loadCaptureCalled=!1,t.addEventListener("load",function(n){o(e,t)},!1),h&&(h>34||h<10)||window.opera||t.addEventListener("progress",function(t){e.lastSize=t.loaded},!1)}),u.on("open-xhr-start",function(t){this.params={method:t[0]},i(this,t[1]),this.metrics={}}),u.on("open-xhr-end",function(t,e){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&e.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid);var n=f(this.parsedOrigin);if(n){var r=!1;n.newrelicHeader&&(e.setRequestHeader("newrelic",n.newrelicHeader),r=!0),n.traceContextParentHeader&&(e.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&e.setRequestHeader("tracestate",n.traceContextStateHeader),r=!0),r&&(this.dt=n)}}),u.on("send-xhr-start",function(t,e){var n=this.metrics,r=t[0],i=this;if(n&&r){var o=m(r);o&&(n.txSize=o)}this.startTime=a.now(),this.listener=function(t){try{"abort"!==t.type||i.loadCaptureCalled||(i.params.aborted=!0),("load"!==t.type||i.called===i.totalCbs&&(i.onloadCalled||"function"!=typeof e.onload))&&i.end(e)}catch(n){try{u.emit("internal-error",[n])}catch(r){}}};for(var c=0;c<l;c++)e.addEventListener(d[c],this.listener,!1)}),u.on("xhr-cb-time",function(t,e,n){this.cbTime+=t,e?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof n.onload||this.end(n)}),u.on("xhr-load-added",function(t,e){var n=""+p(t)+!!e;this.xhrGuids&&!this.xhrGuids[n]&&(this.xhrGuids[n]=!0,this.totalCbs+=1)}),u.on("xhr-load-removed",function(t,e){var n=""+p(t)+!!e;this.xhrGuids&&this.xhrGuids[n]&&(delete this.xhrGuids[n],this.totalCbs-=1)}),u.on("addEventListener-end",function(t,e){e instanceof v&&"load"===t[0]&&u.emit("xhr-load-added",[t[1],t[2]],e)}),u.on("removeEventListener-end",function(t,e){e instanceof v&&"load"===t[0]&&u.emit("xhr-load-removed",[t[1],t[2]],e)}),u.on("fn-start",function(t,e,n){e instanceof v&&("onload"===n&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=a.now()))}),u.on("fn-end",function(t,e){this.xhrCbStart&&u.emit("xhr-cb-time",[a.now()-this.xhrCbStart,this.onload,e],e)}),u.on("fetch-before-start",function(t){function e(t,e){var n=!1;return e.newrelicHeader&&(t.set("newrelic",e.newrelicHeader),n=!0),e.traceContextParentHeader&&(t.set("traceparent",e.traceContextParentHeader),e.traceContextStateHeader&&t.set("tracestate",e.traceContextStateHeader),n=!0),n}var n,r=t[1]||{};"string"==typeof t[0]?n=t[0]:t[0]&&t[0].url?n=t[0].url:window.URL&&t[0]&&t[0]instanceof URL&&(n=t[0].href),n&&(this.parsedOrigin=s(n),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=f(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if("string"==typeof t[0]||window.URL&&t[0]&&t[0]instanceof URL){var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),e(o.headers,i)&&(this.dt=i),t.length>1?t[1]=o:t.push(o)}else t[0]&&t[0].headers&&e(t[0].headers,i)&&(this.dt=i)})}},{}],13:[function(t,e,n){var r={};e.exports=function(t){if(t in r)return r[t];var e=document.createElement("a"),n=window.location,i={};e.href=t,i.port=e.port;var o=e.href.split("://");!i.port&&o[1]&&(i.port=o[1].split("/")[0].split("@").pop().split(":")[1]),i.port&&"0"!==i.port||(i.port="https"===o[0]?"443":"80"),i.hostname=e.hostname||n.hostname,i.pathname=e.pathname,i.protocol=o[0],"/"!==i.pathname.charAt(0)&&(i.pathname="/"+i.pathname);var a=!e.protocol||":"===e.protocol||e.protocol===n.protocol,c=e.hostname===document.domain&&e.port===n.port;return i.sameOrigin=a&&(!e.hostname||c),"/"===i.pathname&&(r[t]=i),i}},{}],14:[function(t,e,n){function r(t,e){var n=t.responseType;return"json"===n&&null!==e?e:"arraybuffer"===n||"blob"===n||"json"===n?i(t.response):"text"===n||""===n||void 0===n?i(t.responseText):void 0}var i=t(16);e.exports=r},{}],15:[function(t,e,n){function r(){}function i(t,e,n){return function(){return o(t,[f.now()].concat(c(arguments)),e?null:this,n),e?void 0:this}}var o=t("handle"),a=t(24),c=t(25),s=t("ee").get("tracer"),f=t("loader"),u=NREUM;"undefined"==typeof window.newrelic&&(newrelic=u);var d=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(d,function(t,e){u[e]=i(l+e,!0,"api")}),u.addPageAction=i(l+"addPageAction",!0),u.setCurrentRouteName=i(l+"routeName",!0),e.exports=newrelic,u.interaction=function(){return(new r).get()};var h=r.prototype={createTracer:function(t,e){var n={},r=this,i="function"==typeof e;return o(p+"tracer",[f.now(),t,n],r),function(){if(s.emit((i?"":"no-")+"fn-start",[f.now(),r,i],n),i)try{return e.apply(this,arguments)}catch(t){throw s.emit("fn-err",[arguments,this,t],n),t}finally{s.emit("fn-end",[f.now()],n)}}}};a("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,e){h[e]=i(p+e)}),newrelic.noticeError=function(t,e){"string"==typeof t&&(t=new Error(t)),o("err",[t,f.now(),!1,e])}},{}],16:[function(t,e,n){e.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(e){return}}}},{}],17:[function(t,e,n){var r=0,i=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);i&&(r=+i[1]),e.exports=r},{}],18:[function(t,e,n){function r(){return c.exists&&performance.now?Math.round(performance.now()):(o=Math.max((new Date).getTime(),o))-a}function i(){return o}var o=(new Date).getTime(),a=o,c=t(26);e.exports=r,e.exports.offset=a,e.exports.getLastTimestamp=i},{}],19:[function(t,e,n){function r(t){return!(!t||!t.protocol||"file:"===t.protocol)}e.exports=r},{}],20:[function(t,e,n){function r(t,e){var n=t.getEntries();n.forEach(function(t){"first-paint"===t.name?d("timing",["fp",Math.floor(t.startTime)]):"first-contentful-paint"===t.name&&d("timing",["fcp",Math.floor(t.startTime)])})}function i(t,e){var n=t.getEntries();n.length>0&&d("lcp",[n[n.length-1]])}function o(t){t.getEntries().forEach(function(t){t.hadRecentInput||d("cls",[t])})}function a(t){if(t instanceof h&&!w){var e=Math.round(t.timeStamp),n={type:t.type};e<=l.now()?n.fid=l.now()-e:e>l.offset&&e<=Date.now()?(e-=l.offset,n.fid=l.now()-e):e=l.now(),w=!0,d("timing",["fi",e,n])}}function c(t){d("pageHide",[l.now(),t])}if(!("init"in NREUM&&"page_view_timing"in NREUM.init&&"enabled"in NREUM.init.page_view_timing&&NREUM.init.page_view_timing.enabled===!1)){var s,f,u,d=t("handle"),l=t("loader"),p=t(23),h=NREUM.o.EV;if("PerformanceObserver"in window&&"function"==typeof window.PerformanceObserver){s=new PerformanceObserver(r);try{s.observe({entryTypes:["paint"]})}catch(m){}f=new PerformanceObserver(i);try{f.observe({entryTypes:["largest-contentful-paint"]})}catch(m){}u=new PerformanceObserver(o);try{u.observe({type:"layout-shift",buffered:!0})}catch(m){}}if("addEventListener"in document){var w=!1,v=["click","keydown","mousedown","pointerdown","touchstart"];v.forEach(function(t){document.addEventListener(t,a,!1)})}p(c)}},{}],21:[function(t,e,n){function r(){function t(){return e?15&e[n++]:16*Math.random()|0}var e=null,n=0,r=window.crypto||window.msCrypto;r&&r.getRandomValues&&(e=r.getRandomValues(new Uint8Array(31)));for(var i,o="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",a="",c=0;c<o.length;c++)i=o[c],"x"===i?a+=t().toString(16):"y"===i?(i=3&t()|8,a+=i.toString(16)):a+=i;return a}function i(){return a(16)}function o(){return a(32)}function a(t){function e(){return n?15&n[r++]:16*Math.random()|0}var n=null,r=0,i=window.crypto||window.msCrypto;i&&i.getRandomValues&&Uint8Array&&(n=i.getRandomValues(new Uint8Array(31)));for(var o=[],a=0;a<t;a++)o.push(e().toString(16));return o.join("")}e.exports={generateUuid:r,generateSpanId:i,generateTraceId:o}},{}],22:[function(t,e,n){function r(t,e){if(!i)return!1;if(t!==i)return!1;if(!e)return!0;if(!o)return!1;for(var n=o.split("."),r=e.split("."),a=0;a<r.length;a++)if(r[a]!==n[a])return!1;return!0}var i=null,o=null,a=/Version\/(\S+)\s+Safari/;if(navigator.userAgent){var c=navigator.userAgent,s=c.match(a);s&&c.indexOf("Chrome")===-1&&c.indexOf("Chromium")===-1&&(i="Safari",o=s[1])}e.exports={agent:i,version:o,match:r}},{}],23:[function(t,e,n){function r(t){function e(){t(a&&document[a]?document[a]:document[i]?"hidden":"visible")}"addEventListener"in document&&o&&document.addEventListener(o,e,!1)}e.exports=r;var i,o,a;"undefined"!=typeof document.hidden?(i="hidden",o="visibilitychange",a="visibilityState"):"undefined"!=typeof document.msHidden?(i="msHidden",o="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(i="webkitHidden",o="webkitvisibilitychange",a="webkitVisibilityState")},{}],24:[function(t,e,n){function r(t,e){var n=[],r="",o=0;for(r in t)i.call(t,r)&&(n[o]=e(r,t[r]),o+=1);return n}var i=Object.prototype.hasOwnProperty;e.exports=r},{}],25:[function(t,e,n){function r(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,i=n-e||0,o=Array(i<0?0:i);++r<i;)o[r]=t[e+r];return o}e.exports=r},{}],26:[function(t,e,n){e.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],ee:[function(t,e,n){function r(){}function i(t){function e(t){return t&&t instanceof r?t:t?f(t,s,a):a()}function n(n,r,i,o,a){if(a!==!1&&(a=!0),!p.aborted||o){t&&a&&t(n,r,i);for(var c=e(i),s=m(n),f=s.length,u=0;u<f;u++)s[u].apply(c,r);var l=d[y[n]];return l&&l.push([x,n,r,c]),c}}function o(t,e){g[t]=m(t).concat(e)}function h(t,e){var n=g[t];if(n)for(var r=0;r<n.length;r++)n[r]===e&&n.splice(r,1)}function m(t){return g[t]||[]}function w(t){return l[t]=l[t]||i(n)}function v(t,e){u(t,function(t,n){e=e||"feature",y[n]=e,e in d||(d[e]=[])})}var g={},y={},x={on:o,addEventListener:o,removeEventListener:h,emit:n,get:w,listeners:m,context:e,buffer:v,abort:c,aborted:!1};return x}function o(t){return f(t,s,a)}function a(){return new r}function c(){(d.api||d.feature)&&(p.aborted=!0,d=p.backlog={})}var s="nr@context",f=t("gos"),u=t(24),d={},l={},p=e.exports=i();e.exports.getOrSetContext=o,p.backlog=d},{}],gos:[function(t,e,n){function r(t,e,n){if(i.call(t,e))return t[e];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!1}),r}catch(o){}return t[e]=r,r}var i=Object.prototype.hasOwnProperty;e.exports=r},{}],handle:[function(t,e,n){function r(t,e,n,r){i.buffer([t],r),i.emit(t,e,n)}var i=t("ee").get("handle");e.exports=r,r.ee=i},{}],id:[function(t,e,n){function r(t){var e=typeof t;return!t||"object"!==e&&"function"!==e?-1:t===window?0:a(t,o,function(){return i++})}var i=1,o="nr@id",a=t("gos");e.exports=r},{}],loader:[function(t,e,n){function r(){if(!E++){var t=b.info=NREUM.info,e=p.getElementsByTagName("script")[0];if(setTimeout(f.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&e))return f.abort();s(y,function(e,n){t[e]||(t[e]=n)});var n=a();c("mark",["onload",n+b.offset],null,"api"),c("timing",["load",n]);var r=p.createElement("script");r.src="https://"+t.agent,e.parentNode.insertBefore(r,e)}}function i(){"complete"===p.readyState&&o()}function o(){c("mark",["domContent",a()+b.offset],null,"api")}var a=t(18),c=t("handle"),s=t(24),f=t("ee"),u=t(22),d=t(19),l=window,p=l.document,h="addEventListener",m="attachEvent",w=l.XMLHttpRequest,v=w&&w.prototype;if(d(l.location)){NREUM.o={ST:setTimeout,SI:l.setImmediate,CT:clearTimeout,XHR:w,REQ:l.Request,EV:l.Event,PR:l.Promise,MO:l.MutationObserver};var g=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1208.min.js"},x=w&&v&&v[h]&&!/CriOS/.test(navigator.userAgent),b=e.exports={offset:a.getLastTimestamp(),now:a,origin:g,features:{},xhrWrappable:x,userAgent:u};t(15),t(20),p[h]?(p[h]("DOMContentLoaded",o,!1),l[h]("load",r,!1)):(p[m]("onreadystatechange",i),l[m]("onload",r)),c("mark",["firstbyte",a.getLastTimestamp()],null,"api");var E=0}},{}],"wrap-function":[function(t,e,n){function r(t,e){function n(e,n,r,s,f){function nrWrapper(){var o,a,u,l;try{a=this,o=d(arguments),u="function"==typeof r?r(o,a):r||{}}catch(p){i([p,"",[o,a,s],u],t)}c(n+"start",[o,a,s],u,f);try{return l=e.apply(a,o)}catch(h){throw c(n+"err",[o,a,h],u,f),h}finally{c(n+"end",[o,a,l],u,f)}}return a(e)?e:(n||(n=""),nrWrapper[l]=e,o(e,nrWrapper,t),nrWrapper)}function r(t,e,r,i,o){r||(r="");var c,s,f,u="-"===r.charAt(0);for(f=0;f<e.length;f++)s=e[f],c=t[s],a(c)||(t[s]=n(c,u?s+r:r,i,s,o))}function c(n,r,o,a){if(!h||e){var c=h;h=!0;try{t.emit(n,r,o,e,a)}catch(s){i([s,n,r,o],t)}h=c}}return t||(t=u),n.inPlace=r,n.flag=l,n}function i(t,e){e||(e=u);try{e.emit("internal-error",t)}catch(n){}}function o(t,e,n){if(Object.defineProperty&&Object.keys)try{var r=Object.keys(t);return r.forEach(function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){return t[n]=e,e}})}),e}catch(o){i([o],n)}for(var a in t)p.call(t,a)&&(e[a]=t[a]);return e}function a(t){return!(t&&t instanceof Function&&t.apply&&!t[l])}function c(t,e){var n=e(t);return n[l]=t,o(t,n,u),n}function s(t,e,n){var r=t[e];t[e]=c(r,n)}function f(){for(var t=arguments.length,e=new Array(t),n=0;n<t;++n)e[n]=arguments[n];return e}var u=t("ee"),d=t(25),l="nr@original",p=Object.prototype.hasOwnProperty,h=!1;e.exports=r,e.exports.wrapFunction=c,e.exports.wrapInPlace=s,e.exports.argsToArray=f},{}]},{},["loader",2,12,4,3]);</script> <meta name="description" content="Welcome to the Drupal community's Contributor Guide! In this section of the Drupal.org web site, you will find information to help you figure out how you can bring your unique skills and perspectives and join with others in the Drupal community to improve the Drupal software, translations, documentation, and the community itself. Whether you are new to contributing to the"/> <meta name="generator" content="Drupal 7 (https://www.drupal.org)"/> <link rel="image_src" href="https://web.archive.org/web/20210329162432im_/https://www.drupal.org/sites/all/themes/bluecheese/images/og.jpg"/> <link rel="canonical" href="https://web.archive.org/web/20210329162432/https://www.drupal.org/community/contributor-guide"/> <link rel="shortlink" href="https://web.archive.org/web/20210329162432/https://www.drupal.org/node/3109633"/> <meta property="og:site_name" content="Drupal.org"/> <meta property="og:type" content="article"/> <meta property="og:url" content="https://web.archive.org/web/20210329162432/https://www.drupal.org/community/contributor-guide"/> <meta property="og:title" content="Contributor guide"/> <meta property="og:description" content="Welcome to the Drupal community's Contributor Guide! In this section of the Drupal.org web site, you will find information to help you figure out how you can bring your unique skills and perspectives and join with others in the Drupal community to improve the Drupal software, translations, documentation, and the community itself. Whether you are new to contributing to the Drupal project and community, or are an experienced contributor looking for a new task or role, you can use the following entry points to explore the many possible ways you can contribute."/> <meta property="og:updated_time" content="2021-03-02T15:21:49+00:00"/> <meta property="article:published_time" content="2020-01-28T20:10:42+00:00"/> <meta property="article:modified_time" content="2021-03-02T15:21:49+00:00"/> <title>Contributor guide | Drupal.org</title> <link type="text/css" rel="stylesheet" href="/web/20210329162432cs_/https://www.drupal.org/files/advagg_css/css__FN2RTiB3W78YZgXvD7kGMoWo3ufXBV345Z1UG8yvZFE__XMJmLtgfFjPsRFf-TTMt1ejFpXBEo_Fip05xPtaPoAE__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all"/> <link type="text/css" rel="stylesheet" href="/web/20210329162432cs_/https://www.drupal.org/files/advagg_css/css__eFKSCujfWyJYO8J-qSi6T_n29lROS8isvrxzANeHaAY__D_EUHDAfEQdxcLiSDY7hREUWkG1Ge56_h2z3Er8V188__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all"/> <link type="text/css" rel="stylesheet" href="/web/20210329162432cs_/https://www.drupal.org/files/advagg_css/css__mXUsFOkFX1Vp3cPaBtPrMNLiyy4rOzIAVz7DppnovsY__4a32sD5wTTMzrJf7XqA8yck7wVaHdAmb-RLMBilVXyY__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all"/> <link type="text/css" rel="stylesheet" href="/web/20210329162432cs_/https://www.drupal.org/files/advagg_css/css__WF0PRotZAhCcl0aJjY5W2LYj8UwiYuB2dZEFluOh3Tc__FviX13FUB-Ppa2XB29BUIJQZ1Wg-F5XiDE7XD5y7mjQ__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all"/> <link type="text/css" rel="stylesheet" href="/web/20210329162432cs_/https://www.drupal.org/files/advagg_css/css__Fx0_w1L9q3nwzXnALG7UfjLF34FGYgJTz636-GWbM6k__0jWLTEHP3h5U5RcXuZcFhf0DdvRdzP3_wzCVNT015Ls__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all"/> <link type="text/css" rel="stylesheet" href="/web/20210329162432cs_/https://www.drupal.org/files/advagg_css/css__QPp1snPjYt_xYr0c_V0IORcEElkIUBBBrvOB4ZE0Gnw__wevVjpUq6YCb_MCFQ5ohBt9dsxN0plHiTfeH9zwJFhc__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all"/> </head> <body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-3109633 node-type-section drupalorg-site-main panels-layout new-style og-context og-context-node og-context-node-3109633"> <div id="skip-link" tabindex="-1"> <a class="element-invisible element-focusable" href="#content">Skip to main content</a> <a class="element-invisible element-focusable skip-link-search" href="#search-block-form">Skip to search</a> </div> <div class="region region-page-top"> <noscript aria-hidden="true"><iframe src="https://web.archive.org/web/20210329162432if_/https://www.googletagmanager.com/ns.html?id=GTM-W36H8DW" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> </div> <div id="nav-header"> <div class="menu-nav"> <a class="nav-btn" id="nav-open-btn" href="#block-system-main-menu"><img src="/web/20210329162432im_/https://www.drupal.org/sites/all/themes/bluecheese/images/icon-w-menu.svg" alt="Main menu"></a> </div> <nav id="navigation-inner" class="container-12" role="navigation"> <div class="region region-navigation"> <div id="block-system-main-menu" class="block block-system block-menu"> <div class="block-inner"> <div class="content"> <div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/home" title="Drupal.org home page">Drupal.org home</a></li> <li class="expanded"><a href="/web/20210329162432/https://www.drupal.org/about" title="">Why Drupal?</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/developers" title="">For developers</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/marketers" title="Why marketers should choose Drupal for their ambitious digital experiences">For marketers</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/agencies" title="Learn why agencies are betting their future on Drupal">For agencies</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/case-studies" title="View case studies to see how your peers have built success on Drupal">Case studies</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/about" title="Learn about Drupal">About Drupal</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/about/9" title="Prepare for Drupal 9">Drupal 9</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/about/in-the-news" title="">In the news</a></li> </ul></div></li> <li class="expanded"><a href="/web/20210329162432/https://www.drupal.org/download" title="Build your solution on Drupal">Build</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/download" title="Download and Extend Drupal">Download & Extend</a></li> <li class="leaf"><a href="https://web.archive.org/web/20210329162432/https://git.drupalcode.org/project/drupal" title="">Browse Repository</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/documentation" title="">Documentation</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/project/modules" title="Find modules to extend Drupal to meet any need">Modules</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/project/themes" title="Browse themes as a starting point for making your Drupal site your own">Themes</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/project/distributions" title="Use a distribution to start with a version of Drupal customized to purpose">Distributions</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/project/issues" title="Dive into the issues queues and contribute back to Drupal">Issue queues</a></li> </ul></div></li> <li class="expanded"><a href="/web/20210329162432/https://www.drupal.org/industries" title="Examples of solutions built on Drupal">Solutions</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/industries" title="Learn why Drupal is the best solution for your industry">By industry</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/features" title="">By feature</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/case-studies" title="View Drupal success stories">Case studies</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/hosting" title="Find a solution for hosting your Drupal application">For hosting</a></li> </ul></div></li> <li class="expanded"><a href="/web/20210329162432/https://www.drupal.org/drupal-services" title="Buy Drupal Products and Services">Services</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/drupal-services" title="View the Drupal service provider marketplace">Marketplace</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/hosting" title="Find trusted Drupal hosting providers">Hosting</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/training" title="Find expert Drupal training">Training</a></li> </ul></div></li> <li class="expanded active-trail"><a href="/web/20210329162432/https://www.drupal.org/community" title="Drupal Community" class="active-trail">Community</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/community" title="View the community portal and find all the ways you can contribute to Drupal">Portal</a></li> <li class="leaf active-trail"><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide" title="" class="active-trail active">Contributor guide</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/organizations" title="Learn about the organizations that are part of the Drupal ecosystem">Organizations</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/forum" title="Find support or chat with the community on the forum">Forum</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/community/agency-marketing/promotedrupal" title="">Promote Drupal</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/case-studies/community" title="">Community Case Studies</a></li> <li class="leaf"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/swag?utm_source=drupalorg&utm_medium=banner&utm_campaign=drupal_swag_shop_2020_09_17" title="Purchase Drupal merchandise and be the coolest kid on the block">Drupal Swag</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/about/core" title="">Core Development & Strategic Initiatives</a></li> </ul></div></li> <li class="expanded"><a href="/web/20210329162432/https://www.drupal.org/documentation" title="Resources to help you on your Drupal journey">Resources</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/docs/user_guide/en/index.html" title="The Drupal 8 user guide will get you up to speed in no time">User guide</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/documentation" title="Drupal Documentation">Documentation</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/support" title="Support for using Drupal">Support</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/security" title="Find information about security releases for Drupal">Security</a></li> <li class="leaf"><a href="https://web.archive.org/web/20210329162432/https://jobs.drupal.org/" title="Drupal Jobs">Jobs</a></li> <li class="leaf"><a href="https://web.archive.org/web/20210329162432/https://events.drupal.org/" title="Learn about official Drupal Association events">Events</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/subscribe" title="">Newsletter</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/news" title="News about the Drupal ecosystem">Project News</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/association/supporters/press" title="News and press releases from Drupal Association supporting partners">Partner Press</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/about/9" title="Prepare for Drupal 9">Drupal 9</a></li> </ul></div></li> <li class="expanded"><a href="/web/20210329162432/https://www.drupal.org/association" title="About the Drupal Association - the non-profit that supports the Drupal project">Give</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/association" title="Learn about the Drupal Association - the nonprofit that supports the Drupal project">Drupal Association</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/association/supporters" title="Learn more about the organizations that support the Drupal Association and our mission">Supporters</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/promotedrupal" title="">Promote Drupal</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/association/support" title="We depend on you to move the Drupal project forward">Join us</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide" title="" class="active">Contributor guide</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/drupalorg" title="">About Drupal.org</a></li> </ul></div></li> <li class="expanded"><a href="/web/20210329162432/https://www.drupal.org/community/events" title="Find Drupal Events around the world, from the official DrupalCons, to community Camps and Meet-Ups">Events</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="https://web.archive.org/web/20210329162432/https://events.drupal.org/drupalcon2021/" title="">DrupalCon North America</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/community/events" title="">Community Events</a></li> <li class="leaf"><a href="https://web.archive.org/web/20210329162432/https://www.drupical.com/" title="A calendar of Drupal events around the world.">Drupical</a></li> <li class="last leaf"><a href="https://web.archive.org/web/20210329162432/https://events.drupal.org/drupalfest2021" title="DrupalCon Fest | April 1-30, 2020">DrupalFest</a></li> </ul></div></li> <li class="last expanded"><a href="/web/20210329162432/https://www.drupal.org/try-drupal" title="Try Drupal">Try Drupal</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/try-drupal" title="Demo Drupal online with a Drupal platform partner">Demo online</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/download" title="">Download</a></li> </ul></div></li> </ul></div><a class="close-btn" href="#top">Return to content</a> </div> </div> </div> <div id="block-search-form" class="block block-search"> <div class="block-inner"> <div class="content"> <form action="/web/20210329162432/https://www.drupal.org/community/contributor-guide" method="post" id="search-block-form" accept-charset="UTF-8"><div><div class="container-inline"> <h2 class="element-invisible">Search form</h2> <div class="form-item form-type-textfield form-item-search-block-form"> <label class="element-invisible" for="edit-search-block-form--2">Search </label> <input placeholder="Search…" type="text" id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text"/> </div> <div class="form-actions form-wrapper" id="edit-actions"><input alt="Search" type="image" id="edit-submit" name="submit" value="Search" src="/web/20210329162432im_/https://www.drupal.org/sites/all/themes/bluecheese/images/icon-w-search.svg" class="form-submit"/></div><input type="hidden" name="form_build_id" value="form-3Xx6c_uyw_OvgM_1DjOIdkR-aZXCoc-XZMhsn6XDcgE"/> <input type="hidden" name="form_id" value="search_block_form"/> </div> </div></form> </div> </div> </div> <div id="block-system-user-menu" class="block block-system block-menu"> <div class="block-inner"> <div class="content"> <div class="menu-block"><ul class="menu"><li class="button default"><a href="#block-system-user-menu"><img src="https://web.archive.org/web/20210329162432im_/https://www.drupal.org/sites/all/themes/bluecheese/images/icon-w-user.svg" alt="Log in, view profile, and more"></a><ul><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/user/login?destination=node/3109633" title="">Log in</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/user/register?destination=node/3109633" title="">Create account</a></li> </ul></li></ul></div> </div> </div> </div> </div> </nav> </div> <div id="header" class="clearfix"> <div id="header-inner" class="container-12 clearfix"> <div id="header-left"> <div id="site-name"><a href="/web/20210329162432/https://www.drupal.org/community">Community</a></div> </div> <div id="header-right"> </div> </div> </div> <div id="banner"> <div class="region region-banner"> <div id="block-drupalorg-announcements" class="block block-drupalorg"> <div class="block-inner"> <div class="content"> <div class="announcement">Celebrate 20 years of Drupal with us! April is DrupalFest, a month-long series of virtual events focused on community, contribution, and the positive impacts made possible with Drupal.</div> <div class="cta"><a href="https://web.archive.org/web/20210329162432/https://events.drupal.org/drupalfest2021/events" class="global-announce-banner drupalconNA-2021-sponsorship">Add your DrupalFest event to the calendar</a></div> </div> </div> </div> </div> </div> <div id="page" class="clearfix"> <div id="page-heading"> <div id="page-title-tools" class="container-12 clearfix" role="navigation"> <div class="page-title-wrapper"> </div> </div> <!-- /#page-title-tools --> <div class="breadbox"></div> <h1 id="page-subtitle" class="container-12">Contributor guide</h1> </div> <!-- /#page-heading --> <div class="container-12 page-inner"> <div id="main" role="main"> <div id="content" class="clearfix"> <div id="content-inner" class="clearfix"> <div class="region region-content"> <div id="block-system-main" class="block block-system"> <div class="block-inner"> <div class="content"> <div class="panelizer-view-mode node node-full node-section node-3109633"> <div class="panel-display hydra panel-layout clearfix "> <div class="container preface clearfix panel-panel"> <div class="container-inner preface-inner panel-panel-inner"> </div> </div> <div class="container content clearfix"> <div class="container-inner content-inner panel-panel-inner"> <div class="column-content-region top-right-content column panel-panel"> <div class="column-content-region-inner top-right-content-inner column-inner panel-panel-inner"> <div class="panel-pane pane-block pane-og-menu-og-single-menu-block" id="contributor-guide"> <h2 class="pane-title"> <a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide" class="active">Contributor guide</a> </h2> <div class="pane-content"> <ul class="menu"><li class="first leaf"><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/find-your-role">Find your role</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/find-a-task">Find a task</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/use-or-improve-your-skills">Use or improve your skills</a></li> <li class="leaf"><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/contribution-areas" title="">Contribution areas</a></li> <li class="last leaf"><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/reference-information" title="">Background and reference information</a></li> </ul> </div> </div> </div> </div> <div class="column-content-region left-content column panel-panel "> <div class="column-content-region-inner left-content-inner column-inner panel-panel-inner"> <div class="panel-pane pane-entity-field pane-node-body"> <div class="pane-content"> <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Welcome to the Drupal community's Contributor Guide! In this section of the Drupal.org web site, you will find information to help you figure out how you can bring your unique skills and perspectives and join with others in the Drupal community to improve the Drupal software, translations, documentation, and the community itself. Whether you are new to contributing to the Drupal project and community, or are an experienced contributor looking for a new task or role, you can use the following entry points to explore the many possible ways you can contribute.</p> <ul> <li><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/find-a-task" rel="nofollow">Browse by task</a>: task pages give step-by-step guides to performing tasks that contribute to the Drupal software and community, with links to the background knowledge and skills that are required to perform the task. Each task page also lists roles that regularly perform the task. Some tasks only take a few minutes -- get started today!</li> <li><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/find-your-role" rel="nofollow">Browse by role</a>: role pages describe one-time and on-going roles that you can fill in the Drupal community; most roles are for people who want to make a longer-term commitment to the project.</li> <li><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/use-or-improve-your-skills" rel="nofollow">Browse by skill</a>: skill pages describe knowledge sets that are useful for contributing, and link to resources for learning the skill. Each skill page also lists roles and tasks that require or may use that skill.</li> <li><a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/contribution-areas" rel="nofollow">Browse by area</a>: area pages describe overlapping parts of the Drupal project community that you can contribute to, such as <a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/contribution-areas/documentation" rel="nofollow">Documentation</a>, <a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/contribution-areas/core" rel="nofollow">Drupal Core</a>, and <a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/contribution-areas/event-planning" rel="nofollow">Event planning</a>. Each area page links to related roles, tasks, and skills.</li> </ul> <h2>Not sure you're ready to contribute?</h2> <p>Visit the <a href="/web/20210329162432/https://www.drupal.org/community" rel="nofollow">Community landing page</a> to learn more about why so many people choose to volunteer their time with the Drupal project.</p> <div class="note"> <p>This guide is always evolving. If you'd like to help improve it, the best starting point is the <a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/contribution-areas/contributor-guide" rel="nofollow">Contribute to the Contributor Guide</a> page.</p> </div></div></div></div> </div> </div> </div> </div> <div class="column-content-region bottom-right-content column panel-panel"> <div class="column-content-region-inner bottom-right-content-inner column-inner panel-panel-inner"> <div class="panel-pane pane-block pane-block-161"> <div class="pane-content"> <h3>Help improve this page</h3> <p><a href="/web/20210329162432/https://www.drupal.org/node/add/project-issue/drupal_org_community" rel="nofollow">Create an issue</a> describing the problem.</p> <h3>Need help deciding how to contribute?</h3> <p>Visit the <a href="/web/20210329162432/https://www.drupal.org/community" rel="nofollow">Community landing page</a> to learn more about the Drupal community, or start at the top of the <a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide" rel="nofollow">Contributor Guide</a> to find roles and tasks organized by skills and community areas.</p> <h3>Need help completing a task?</h3> <p>Check out the <a href="/web/20210329162432/https://www.drupal.org/community/contributor-guide/background-and-reference-information/getting-help-with-contributing" rel="nofollow">Getting help with contributing</a> section.</p> </div> </div> </div> </div> </div> </div> <div class="container footer clearfix panel-panel"> <div class="container-inner footer-inner panel-panel-inner"> </div> </div> </div><!-- /.sutro --> </div> </div> </div> </div> </div> </div> </div> <!-- /#content --> </div> <!-- /#column-left --> </div> </div> <!-- /#page --> <div id="footer" role="contentinfo"> <div class="region region-footer"> <div id="block-drupalorg-crosssite-contrib-partners" class="block block-drupalorg-crosssite"> <div class="block-inner"> <div class="content"> <h2> Thank you to these Drupal contributors </h2> <p>Top Drupal contributor <a class="hc" href="https://web.archive.org/web/20210329162432/https://acquia.com/">Acquia</a> would like to thank their partners for their contributions to Drupal.</p> <div class="contrib-partners"> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.thirdandgrove.com/"><img alt="Third and Grove" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/thirdandgrove.png" width="100%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.acromedia.com/"><img alt="Acro Media" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/Acro-Media-Drupal-Commerce-Experts.png" width="90%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.mediacurrent.com/"><img alt="MediaCurrent" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/mc-blue-mediacurrent.png" width="90%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.qed42.com/"><img alt="QED42" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/logo-new.png" width="90%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://us.ciandt.com/"><img alt="CI&T" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/CI%26T%20Logo%20-%20PANTONE.png" width="90%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://ffwagency.com/"><img alt="FFW" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/FFW_Logo-black.png" width="90%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.palantir.net/"><img alt="Palantir.net" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/logo-transparent_0.png" width="120%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.lullabot.com/"><img alt="Lullabot" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/Lullabot_Logo_Vertical-svg.png" width="75%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.fourkitchens.com/"><img alt="Four Kitchens" src="/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/4K-lockup_0.png" width="90%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.phase2technology.com/services/drupal"><img alt="Phase 2" src="https://web.archive.org/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/Phase2_Logo_Black.png" width="95%"/></a> </div> <div class="contrib-partner"> <a href="https://web.archive.org/web/20210329162432/https://www.srijan.net/"><img alt="Srijan" src="https://web.archive.org/web/20210329162432im_/https://www.drupal.org/files/styles/grid-3/public/Neo%20Srijan%20Noir.png" width="95%"/></a> </div> </div> </div> </div> </div> <div id="block-drupalorg-crosssite-infra-partner" class="block block-drupalorg-crosssite"> <div class="block-inner"> <div class="content"> <a href="https://web.archive.org/web/20210329162432/https://tag1consulting.com/">Infrastructure management for Drupal.org provided by <img src="/web/20210329162432im_/https://www.drupal.org/files/cta/graphic/tag1_wht.svg" alt="Tag1 logo"></a> </div> </div> </div> <div id="block-drupalorg-crosssite-drupalorg-footer" class="block block-drupalorg-crosssite"> <div class="block-inner"> <div class="content"> <h4 class="element-invisible">News items</h4><ul class="drupal-news"><li class="0 first"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/news">News</a></li> <li class="1"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/planet" title="News from Drupal community members">Planet Drupal</a></li> <li class="2"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/about/media-kit/social-media" title="Drupal on social media">Social media</a></li> <li class="3"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/subscribe">Sign up for Drupal news</a></li> <li class="4"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/security" title="Announcements from the Drupal Security Team">Security advisories</a></li> <li class="5 last"><a href="https://web.archive.org/web/20210329162432/https://jobs.drupal.org/" title="Drupal Jobs">Jobs</a></li> </ul><h4 class="element-invisible">Our community</h4><ul class="community"><li class="0 first"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/community">Community</a></li> <li class="1"><span><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/drupal-services" title="People and organizations offering Drupal services">Services</a>, <a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/training" title="People and organizations offering Drupal training">Training</a> & <a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/hosting" title="Organizations offering Drupal hosting">Hosting</a></span></li> <li class="2"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/community/contributor-guide">Contributor guide</a></li> <li class="3"><a href="https://web.archive.org/web/20210329162432/https://groups.drupal.org/groups" title="groups.drupal.org">Groups & meetups</a></li> <li class="4"><a href="https://web.archive.org/web/20210329162432/https://events.drupal.org/" title="Upcoming and past DrupalCons">DrupalCon</a></li> <li class="5 last"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/dcoc" title="Drupal code of conduct">Code of conduct</a></li> </ul><h4 class="element-invisible">Documentation</h4><ul class="get-started"><li class="0 first"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/documentation" title="Documentation for working with Drupal">Documentation</a></li> <li class="1"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/docs">Drupal Guide</a></li> <li class="2"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/docs/user_guide/en/index.html">Drupal User Guide</a></li> <li class="3"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/documentation/develop">Developer docs</a></li> <li class="4 last"><a href="https://web.archive.org/web/20210329162432/https://api.drupal.org/" title="Drupal API reference">API.Drupal.org</a></li> </ul><h4 class="element-invisible">Drupal code base</h4><ul class="download-extend"><li class="0 first"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/download">Download & Extend</a></li> <li class="1"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/project/drupal" title="Download the latest version of the Drupal software">Drupal core</a></li> <li class="2"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/project/project_module" title="Download add-on features and functionality">Modules</a></li> <li class="3"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/project/project_theme" title="Download pre-designed styles for Drupal">Themes</a></li> <li class="4 last"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/project/project_distribution" title="Download a pre-packaged Drupal site">Distributions</a></li> </ul><h4 class="element-invisible">Governance of community</h4><ul class="about"><li class="0 first"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/about">About</a></li> <li class="1"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/about/features/accessibility" title="Our committment to accessibility">Web accessibility</a></li> <li class="2"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/association" title="About the Drupal Association">Drupal Association</a></li> <li class="3"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/drupalorg" title="About Drupal.org">About Drupal.org</a></li> <li class="4"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/terms" title="Drupal.org terms of service">Terms of service</a></li> <li class="5 last"><a href="https://web.archive.org/web/20210329162432/https://www.drupal.org/privacy" title="Drupal.org privacy policy">Privacy policy</a></li> </ul> </div> </div> </div> <div id="block-block-77" class="block block-block"> <div class="block-inner"> <div class="content"> <p>Drupal is a <a href="https://web.archive.org/web/20210329162432/http://drupal.com/trademark">registered trademark</a> of <a href="https://web.archive.org/web/20210329162432/https://dri.es/">Dries Buytaert</a>.</p> </div> </div> </div> </div> </div> <div class="region region-page-bottom"> <script type="text/javascript"> (function(){ window._pxAppId = 'PXVnPBBfwe'; window._pxParam2 = ''; window._pxParam3 = '0'; var p = document.getElementsByTagName('script')[0], s = document.createElement('script'); s.async = 1; s.src = '/VnPBBfwe/init.js'; p.parentNode.insertBefore(s,p); }()); </script> <noscript> <div style="position:fixed; top:0; left:0; display:none" width="1" height="1"> <img src="/web/20210329162432im_/https://www.drupal.org/VnPBBfwe/xhr/api/v1/collector/noScript.gif?appId=PXVnPBBfwe"> </div> </noscript> </div> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__B0FBwiP97ZnD38IFraZus4upS4KVkMXI3ou0fJ2ZXGA__pPDESRJz9GHsxqQIwQ_V8xnFYEH5jipG2eicsfrdWCs__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <!--[if lte IE 9]> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js#ie9-" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <![endif]--> <!--[if gt IE 9]> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js#ie10+" defer="defer" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <![endif]--> <!--[if !IE]><!--> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <!--<![endif]--> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__pqoYaVR8NVhof-vNXe50j2TKhFv__IihVag_h4G6kus__B4mbn4wICLQjWm1m3-z1kw8F1FtP0cDAHKp00Xy_-88__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__H5AFmq1RrXKsrazzPq_xPQPy4K0wUKqecPjczzRiTgQ__Gnv3ZTafk9EeOiFxo-EtnyI4C4VvBtyZ1MDogxDnRm0__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer" onload=" function advagg_mod_1() { // Count how many times this function is called. advagg_mod_1.count = ++advagg_mod_1.count || 1; try { if (advagg_mod_1.count <= 40) { init_drupal_core_settings(); // Set this to 100 so that this function only runs once. advagg_mod_1.count = 100; } } catch(e) { if (advagg_mod_1.count >= 40) { // Throw the exception if this still fails after running 40 times. throw e; } else { // Try again in 1 ms. window.setTimeout(advagg_mod_1, 1); } } } function advagg_mod_1_check() { if (window.init_drupal_core_settings && window.jQuery && window.Drupal) { advagg_mod_1(); } else { window.setTimeout(advagg_mod_1_check, 1); } } advagg_mod_1_check();"></script> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__pXD9RWCrVAUoNY-ScSiNX8mK01wdWZeAuYXQz86N5Zk__csOqLtQWn10PqBbVymnn-o96SsNxh0ds4NTFLHHxRlM__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__ENYUZMe5BHbMK8_pF3i18y1CtuMx_ItPRfjUOF7vUds__MXaxQPtP7z2LRCIe-IOxTRyNSvHNhJSb9SX1jpwq-Z8__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__pLKQd4r7OrHglE7Qkqw53K2UXCqQdhqQ9v0cz7hMCQY__OErfYuQdGbFHcCoLoUW_ESSvaumApNojzjJit8-2xcw__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__hHUWFbMAa11eJtx5V0ym9o0YBsB1udk34qUT5wr1ihI__5kTy2kcrlFdXy9f69QYhgG-WnC2ajOQE_jJCGTFhQv8__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- function init_drupal_core_settings() {jQuery.extend(Drupal.settings,{"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"bluecheese","theme_token":"lXkvoDF5xb1loYVWw5HoaGPE0Iv4UlZczBRhCQN2lSY"},"colorbox":{"transition":"elastic","speed":"100","opacity":"0.85","slideshow":false,"slideshowAuto":true,"slideshowSpeed":"2500","slideshowStart":"start slideshow","slideshowStop":"stop slideshow","current":"{current} of {total}","previous":"\u00ab Prev","next":"Next \u00bb","close":"Close","overlayClose":true,"returnFocus":true,"maxWidth":"98%","maxHeight":"98%","initialWidth":"300","initialHeight":"250","fixed":true,"scrolling":true,"mobiledetect":true,"mobiledevicewidth":"480px"},"urlIsAjaxTrusted":{"\/community\/contributor-guide":true},"ogContext":{"groupType":"node","gid":"3109633"}}); if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(false);}} if(window.jQuery && window.Drupal){init_drupal_core_settings();} //--><!]]> </script> <script type="text/javascript" src="/web/20210329162432js_/https://www.drupal.org/files/advagg_js/js__vj0LjvNwl-3K1P9LGT4BGuXCZcAovYsVlVmoJN3TMRg__KW8SiGceRY3sjIKVrffDjf2MK4A5Vp3EDDxVO-4pegI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam-cell.nr-data.net","licenseKey":"e671e25255","applicationID":"4266189","transactionName":"Z1AEbREHVxAFU0RRV14aJ1oXD1YNS15fXF1vRQdeBjlPCgFH","queueTime":0,"applicationTime":745,"atts":"SxcHG1kdRB4=","errorBeacon":"bam-cell.nr-data.net","agent":""}</script></body> </html> <!-- FILE ARCHIVED ON 16:24:32 Mar 29, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 07:32:17 Nov 28, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.494 exclusion.robots: 0.028 exclusion.robots.policy: 0.016 esindex: 0.009 cdx.remote: 21.082 LoadShardBlock: 247.666 (3) PetaboxLoader3.datanode: 103.822 (4) PetaboxLoader3.resolve: 2302.254 (3) load_resource: 2198.478 -->