Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// <nowiki>
// Note: This script was compiled and minified from TypeScript. For a more readable version, see https://github.com/Eejit43/wikipedia-scripts/blob/main/scripts/aligner.ts

"use strict";mw.config.get("wgNamespaceNumber")<0||mw.config.get("wgIsProbablyEditable")&&mw.loader.using(["mediawiki.util","jquery.textSelection"],()=>{mw.util.addCSS(`
#align-parameters {
    display: none;
}

#content:has(#wpTextbox1) #align-parameters {
    display: unset;
}`),mw.util.addPortletLink(mw.config.get("skin")==="minerva"?"p-navigation":"p-cactions","#","Align template parameters","align-parameters").addEventListener("click",s=>{s.preventDefault();const n=$("#wpTextbox1");if(n.length===0)return mw.notify("Edit box not found!",{type:"error",autoHideSeconds:"short"});const e=n.textSelection("getContents");if(!e)return mw.notify("Edit box value not found!",{type:"error",autoHideSeconds:"short"});let o=0;function x(t){if(t==="")return mw.notify("Infobox not found!",{type:"error",autoHideSeconds:"short"});if(a!==0)return mw.notify("Template was not properly closed!",{type:"error",autoHideSeconds:"short"});let r=0;const l=String(t),f=t.split(`
`),w=[];for(const g of f){const u=splitIntoParameters(g.trim());for(const p of u){const h=p.trim();if(!h.startsWith("|")||h.split("=").length!==2){w.push(h);continue}let[m,S]=splitParameter(h);m=m.slice(1).trim(),m.length>r&&(r=m.length),w.push("| "+m+"="+S)}}let c="";r+=2;for(let g of w){const u=splitParameter(g);if(u.length<2){c+=g+=`
`;continue}let p=u[0].trim();for(;p.length<r;)p+=" ";c+=p+" = "+u[1].trim()+`
`}c.endsWith(`
`)&&(c=c.slice(0,-1)),n.textSelection("setContents",n.textSelection("getContents").replace(l,c).replace(/\n+$/,"")),n.textSelection("setSelection",{start:0})}let d="",a=0;const y=["infobox","speciesbox","taxobox","automatic taxobox","osm location map","motorsport season"];for(let t=0;t<e.length;t++){let r=!1;for(let l of y){l="{{"+l;const f=l.length;e.length-t>f&&(e.slice(t,t+f).toLowerCase()===l||e.slice(t,t+f).toLowerCase()===l.replace(" ","_"))&&(a++,d+=e[t],r=!0)}a>=1&&!r&&(d+=e[t],e[t]==="{"?a++:e[t]==="}"&&(a--,a===0&&(o++,x(d),d="")))}o===0?mw.notify("No templates found to align!",{type:"warn",autoHideSeconds:"short"}):mw.notify(`Successfully aligned ${o} template${o>1?"s":""}!`,{type:"success",autoHideSeconds:"short"})})});function splitParameter(i){const s=i.split("=");return s.length<=2?s:[s.shift(),s.join("=")]}function splitIntoParameters(i){if(i.startsWith("{{")&&i.endsWith("}}"))return i.includes("|")?["{{"+splitIntoParameters(i.slice(2,-2))[0],...splitIntoParameters(i.slice(2,-2)).slice(1),"}}"]:[i];const s=[];let n="",e=0;for(const o of i)n+=o,o==="{"||o==="["?e+=1:o===""||o==="]"?e--:o==="|"&&e===0&&n.trim()!=="|"&&(s.push(n.slice(0,-1).trim()),n="|");return s.push(n),s}

// </nowiki>
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc2NyaXB0cy9hbGlnbmVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoKCkgPT4ge1xuICAgIGlmIChtdy5jb25maWcuZ2V0KCd3Z05hbWVzcGFjZU51bWJlcicpIDwgMCkgcmV0dXJuOyAvLyBEb24ndCBydW4gaW4gdmlydHVhbCBuYW1lc3BhY2VzXG4gICAgaWYgKCFtdy5jb25maWcuZ2V0KCd3Z0lzUHJvYmFibHlFZGl0YWJsZScpKSByZXR1cm47IC8vIERvbid0IHJ1biBpZiB1c2VyIGNhbid0IGVkaXQgcGFnZVxuXG4gICAgbXcubG9hZGVyLnVzaW5nKFsnbWVkaWF3aWtpLnV0aWwnLCAnanF1ZXJ5LnRleHRTZWxlY3Rpb24nXSwgKCkgPT4ge1xuICAgICAgICBtdy51dGlsLmFkZENTUyhgXG4jYWxpZ24tcGFyYW1ldGVycyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2NvbnRlbnQ6aGFzKCN3cFRleHRib3gxKSAjYWxpZ24tcGFyYW1ldGVycyB7XG4gICAgZGlzcGxheTogdW5zZXQ7XG59YCk7XG5cbiAgICAgICAgY29uc3QgbGluayA9IG13LnV0aWwuYWRkUG9ydGxldExpbmsobXcuY29uZmlnLmdldCgnc2tpbicpID09PSAnbWluZXJ2YScgPyAncC1uYXZpZ2F0aW9uJyA6ICdwLWNhY3Rpb25zJywgJyMnLCAnQWxpZ24gdGVtcGxhdGUgcGFyYW1ldGVycycsICdhbGlnbi1wYXJhbWV0ZXJzJykhO1xuICAgICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBlZGl0Qm94ID0gJCgnI3dwVGV4dGJveDEnKTtcbiAgICAgICAgICAgIGlmIChlZGl0Qm94Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIG13Lm5vdGlmeSgnRWRpdCBib3ggbm90IGZvdW5kIScsIHsgdHlwZTogJ2Vycm9yJywgYXV0b0hpZGVTZWNvbmRzOiAnc2hvcnQnIH0pO1xuXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gZWRpdEJveC50ZXh0U2VsZWN0aW9uKCdnZXRDb250ZW50cycpO1xuICAgICAgICAgICAgaWYgKCF0ZXh0KSByZXR1cm4gbXcubm90aWZ5KCdFZGl0IGJveCB2YWx1ZSBub3QgZm91bmQhJywgeyB0eXBlOiAnZXJyb3InLCBhdXRvSGlkZVNlY29uZHM6ICdzaG9ydCcgfSk7XG5cbiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRmluaXNoZXMgcHJvY2Vzc2luZyBhbiBpbmZvYm94IGFuZCB1cGRhdGVzIHRoZSBlZGl0IGJveCBjb250ZW50cy5cbiAgICAgICAgICAgICAqIEBwYXJhbSB0ZW1wbGF0ZSBUaGUgdGVtcGxhdGUgc3RyaW5nIHRvIHByb2Nlc3MuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NJbmZvYm94KHRlbXBsYXRlOiBzdHJpbmcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGVtcGxhdGUgPT09ICcnKSByZXR1cm4gbXcubm90aWZ5KCdJbmZvYm94IG5vdCBmb3VuZCEnLCB7IHR5cGU6ICdlcnJvcicsIGF1dG9IaWRlU2Vjb25kczogJ3Nob3J0JyB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChvcGVuICE9PSAwKSByZXR1cm4gbXcubm90aWZ5KCdUZW1wbGF0ZSB3YXMgbm90IHByb3Blcmx5IGNsb3NlZCEnLCB7IHR5cGU6ICdlcnJvcicsIGF1dG9IaWRlU2Vjb25kczogJ3Nob3J0JyB9KTtcblxuICAgICAgICAgICAgICAgIGxldCBtYXhMZW5ndGggPSAwO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ1RlbXBsYXRlID0gU3RyaW5nKHRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lcyA9IHRlbXBsYXRlLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdMaW5lcyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtZXRlcnNJbkxpbmUgPSBzcGxpdEludG9QYXJhbWV0ZXJzKGxpbmUudHJpbSgpKTtcblxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBhcmFtZXRlciBvZiBwYXJhbWV0ZXJzSW5MaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gcGFyYW1ldGVyLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbGluZS5zdGFydHNXaXRoKCd8JykgfHwgbGluZS5zcGxpdCgnPScpLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpbmVzLnB1c2gobGluZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBbZmlyc3RQYXJ0LCBsYXN0UGFydF0gPSBzcGxpdFBhcmFtZXRlcihsaW5lKSBhcyBbc3RyaW5nLCBzdHJpbmddOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByZWZlci1jb25zdFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RQYXJ0ID0gZmlyc3RQYXJ0LnNsaWNlKDEpLnRyaW0oKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0UGFydC5sZW5ndGggPiBtYXhMZW5ndGgpIG1heExlbmd0aCA9IGZpcnN0UGFydC5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpbmVzLnB1c2goJ3wgJyArIGZpcnN0UGFydCArICc9JyArIGxhc3RQYXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBvdXRwdXQgPSAnJztcblxuICAgICAgICAgICAgICAgIG1heExlbmd0aCArPSAyOyAvLyB0byBpbmNsdWRlICd8ICdcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGxpbmUgb2YgbmV3TGluZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFydHMgPSBzcGxpdFBhcmFtZXRlcihsaW5lKSBhcyBbc3RyaW5nLCBzdHJpbmddO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gbGluZSArPSAnXFxuJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0UGFydCA9IHBhcnRzWzBdLnRyaW0oKTtcblxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZmlyc3RQYXJ0Lmxlbmd0aCA8IG1heExlbmd0aCkgZmlyc3RQYXJ0ICs9ICcgJztcblxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gZmlyc3RQYXJ0ICsgJyA9ICcgKyBwYXJ0c1sxXS50cmltKCkgKyAnXFxuJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3V0cHV0LmVuZHNXaXRoKCdcXG4nKSkgb3V0cHV0ID0gb3V0cHV0LnNsaWNlKDAsIC0xKTtcblxuICAgICAgICAgICAgICAgIGVkaXRCb3gudGV4dFNlbGVjdGlvbignc2V0Q29udGVudHMnLCBlZGl0Qm94LnRleHRTZWxlY3Rpb24oJ2dldENvbnRlbnRzJykucmVwbGFjZShvcmlnVGVtcGxhdGUsIG91dHB1dCkucmVwbGFjZSgvXFxuKyQvLCAnJykpO1xuXG4gICAgICAgICAgICAgICAgZWRpdEJveC50ZXh0U2VsZWN0aW9uKCdzZXRTZWxlY3Rpb24nLCB7IHN0YXJ0OiAwIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgdGVtcGxhdGUgPSAnJztcbiAgICAgICAgICAgIGxldCBvcGVuID0gMDtcblxuICAgICAgICAgICAgY29uc3Qgc2VhcmNoZXMgPSBbJ2luZm9ib3gnLCAnc3BlY2llc2JveCcsICd0YXhvYm94JywgJ2F1dG9tYXRpYyB0YXhvYm94JywgJ29zbSBsb2NhdGlvbiBtYXAnLCAnbW90b3JzcG9ydCBzZWFzb24nXTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRleHQubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZvbyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgc2VhcmNoIG9mIHNlYXJjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaCA9ICd7eycgKyBzZWFyY2g7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlYXJjaExlbmd0aCA9IHNlYXJjaC5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5sZW5ndGggLSBpbmRleCA+IHNlYXJjaExlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKHRleHQuc2xpY2UoaW5kZXgsIGluZGV4ICsgc2VhcmNoTGVuZ3RoKS50b0xvd2VyQ2FzZSgpID09PSBzZWFyY2ggfHwgdGV4dC5zbGljZShpbmRleCwgaW5kZXggKyBzZWFyY2hMZW5ndGgpLnRvTG93ZXJDYXNlKCkgPT09IHNlYXJjaC5yZXBsYWNlKCcgJywgJ18nKSlcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZSArPSB0ZXh0W2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3BlbiA+PSAxICYmICFmb28pIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUgKz0gdGV4dFtpbmRleF07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRbaW5kZXhdID09PSAneycpIG9wZW4rKztcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGV4dFtpbmRleF0gPT09ICd9Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3Blbi0tO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3BlbiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0luZm9ib3godGVtcGxhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb3VudCA9PT0gMCkgbXcubm90aWZ5KCdObyB0ZW1wbGF0ZXMgZm91bmQgdG8gYWxpZ24hJywgeyB0eXBlOiAnd2FybicsIGF1dG9IaWRlU2Vjb25kczogJ3Nob3J0JyB9KTtcbiAgICAgICAgICAgIGVsc2UgbXcubm90aWZ5KGBTdWNjZXNzZnVsbHkgYWxpZ25lZCAke2NvdW50fSB0ZW1wbGF0ZSR7Y291bnQgPiAxID8gJ3MnIDogJyd9IWAsIHsgdHlwZTogJ3N1Y2Nlc3MnLCBhdXRvSGlkZVNlY29uZHM6ICdzaG9ydCcgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufSkoKTtcblxuLyoqXG4gKiBTcGxpdHMgYSBzdHJpbmcgaW50byBhbiBBcnJheSBjb250YWluaW5nIHRoZSBrZXkgYW5kIHZhbHVlLlxuICogQHBhcmFtIHN0cmluZyBUaGUgZnVsbCBzdHJpbmcgdG8gc3BsaXQuXG4gKi9cbmZ1bmN0aW9uIHNwbGl0UGFyYW1ldGVyKHN0cmluZzogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3BsaXQgPSBzdHJpbmcuc3BsaXQoJz0nKTtcbiAgICBpZiAoc3BsaXQubGVuZ3RoIDw9IDIpIHJldHVybiBzcGxpdDtcblxuICAgIGNvbnN0IGZpcnN0ID0gc3BsaXQuc2hpZnQoKTtcbiAgICByZXR1cm4gW2ZpcnN0LCBzcGxpdC5qb2luKCc9JyldO1xufVxuXG4vKipcbiAqIFNwbGl0cyBhIHRlbXBsYXRlIGludG8gYW4gQXJyYXkgd2l0aCBhbGwgcGFyYW1ldGVycy5cbiAqIEBwYXJhbSBzdHJpbmcgVGhlIHRlbXBsYXRlIHRvIHByb2Nlc3MuXG4gKi9cbmZ1bmN0aW9uIHNwbGl0SW50b1BhcmFtZXRlcnMoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHN0cmluZy5zdGFydHNXaXRoKCd7eycpICYmIHN0cmluZy5lbmRzV2l0aCgnfX0nKSkge1xuICAgICAgICBpZiAoIXN0cmluZy5pbmNsdWRlcygnfCcpKSByZXR1cm4gW3N0cmluZ107XG5cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IHNwbGl0SW50b1BhcmFtZXRlcnMoc3RyaW5nLnNsaWNlKDIsIC0yKSk7XG4gICAgICAgIHJldHVybiBbJ3t7JyArIHJlc3VsdHNbMF0sIC4uLnNwbGl0SW50b1BhcmFtZXRlcnMoc3RyaW5nLnNsaWNlKDIsIC0yKSkuc2xpY2UoMSksICd9fSddO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBbXTtcbiAgICBsZXQgdGVtcG9yYXJ5ID0gJyc7XG4gICAgbGV0IG9wZW4gPSAwO1xuXG4gICAgZm9yIChjb25zdCBjaGFyIG9mIHN0cmluZykge1xuICAgICAgICB0ZW1wb3JhcnkgKz0gY2hhcjtcblxuICAgICAgICBpZiAoY2hhciA9PT0gJ3snIHx8IGNoYXIgPT09ICdbJykgb3BlbiArPSAxO1xuICAgICAgICBlbHNlIGlmIChjaGFyID09PSAnJyB8fCBjaGFyID09PSAnXScpIG9wZW4tLTtcbiAgICAgICAgZWxzZSBpZiAoY2hhciA9PT0gJ3wnICYmIG9wZW4gPT09IDAgJiYgdGVtcG9yYXJ5LnRyaW0oKSAhPT0gJ3wnKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzLnB1c2godGVtcG9yYXJ5LnNsaWNlKDAsIC0xKS50cmltKCkpO1xuICAgICAgICAgICAgdGVtcG9yYXJ5ID0gJ3wnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyYW1ldGVycy5wdXNoKHRlbXBvcmFyeSk7XG5cbiAgICByZXR1cm4gcGFyYW1ldGVycztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7OzthQUNRLEdBQUcsT0FBTyxJQUFJLG1CQUFtQixFQUFJLEdBQ3BDLEdBQUcsT0FBTyxJQUFJLHNCQUFzQixHQUV6QyxHQUFHLE9BQU8sTUFBTSxDQUFDLGlCQUFrQixzQkFBc0IsRUFBRyxJQUFNLENBQzlELEdBQUcsS0FBSyxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPckIsRUFFbUIsR0FBRyxLQUFLLGVBQWUsR0FBRyxPQUFPLElBQUksTUFBTSxJQUFNLFVBQVksZUFBaUIsYUFBYyxJQUFLLDRCQUE2QixrQkFBa0IsRUFDeEosaUJBQWlCLFFBQVVBLEdBQVUsQ0FDdENBLEVBQU0sZUFBZSxFQUVyQixNQUFNQyxFQUFVLEVBQUUsYUFBYSxFQUMvQixHQUFJQSxFQUFRLFNBQVcsRUFBRyxPQUFPLEdBQUcsT0FBTyxzQkFBdUIsQ0FBRSxLQUFNLFFBQVMsZ0JBQWlCLE9BQVEsQ0FBQyxFQUU3RyxNQUFNQyxFQUFPRCxFQUFRLGNBQWMsYUFBYSxFQUNoRCxHQUFJLENBQUNDLEVBQU0sT0FBTyxHQUFHLE9BQU8sNEJBQTZCLENBQUUsS0FBTSxRQUFTLGdCQUFpQixPQUFRLENBQUMsRUFFcEcsSUFBSUMsRUFBUSxFQU1aLFNBQVNDLEVBQWVDLEVBQWtCLENBQ3RDLEdBQUlBLElBQWEsR0FBSSxPQUFPLEdBQUcsT0FBTyxxQkFBc0IsQ0FBRSxLQUFNLFFBQVMs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QWdCLENBQ3BDLE1BQU1DLEVBQVFELEVBQU8sTUFBTSxHQUFHLEVBQzlCLE9BQUlDLEVBQU0sUUFBVSxFQUFVQSxFQUd2QixDQURPQSxFQUFNLE1BQU0sRUFDWEEsRUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUNsQyxDQU1BLFNBQVMsb0JBQW9CRCxFQUEwQixDQUNuRCxHQUFJQSxFQUFPLFdBQVcsSUFBSSxHQUFLQSxFQUFPLFNBQVMsSUFBSSxFQUMvQyxPQUFLQSxFQUFPLFNBQVMsR0FBRyxFQUdqQixDQUFDLEtBRFEsb0JBQW9CQSxFQUFPLE1BQU0sRUFBRyxFQUFFLENBQUMsRUFDaEMsQ0FBQyxFQUFHLEdBQUcsb0JBQW9CQSxFQUFPLE1BQU0sRUFBRyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRyxJQUFJLEVBSG5ELENBQUNBLENBQU0sRUFNN0MsTUFBTUUsRUFBYSxDQUFDLEVBQ3BCLElBQUlDLEVBQVksR0FDWnBCLEVBQU8sRUFFWCxVQUFXcUIsS0FBUUosRUFDZkcsR0FBYUMsRUFFVEEsSUFBUyxLQUFPQSxJQUFTLElBQUtyQixHQUFRLEVBQ2pDcUIsSUFBUyxJQUFNQSxJQUFTLElBQUtyQixJQUM3QnFCLElBQVMsS0FBT3JCLElBQVMsR0FBS29CLEVBQVUsS0FBSyxJQUFNLE1BQ3hERCxFQUFXLEtBQUtDLEVBQVUsTUFBTSxFQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFDN0NBLEVBQVksS0FJcEIsT0FBQUQsRUFBVyxLQUFLQyxDQUFTLEVBRWxCRCxDQUNYIiwKICAibmFtZXMiOiBbImV2ZW50IiwgImVkaXRCb3giLCAidGV4dCIsICJjb3VudCIsICJwcm9jZXNzSW5mb2JveCIsICJ0ZW1wbGF0ZSIsICJvcGVuIiwgIm1heExlbmd0aCIsICJvcmlnVGVtcGxhdGUiLCAibGluZXMiLCAibmV3TGluZXMiLCAibGluZSIsICJwYXJhbWV0ZXJzSW5MaW5lIiwgInBhcmFtZXRlciIsICJmaXJzdFBhcnQiLCAibGFzdFBhcnQiLCAib3V0cHV0IiwgInBhcnRzIiwgInNlYXJjaGVzIiwgImluZGV4IiwgImZvbyIsICJzZWFyY2giLCAic2VhcmNoTGVuZ3RoIiwgInN0cmluZyIsICJzcGxpdCIsICJwYXJhbWV0ZXJzIiwgInRlbXBvcmFyeSIsICJjaGFyIl0KfQo=