Wikiarroud brwikiquote https://br.wikiquote.org/wiki/Degemer MediaWiki 1.47.0-wmf.24 first-letter Media Dibar Kaozeal Implijer Kaozeadenn Implijer Wikiarroud Kaozeadenn Wikiarroud Restr Kaozeadenn Restr MediaWiki Kaozeadenn MediaWiki Patrom Kaozeadenn Patrom Skoazell Kaozeadenn Skoazell Rummad Kaozeadenn Rummad TimedText TimedText talk Modulenn Kaozeadenn modulenn Event Event talk MediaWiki:Common.js 8 222 5540 3192 2026-10-15T12:23:20Z Maintenance script 1202 Use thumb.wikimedia.org for thumbnails ([[phab:T427465]], Operator: Ladsgroup) 5540 javascript text/javascript /* __FORCETOC__ == infobulles et touches d’accès == === Navigation interprojet === */ // Initialisation de la navigation interprojets (code adapté de de:wikt:Mediawiki:monobook.js) mw.util.addCSS('#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}'); function iProject() { if (document.getElementById("interProject")) { var iProject = document.getElementById("interProject").innerHTML; var interProject = document.createElement("div"); interProject.style.marginTop = "0.7em"; interProject.innerHTML = '<h5>Raktresoù all<\/h5><div class="pBody">'+iProject+'<\/div>'; document.getElementById("p-tb").appendChild(interProject); } } $(iProject); // Navigation interprojets /* == Liste des caractères spéciaux == */ //============================================================ // // Caractères spéciaux // //============================================================ /** * Ajoutez le menu pour choisir des sous-ensembles de caractères spéciaux * @note L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools ! */ function addCharSubsetMenu() { var specialchars = document.getElementById('specialchars'); if (specialchars) { var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">"; menu += "<option>Wiki</option>"; menu += "<option>Matematikoù</option>"; menu += "<option>API</option>"; menu += "<option>Latin/Romain</option>"; menu += "<option>Gresianeg</option>"; menu += "<option>Kirileg</option>"; menu += "<option>AHD</option>"; menu += "<option>Alamaneg</option>"; menu += "<option>Arabeg</option>"; menu += "<option>Katalaneg</option>"; menu += "<option>Kroateg</option>"; menu += "<option>Espagnol</option>"; menu += "<option>Espéranto</option>"; menu += "<option>Estonien</option>"; menu += "<option>Gallois</option>"; menu += "<option>Hawaien</option>"; menu += "<option>Hébreu</option>"; menu += "<option>Hiéroglyphe</option>"; menu += "<option>Hollandais</option>"; menu += "<option>Hongrois</option>"; menu += "<option>Indo-européen</option>"; menu += "<option>Irlandais</option>"; menu += "<option>Islandais</option>"; menu += "<option>Italien</option>"; menu += "<option>Letton</option>"; menu += "<option>Lituanien</option>"; menu += "<option>Maltais</option>"; menu += "<option>Navajo & Apache</option>"; menu += "<option>Pinyin</option>"; menu += "<option>Polonais</option>"; menu += "<option>Portugais</option>"; menu += "<option>Rōmaji</option>"; menu += "<option>Roumain</option>"; menu += "<option>Scandinave</option>"; menu += "<option>Serbe</option>"; menu += "<option>Tchèque</option>"; menu += "<option>Turc</option>"; menu += "<option>Vieil anglais</option>"; menu += "<option>Vietnamien</option>"; menu += "<option>Yiddish</option>"; menu += "</select>"; specialchars.innerHTML = menu + specialchars.innerHTML; /* default subset - try to use a cookie some day */ chooseCharSubset(0); } } /* select subsection of special characters */ function chooseCharSubset(s) { var l = document.getElementById('specialchars').getElementsByTagName('p'); for (var i = 0; i < l.length ; i++) { l[i].style.display = i == s ? 'inline' : 'none'; l[i].style.visibility = i == s ? 'visible' : 'hidden'; } } $(addCharSubsetMenu); /* == Boîtes déroulantes == */ // BEGIN Dynamic Navigation Bars (experimantal) // set up the words in your language var NavigationBarHide = '[ Enrouler ]'; var NavigationBarShow = '[ Dérouler ]'; var NavigationBarShowDefault = 0; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // ajout par Dake // permet de créer un titre en lieu et place du "Dérouler" grâce // à l'attribut "title" du tag. var ShowText; if (NavFrame.title == undefined || NavFrame.title.length == 0 ) { ShowText = NavigationBarShow; } else { ShowText = NavFrame.title; } // if shown now if (NavToggle.firstChild.data == NavigationBarHide) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = ShowText; } } // if hidden now } else if (NavToggle.firstChild.data == ShowText) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = NavigationBarHide; } } } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar = 0; // iterate over all < div >-elements for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) { // if found a navigation bar if (NavFrame.className == "NavFrame") { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); var NavToggleText = document.createTextNode(NavigationBarHide); NavToggle.appendChild(NavToggleText); // add NavToggle-Button as first div-element // in < div class="NavFrame" > NavFrame.insertBefore( NavToggle, NavFrame.firstChild ); NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } $(createNavigationBarToggleButton); // END Dynamic Navigation Bars /* == Barre d'outil == === Générateur de tableaux === */ /** * * English: Generate an array using Mediawiki syntax * * @author: fr:user:dake * @version: 0.1 */ function generateTableau(nbCol, nbRow, border, styleHeader, styleLine) { var code = "\n"; if (styleHeader==1) { code += '{{entête tableau charte}}\n'; } else { code += '{| border="' + border + '"\n'; code += '|+ Titre du tableau\n'; } for (var i=0; i<nbCol; i++) code += '! en-tête ' + i + '\n'; for (var j=0; j<nbRow; j++) { if ((j+1)%2==0 && styleLine==1) { code += '|-{'+'{ligne grise}'+'}\n'; } else { code += '|-----\n'; } for (var i=0; i<nbCol; i++) code += '| élément\n'; } code += '|}'; insertTags('','', code); } /** * * English: Open a popup with parameters to generate an array. * The number of rows/columns can be modified. Some additional * parameters are related to templates available on :fr * * @author: fr:user:dake * @version: 0.1 */ function popupTableau() { var popup = window.open('','name','height=400,width=500'); javaCode = '<script type="text\/javascript">function insertCode(){'; javaCode += 'var row = parseInt(document.paramForm.inputRow.value); '; javaCode += 'var col = parseInt(document.paramForm.inputCol.value); '; javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); '; javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; '; javaCode += 'var styleLine = document.paramForm.inputLine.checked; '; javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine); '; javaCode += '}<\/script>'; popup.document.write('<html><head><title>Paramètres du tableau</title>'); popup.document.write(javaCode); popup.document.write('</head><body>'); popup.document.write('<p>Veuillez entrer les paramètres du tableau : </p>'); popup.document.write('<form name="paramForm">'); popup.document.write('Nombre de lignes : <input type="text" name="inputRow" value="3" ><p>'); popup.document.write('Nombre de colonnes : <input type="text" name="inputCol" value="3" ><p>'); popup.document.write('Largeur de la bordure : <input type="text" name="inputBorder" value="1" ><p>'); popup.document.write('En-tête en gris (style « charte graphique ») : <input type="checkbox" name="inputHeader" checked="1" ><p>'); popup.document.write('Lignes grises alternées (style « charte graphique ») : <input type="checkbox" name="inputLine" checked="1" ><p>'); popup.document.write('</form">'); popup.document.write('<p><a href="javascript:insertCode()"> Insérer le code dans la fenêtre d\'édition</a></p>'); popup.document.write('<p><a href="javascript:self.close()"> Fermer</a></p>'); popup.document.write('</body></html>'); popup.document.close(); } /* === Insertion de nouveaux boutons dans la barre d'outil === */ function addCustomButton(){} //Ressemble à la fonction de /w/skins/common/wikibits.js pour insérer un autre lien que insertTags function marque_tab() { var toolbar = document.getElementById('toolbar'); if (!toolbar) return false; var textbox = document.getElementById('wpTextbox1'); if (!textbox) return false; if (!document.selection && textbox.selectionStart == null) return false; var image = document.createElement("img"); image.width = 23; image.height = 22; image.src = '//upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png'; image.border = 0; image.alt = 'Tableau'; image.title = 'Tableau'; image.style.cursor = "pointer"; image.onclick = function() { popupTableau(); return false; } toolbar.appendChild(image); } $(marque_tab); /* == Historique en couleurs == */ var ajax = new objAJAX() var cookies = new objCookies() //--------------------------------------------------------------------------------------------objAJAX function objAJAX() { // AJAX taken from http://jibbering.com/2002/4/httprequest.html. Thanx :) this.conn = false if (!this.conn && typeof XMLHttpRequest != 'undefined') { try { this.conn = new XMLHttpRequest() } catch (e) { this.conn =false } } if (!this.conn && window.createRequest) { try { this.conn = window.createRequest() } catch (e) { this.conn = false } } this.url = null this.requestType = "GET" this.unsync = true this.parser = new objHTMLparser() } objAJAX.prototype.sendRequest = function (url, type, unsync, data) { if (!this.conn) return null if (this.conn.readyState != 0 && this.conn.readyState != 4) return "busy" if (url) this.url = url if (type) this.requestType = type if (unsync != null) this.unsync = unsync //alert(this.requestType + " ++ " + this.url + " ++ " + this.unsync) this.conn.open(this.requestType, this.url, this.unsync) this.conn.send(data) } objAJAX.prototype.getResult = function () { if (!this.conn) return null return this.conn.responseText } objAJAX.prototype.abort = function () { this.conn.onreadystatechange = null this.conn.abort() } //------------------------------------------------------------------------------------------ObjCookie function objCookies() { this.value = null this.name = null this.expires = null } objCookies.prototype.get = function (which) { this.allcookies = document.cookie var start = this.allcookies.indexOf("; " + which + "=") if (start == -1) { start = this.allcookies.indexOf(which + "=") if (start != 0) return null } else start += "; ".length this.name = which var end = this.allcookies.indexOf(";", start) if (end == -1) end = this.allcookies.length this.value = this.allcookies.substring(start + which.length + 1, end) var arr = this.allcookies.substring(start, this.allcookies.length).split("; ") this.expires = null if (arr.length > 0) if (/expires=/.test(arr[1])) this.expires = arr[1].substring("expires=".length, arr[1].length) return this.value } objCookies.prototype.set = function (name, value, expires) { document.cookie = name + "=" + value + ";" + (expires ? "expires=" + expires + ";" : "") + "path=/;" + "domain=fr.wikiquote.org;" this.allcookies = document.cookie } objCookies.prototype.setWithDelay = function (name, value, delay) { // delay is in millisecond var d = new Date() d.setTime(d.getTime() + delay) this.set(name, value, d.toGMTString()) } objCookies.prototype.kill = function (which) { if (this.get(which)) this.set(which, null, "Thu, 01-Jan-70 00:00:01 GMT") } //--------------------------------------------------------------------------------------objHTMLparser function objHTMLparser(str) { this.html = str } objHTMLparser.prototype.parse = function (elmt, str) { if (str !== null) this.html = str if (this.html.indexOf("<" + elmt) == -1 || this.html.indexOf("</" + elmt + ">") == -1) return null var arr1 = this.html.split("<" + elmt) var elmts = new Array() for (var cpt = 1 ; cpt < arr1.length ; cpt++) { var el = new Object() el.innerHTML = arr1[cpt].substring(arr1[cpt].indexOf(">"), arr1[cpt].length).split("</" + elmt)[0] var prop = arr1[cpt].split(">")[0].split(/\s/g) for (var cpt1 = 1 ; cpt1 < prop.length ; cpt1++) { if (prop[cpt1].indexOf("=") != -1) el[prop[cpt1]] = true else el[prop[cpt1].split("=")[0]] = prop[cpt1].substring(prop[cpt1].indexOf("="), prop[cpt1].length) } elmts[cpt-1] = el } this.elmts[elmt] = elmts } /*************************************************/ // Nom : DeluxeHistory // Auteur : Dake // Basé sur du code Ajax de GôTô // Dernière mise à jour : 8 avril 2006 // Commentaires : /*************************************************/ var sysopsDeluxeHistory = null; var botsDeluxeHistory = null; function extractUsers(res) { pattern = /title\=\"Utilisateur:(.*?)\"/g; s = ""; while((result = pattern.exec(res)) != null) { s += result[1] + "||"; } return s; } /*************************************************/ // Auteur : Dake // Basé sur du code de GôTô /*************************************************/ function getBots() { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { // mange l'exception } if (!cookies.get("botsDeluxeHistory")) { ajax.conn.onreadystatechange = function () { if (ajax.conn.readyState == 4) { botsDeluxeHistory = extractUsers(ajax.getResult()) // conservé pour une semaine cookies.setWithDelay("botsDeluxeHistory", botsDeluxeHistory, 1000*3600*24*7) getSysops(); } } ajax.sendRequest("//fr.wikiquote.org/w/index.php?title=Special:Listusers&group=bot&limit=500&offset=0&action=raw", "GET", true) } else { botsDeluxeHistory = cookies.get("botsDeluxeHistory") getSysops(); } } /*************************************************/ // Auteur : Dake // Basé sur du code de GôTô /*************************************************/ function getSysops() { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { // mange l'exception } if (!cookies.get("sysopsDeluxeHistory")) { ajax.conn.onreadystatechange = function () { if (ajax.conn.readyState == 4) { sysopsDeluxeHistory = extractUsers(ajax.getResult()) // conservé pour une semaine cookies.setWithDelay("sysopsDeluxeHistory", sysopsDeluxeHistory, 1000*3600*24*7) deluxeHistoryProcess(); } } ajax.sendRequest("//fr.wikiquote.org/w/index.php?title=Special:Listusers&group=sysop&limit=500&offset=0&action=raw", "GET", true) } else { sysopsDeluxeHistory = cookies.get("sysopsDeluxeHistory") deluxeHistoryProcess(); } } // code by Martin Honnen function getOuterHTML (node) { if (node.nodeType == 3) return node.nodeValue; else if (node.nodeType == 1) { var html = ''; html += '<' + node.nodeName; for (var a = 0; a < node.attributes.length; a++) html += ' ' + node.attributes[a].nodeName + '="' + node.attributes[a].nodeValue + '"'; if (node.childNodes.length == 0) html += ' \/>'; else { html += '>'; for (var c = 0; c < node.childNodes.length; c++) html += getOuterHTML(node.childNodes[c]); html += '<\/' + node.nodeName + '>'; } return html; } } function deluxeHistoryProcess() { sysopsList = sysopsDeluxeHistory.split("||") botsList = botsDeluxeHistory.split("||") var lis = document.getElementById("pagehistory").getElementsByTagName("li"); for (i=0; i<lis.length; i++) { spanNode = lis[i].getElementsByTagName("span"); username = spanNode[0].childNodes[0].childNodes[0].nodeValue; // check le statut du contributeur var className = "history-user-normal"; // bot ? for (j=0;j<botsList.length;j++) { if (botsList[j].indexOf(username)==0) { className = "history-user-bot" break; } } // sysop ? for (j=0;j<sysopsList.length;j++) { if (sysopsList[j].indexOf(username)==0) { className = "history-user-sysop" break; } } // ip ? var ip = /\d{1,3}\.\d{1,3}.\d{1,3}.\d{1,3}/; if (ip.exec(username)) { className = "history-user-ip" } // ajout des icônes specialOp = ""; var comment = ""; for (h=0;h<spanNode.length;h++) { if (spanNode[h].getAttribute("class") == "comment") { comment = getOuterHTML(spanNode[h]) break; } } var regexExpEvents = new Array(); regexExpEvents[0] = /((r|R)(é|e)vocation|(r|R)v |(R|r)evert|(v|V)andal(isme|e))/; regexExpEvents[1] = /(a restauré|a effacé|(s|S)uppression)/; regexExpEvents[2] = /((R|r)enommage|a déplacé)/; regexExpEvents[3] = /((semi|Semi)-(p|P)rotection|(P|p)rotection)/; var iconsEvents = new Array(); iconsEvents[0] = "//thumb.wikimedia.org/wikipedia/commons/thumb/7/77/Crystal_Clear_action_reload.png/20px-Crystal_Clear_action_reload.png" iconsEvents[1] = "//thumb.wikimedia.org/wikipedia/commons/thumb/0/0c/Crystal_Clear_action_exit.png/20px-Crystal_Clear_action_exit.png" iconsEvents[2] = "//thumb.wikimedia.org/wikipedia/commons/thumb/4/45/Crystal_Clear_action_2rightarrow.png/20px-Crystal_Clear_action_2rightarrow.png" iconsEvents[3] = "//thumb.wikimedia.org/wikipedia/commons/thumb/f/ff/Crystal_Clear_action_lock.png/20px-Crystal_Clear_action_lock.png" if (comment) { for (k=0;k<regexExpEvents.length;k++) { if (regexExpEvents[k].test(comment)) { imgTag = "<img src=\"" + iconsEvents[k] + "\" />" specialOp = "<div class=\"" + className + "\" style=\"float: right; vertical-align:top;\">" + imgTag + "</div>" } } } lis[i].innerHTML = "<div class=\"" + className + "\">" + specialOp + lis[i].innerHTML + "</div>" inputNodes = lis[i].getElementsByTagName("input"); for (j=0;j<inputNodes.length;j++) { inputNodes[j].style.visibility='visible'; } for (j=0;j<spanNode.length;j++) { if(spanNode[j].getAttribute("class")=="history-user") { spanNode[j].setAttribute("class", className) } } } } if (location.href.indexOf("&action=history")!==-1) { $(function () { getBots(); }); } /* == Pré-initialisation de certaines pages == */ //============================================================ // // Fonctions de remplissage automatique // //============================================================ /* === Citation du jour === */ function InitQOTD(page_name) { var cbeg = '<!--Remplissez les champs citation, auteur et article et sauvegardez la page. -->'; var template = '{{' + 'subst:' + 'Citation du jour/Préchargement' + '\n' + '|citation=\n' + '|auteur=\n' + '|article=\n' + '}}'; return cbeg + '\n' + template + '\n'; } /* === Espace Référence === */ /* Pour les sous-pages de l'espace Référence (e.g. [[Référence:Page/Sous-page]]) */ function InitRefSub() { var cbeg = '<!-- Remplissez les champs ci-dessous et sauvegardez la page. Voyez la documentation de ' + '[[Modèle:' + 'Édition' + ']]' + ' pour la liste des champs disponibles. -->'; var beg = '{{' + 'subst:' + 'Édition début' + '}}'; var fields = '|titre=' + '\n' + '|auteur=' + '\n' + '|trad=' + '\n' + '|éditeur=' + '\n' + '|année=' + '\n' + '|lieu=' + '\n' + '|pages=' + '\n' + '|isbn='; var cend = '<!-- Ne pas modifier après cette ligne. -->'; var end = '{{' + 'subst:' + 'Édition fin' + '}}'; return cbeg + '\n' + beg + '\n' + fields + '\n' + cend + '\n' + end; } /* Pour les pages de l'espace Référence (e.g. [[Référence:Page]]) */ function InitRefPage() { var beg = '{{' + 'Référence' + '}}' + '\n\n== Éditions =='; var cbeg = "<!-- Attention : cette partie ne doit faire qu'inclure les sous-pages (une par édition). Pour ajouter une édition, il faut créer une nouvelle sous-page. -->"; var body = '\n<!-- Exemple : \n\n=== [[/Gallimard-Folio|Gallimard]] ===\n\n' + '{{' + '/Gallimard-Folio' + '}}\n\n-->'; return beg + "\n" + cbeg + "\n" + body; } function InitRef(page_name) { var retval; var index = page_name.indexOf('/'); if (index != -1) retval = InitRefSub(); else retval = InitRefPage(); return retval; } /* === Pré-initialisation === */ var init_if_empty = [ ['R%C3%A9f%C3%A9rence:', InitRef], ['Mod%C3%A8le:Citation_du_jour/', InitQOTD] ]; /** * Remplit la zone d'édition si elle est vide avec le texte retourné par * un pointeur de fonction sélectionné par le nom de la page. */ function InitPage() { // Tester si editdorm et wpTextbox1 existe sinon il y a une erreur lorsqu'on // ouvre l'historique d'une page qui match un des noms de init_if_empty[], // tester seulement le nom de la page n'est pas suffisant. if (document.editform == undefined || document.editform.wpTextbox1 == undefined) return; var text_area = document.editform.wpTextbox1; if (text_area.value.length != 0) return; ugly_url = '//fr.wikiquote.org/w/index.php?title='; for (var i = 0; i < init_if_empty.length; ++i) { var page_name = document.URL; var page_match = init_if_empty[i][0]; var index = page_name.indexOf(ugly_url + page_match); if (index != -1) { page_name = page_name.slice((ugly_url + page_match).length); page_name = page_name.split('&')[0]; page_name = decodeURI(page_name); page_name = page_name.replace(/_/g, ' ') text_area.value = init_if_empty[i][1](page_name); break; } } } $(InitPage); /* == Choix de l'affichage des références == */ //============================================================ // // Choix de l'affichage des références // //============================================================ /** * Choix du mode d'affichage des références. * @note L'ordre de cette liste doit correspondre a celui de Modèle:Édition ! */ function addBibSubsetMenu() { var specialBib = document.getElementById('specialBib'); if (specialBib) { specialBib.style.display = 'block'; var menu = "<select style=\"display:inline;\" onChange=\"chooseBibSubset(selectedIndex)\">"; menu += "<option>Liste</option>"; menu += "<option>WikiNorme</option>"; menu += "<option>BibTeX</option>"; menu += "<option>ISBD</option>"; menu += "<option>ISO690</option>"; menu += "</select>"; specialBib.innerHTML = specialBib.innerHTML + menu; } /* default subset - try to use a cookie some day */ chooseBibSubset(0); } /* select subsection of special characters */ function chooseBibSubset(s) { var l = document.getElementsByTagName('div'); for (var i = 0; i < l.length ; i++) { if(l[i].className == 'BibList') l[i].style.display = s == 0 ? 'block' : 'none'; else if(l[i].className == 'WikiNorme') l[i].style.display = s == 1 ? 'block' : 'none'; else if(l[i].className == 'BibTeX') l[i].style.display = s == 2 ? 'block' : 'none'; else if(l[i].className == 'ISBD') l[i].style.display = s == 3 ? 'block' : 'none'; else if(l[i].className == 'ISO690') l[i].style.display = s == 4 ? 'block' : 'none'; } } $(addBibSubsetMenu); 1hu3rzesz6gnwfup20o6n8khzzjqmz8