File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/6G24-4-u2mQzoZm.js.map
{"version":3,"file":"6G24-4-u2mQzoZm.js","sources":["../../src/exercices/6e/6G24-4.js"],"sourcesContent":["import { droite } from '../../lib/2d/droites.js'\nimport { point, tracePoint } from '../../lib/2d/points.js'\nimport { papierPointe } from '../../lib/2d/reperes.js'\nimport { longueur } from '../../lib/2d/segmentsVecteurs.js'\nimport { symetrieAxiale } from '../../lib/2d/transformations.js'\nimport { choice, shuffle } from '../../lib/outils/arrayOutils'\nimport Exercice from '../Exercice.js'\nimport { mathalea2d, colorToLatexOrHTML } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { context } from '../../modules/context.js'\nimport { pointCliquable } from '../../modules/2dinteractif.js'\nexport const titre = 'Complete a cloud of symmetrical points'\nexport const dateDePublication = '18/12/2021'\nexport const interactifReady = false\n// remettre interactif_Ready à true qd point_Cliquable sera de nouveau opérationnel\nexport const interactifType = 'custom'\nexport const amcReady = true\nexport const amcType = 'AMCOpenNum'\n\n/**\n * Symétrie axiale sur papier pointé\n * Ref 6G24-4\n * @author Jean-Claude Lhote\n * Publié le 18/12/2021\n */\nexport const uuid = '07f8a'\nexport const ref = '6G24-4'\nexport default function CompleterParSymetrie6e () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.consigne = ''\n this.nbQuestions = 1\n this.nbCols = 1\n this.nbColsCorr = 1\n this.sup = 1\n this.sup2 = 1\n this.sup3 = true\n this.nouvelleVersion = function () {\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n this.autoCorrection = []\n const couples = []\n const pointsCliquables = [[]]\n let pointsPossibles\n const objetsEnonce = []\n const objetsCorrection = []\n const pointsChoisis = []\n const pointsAffiches = []\n const pointsEnPlusCorr = []\n const pointsNonSolution = []\n const pointsSolution = []\n const pointsCliques = []\n const changeAxe = []\n const typeDePapier = ['quad', 'quad', 'hexa', 'horse'] // l'élément 0 sera changé aléatoirement pour correspondre au type mélange (this.sup2 % 4)\n for (let i = 0, cpt = 0, papier, image, d, j, trouve, texte, texteCorr, nbCouplesComplets; i < this.nbQuestions && cpt < 50;) {\n typeDePapier[0] = typeDePapier[1 + i % 3]\n // we empty all the tables used for the following question\n objetsEnonce[i] = []\n objetsCorrection[i] = []\n pointsChoisis.length = 0\n pointsAffiches.length = 0\n pointsEnPlusCorr.length = 0\n pointsNonSolution[i] = []\n pointsSolution[i] = []\n pointsCliquables[i] = []\n pointsCliques[i] = []\n couples.length = 0\n changeAxe[i] = this.sup3 ? 0 : randint(-2, 2, 0)\n papier = papierPointe({ xmin: 0, ymin: 0, xmax: 10, ymax: 10, type: typeDePapier[this.sup2 === 4 ? 0 : this.sup2] })\n\n objetsEnonce[i].push(papier)\n\n switch (this.sup === 5 ? randint(1, 4) : this.sup) {\n case 1:\n if (typeDePapier[(this.sup2 === 5 ? 0 : this.sup2)] === 'quad') {\n d = droite(point(5 + changeAxe[i] / 2, 0), point(5 + changeAxe[i] / 2, 10))\n } else {\n d = droite(point(4.33 + 0.866 * changeAxe[i], 0), point(4.33 + 0.866 * changeAxe[i], 10))\n }\n break\n case 2:\n if (typeDePapier[(this.sup2 === 4 ? 0 : this.sup2)] === 'quad') {\n d = droite(point(0, 5 + changeAxe[i] / 2), point(10, 5 + changeAxe[i] / 2))\n } else {\n d = droite(point(0, 5.5 + changeAxe[i] / 2), point(10, 5.5 + changeAxe[i] / 2))\n }\n break\n case 3:\n if (typeDePapier[(this.sup2 === 4 ? 0 : this.sup2)] === 'quad') {\n d = droite(point(0, 1 + changeAxe[i]), point(9 - changeAxe[i], 10))\n } else {\n d = droite(point(0, 3 + changeAxe[i]), point(8.66, 8 + changeAxe[i]))\n }\n break\n case 4:\n if (typeDePapier[(this.sup2 === 4 ? 0 : this.sup2)] === 'quad') {\n d = droite(point(0, 10 - changeAxe[i]), point(10 - changeAxe[i], 0))\n } else {\n d = droite(point(0, 8 + changeAxe[i]), point(8.66, 3 + changeAxe[i]))\n }\n break\n }\n d.epaisseur = 2\n d.color = context.isHtml ? colorToLatexOrHTML('blue') : colorToLatexOrHTML('black')\n objetsEnonce[i].push(d)\n pointsPossibles = papier.listeCoords.slice()\n // we prepare the clickable points for the interactive version\n // over, out and click are objects for the css style of mouse events, radius, width, color, size, style are the possible parameters for the point trace\n if (this.interactif && context.isHtml) {\n for (let p = 0; p < papier.listeCoords.length; p++) {\n pointsCliquables[i].push(pointCliquable(papier.listeCoords[p][0], papier.listeCoords[p][1], { radius: 0.2, color: 'red', width: 2, opacite: 0.7 }))\n }\n }\n while (pointsPossibles.length > 1) { // si il n'what remains is that'un, on ne peut pas trouver de symétrique\n image = symetrieAxiale(point(pointsPossibles[0][0], pointsPossibles[0][1]), d)\n j = 1\n trouve = false\n while (j < pointsPossibles.length && !trouve) {\n // if the image is close to a point, it means that we have two symmetrical ones, therefore a potential couple.\n if (longueur(image, point(pointsPossibles[j][0], pointsPossibles[j][1])) < 0.5) {\n trouve = true\n } else j++\n }\n if (trouve) {\n // we store the symmetrical pair by randomly modifying the order.\n couples.push(choice([true, false]) ? [pointsPossibles[0], pointsPossibles[j]] : [pointsPossibles[j], pointsPossibles[0]])\n pointsPossibles.splice(j, 1) // on retire d'first the points'indice j\n pointsPossibles.splice(0, 1) // puis le point d'indice 0\n } else {\n pointsPossibles.splice(0, 1) // Le point d'index 0 n'a pas de symétrique, on le retire\n }\n }\n // the list of couples is ready, we will be able to choose the points displayed and those not displayed.\n const nbCouplesChoisis = randint(8, 12)\n const couplesChoisis = shuffle(couples).splice(0, nbCouplesChoisis)\n for (let p = 0; p < couplesChoisis.length; p++) {\n pointsChoisis.push(couplesChoisis[p][0], couplesChoisis[p][1])\n }\n nbCouplesComplets = randint(2, 5)\n for (let p = 0; p < pointsChoisis.length; p += 2) {\n if (p < nbCouplesComplets) { // On affiche un certains nombre de couples\n pointsAffiches.push(point(pointsChoisis[p][0], pointsChoisis[p][1]))\n pointsAffiches.push(point(pointsChoisis[p + 1][0], pointsChoisis[p + 1][1]))\n } else { // et on affiche un seul des points pour les couples restants\n pointsAffiches.push(point(pointsChoisis[p][0], pointsChoisis[p][1]))\n pointsEnPlusCorr.push(point(pointsChoisis[p + 1][0], pointsChoisis[p + 1][1]))\n }\n }\n for (let p = 0; p < pointsAffiches.length; p++) {\n objetsEnonce[i].push(tracePoint(pointsAffiches[p]))\n }\n for (let p = 0; p < pointsEnPlusCorr.length; p++) {\n objetsCorrection[i].push(tracePoint(pointsEnPlusCorr[p], 'red'))\n }\n for (let p = 0; p < pointsCliquables[i].length; p++) {\n trouve = false\n let q = 0\n while (q < pointsEnPlusCorr.length && !trouve) {\n if (longueur(pointsEnPlusCorr[q], pointsCliquables[i][p].point) < 0.1) {\n trouve = true\n pointsSolution[i].push(pointsCliquables[i][p])\n } else {\n q++\n }\n }\n if (!trouve) {\n pointsNonSolution[i].push(pointsCliquables[i][p])\n }\n }\n texte = context.isAmc\n ? 'Here is a grid containing points and an axis of symmetry.<br>Add a minimum of points so that the figure is symmetrical with respect to the axis.<br>Write the number of points added in the frame. Then code this number of points.<br>'\n : 'Here is a grid containing points and an axis of symmetry.<br>Add a minimum of points so that the figure is symmetrical about the axis.<br>'\n // We prepare the figure...\n texte += mathalea2d({ xmin: -1, ymin: -1, xmax: 11, ymax: 11, scale: 0.7 }, ...objetsEnonce[i], ...pointsCliquables[i])\n if (this.interactif && context.isHtml) {\n texte += `<div id=\"resultatCheckEx${this.numeroExercice}Q${i}\"></div>`\n }\n texteCorr = mathalea2d({ xmin: -1, ymin: -1, xmax: 11, ymax: 11, scale: 0.5, style: 'inline' }, ...objetsEnonce, ...objetsCorrection[i])\n if (context.isAmc) {\n this.autoCorrection[i] = {\n enonce: texte,\n propositions: [\n {\n texte: texteCorr,\n statut: 1,\n feedback: '',\n sanscadre: false\n }\n ],\n reponse: {\n valeur: [pointsEnPlusCorr.length],\n param: {\n digits: 2,\n signe: false,\n decimals: 0,\n vertical: true\n }\n }\n }\n }\n if (this.questionJamaisPosee(i, nbCouplesChoisis, nbCouplesComplets, pointsChoisis[0][0], pointsChoisis[0][1])) {\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n this.correctionInteractive = (i) => {\n let resultat\n let aucunMauvaisPointsCliques = true\n for (const monPoint of pointsNonSolution[i]) {\n if (monPoint.etat) {\n aucunMauvaisPointsCliques = false\n pointsCliques[i].push(tracePoint(monPoint.point, 'red')) // ça c'is to possibly modify the correction with the points clicked by the'utilisateur.\n }\n monPoint.stopCliquable()\n }\n for (const monPoint of pointsSolution[i]) {\n if (!monPoint.etat) aucunMauvaisPointsCliques = false\n else pointsCliques[i].push(tracePoint(monPoint.point, 'red')) // ça c'is to possibly modify the correction with the points clicked by the'utilisateur.\n monPoint.stopCliquable()\n }\n const divFeedback = document.querySelector(`#resultCheckEx${this.numeroExercice}Q${i}`)\n for (let j = 0; j < pointsSolution[i].length; j++) {\n pointsSolution[i][j].stopCliquable()\n }\n let etat = true\n for (let k = 0; k < pointsSolution[i].length; k++) {\n etat = etat && pointsSolution[i][k]\n }\n if (aucunMauvaisPointsCliques && etat) {\n divFeedback.innerHTML = '😎'\n resultat = 'OK'\n } else {\n divFeedback.innerHTML = '☹️'\n resultat = 'KO'\n }\n // this.listCorrections[i] = mathalea2d({ xmin: -1, ymin: -1, xmax: 11, ymax: 11, scale: 0.7, style: 'inline' }, ...objectsStatement[i], . ..Clickpoints[i]) + mathalea2d({ xmin: -1, ymin: -1, xmax: 11, ymax: 11, scale: 0.5, style: 'inline' }, ...objectsState, ...objectsCorrection[ i])\n // the content is already ready. You will have to modify the <svg> later...\n return resultat\n }\n listeQuestionsToContenu(this)\n }\n this.besoinFormulaireNumerique = ['Type of axes', 5, '1: Vertical axis\\n2: Horizontal axis\\n3: Oblique axis /\\n4: Oblique axis \\\\\\n5: Mixture']\n this.besoinFormulaire2Numerique = ['Pointed paper type', 4, '1: Squares\\n2: Hexagons\\n3: Equilateral triangles\\n4: Blend']\n this.besoinFormulaire3CaseACocher = ['Centered axis', true]\n}\n"],"names":["titre","dateDePublication","interactifReady","interactifType","amcReady","amcType","uuid","ref","CompleterParSymetrie6e","Exercice","couples","pointsCliquables","pointsPossibles","objetsEnonce","objetsCorrection","pointsChoisis","pointsAffiches","pointsEnPlusCorr","pointsNonSolution","pointsSolution","pointsCliques","changeAxe","typeDePapier","i","cpt","papier","image","d","j","trouve","texte","texteCorr","nbCouplesComplets","randint","papierPointe","droite","point","context","colorToLatexOrHTML","p","pointCliquable","symetrieAxiale","longueur","choice","nbCouplesChoisis","couplesChoisis","shuffle","tracePoint","q","mathalea2d","resultat","aucunMauvaisPointsCliques","monPoint","divFeedback","etat","k","listeQuestionsToContenu"],"mappings":"yNAWY,MAACA,EAAQ,yCACRC,EAAoB,aACpBC,EAAkB,GAElBC,EAAiB,SACjBC,EAAW,GACXC,EAAU,aAQVC,EAAO,QACPC,EAAM,SACJ,SAASC,GAA0B,CAChDC,EAAS,KAAK,IAAI,EAClB,KAAK,SAAW,GAChB,KAAK,YAAc,EACnB,KAAK,OAAS,EACd,KAAK,WAAa,EAClB,KAAK,IAAM,EACX,KAAK,KAAO,EACZ,KAAK,KAAO,GACZ,KAAK,gBAAkB,UAAY,CACjC,KAAK,eAAiB,CAAE,EACxB,KAAK,iBAAmB,CAAE,EAC1B,KAAK,eAAiB,CAAE,EACxB,MAAMC,EAAU,CAAE,EACZC,EAAmB,CAAC,EAAE,EAC5B,IAAIC,EACJ,MAAMC,EAAe,CAAE,EACjBC,EAAmB,CAAE,EACrBC,EAAgB,CAAE,EAClBC,EAAiB,CAAE,EACnBC,EAAmB,CAAE,EACrBC,EAAoB,CAAE,EACtBC,EAAiB,CAAE,EACnBC,EAAgB,CAAE,EAClBC,EAAY,CAAE,EACdC,EAAe,CAAC,OAAQ,OAAQ,OAAQ,OAAO,EACrD,QAASC,EAAI,EAAGC,EAAM,EAAGC,EAAQC,EAAOC,EAAGC,EAAGC,EAAQC,EAAOC,EAAWC,EAAmBT,EAAI,KAAK,aAAeC,EAAM,IAAK,CAkB5H,OAjBAF,EAAa,CAAC,EAAIA,EAAa,EAAIC,EAAI,CAAC,EAExCV,EAAaU,CAAC,EAAI,CAAE,EACpBT,EAAiBS,CAAC,EAAI,CAAE,EACxBR,EAAc,OAAS,EACvBC,EAAe,OAAS,EACxBC,EAAiB,OAAS,EAC1BC,EAAkBK,CAAC,EAAI,CAAE,EACzBJ,EAAeI,CAAC,EAAI,CAAE,EACtBZ,EAAiBY,CAAC,EAAI,CAAE,EACxBH,EAAcG,CAAC,EAAI,CAAE,EACrBb,EAAQ,OAAS,EACjBW,EAAUE,CAAC,EAAI,KAAK,KAAO,EAAIU,EAAQ,GAAI,EAAG,CAAC,EAC/CR,EAASS,EAAa,CAAE,KAAM,EAAG,KAAM,EAAG,KAAM,GAAI,KAAM,GAAI,KAAMZ,EAAa,KAAK,OAAS,EAAI,EAAI,KAAK,IAAI,EAAG,EAEnHT,EAAaU,CAAC,EAAE,KAAKE,CAAM,EAEnB,KAAK,MAAQ,EAAIQ,EAAQ,EAAG,CAAC,EAAI,KAAK,IAAG,CAC/C,IAAK,GACCX,EAAc,KAAK,OAAS,EAAI,EAAI,KAAK,IAAM,IAAK,OACtDK,EAAIQ,EAAOC,EAAM,EAAIf,EAAUE,CAAC,EAAI,EAAG,CAAC,EAAGa,EAAM,EAAIf,EAAUE,CAAC,EAAI,EAAG,EAAE,CAAC,EAE1EI,EAAIQ,EAAOC,EAAM,KAAO,KAAQf,EAAUE,CAAC,EAAG,CAAC,EAAGa,EAAM,KAAO,KAAQf,EAAUE,CAAC,EAAG,EAAE,CAAC,EAE1F,MACF,IAAK,GACCD,EAAc,KAAK,OAAS,EAAI,EAAI,KAAK,IAAM,IAAK,OACtDK,EAAIQ,EAAOC,EAAM,EAAG,EAAIf,EAAUE,CAAC,EAAI,CAAC,EAAGa,EAAM,GAAI,EAAIf,EAAUE,CAAC,EAAI,CAAC,CAAC,EAE1EI,EAAIQ,EAAOC,EAAM,EAAG,IAAMf,EAAUE,CAAC,EAAI,CAAC,EAAGa,EAAM,GAAI,IAAMf,EAAUE,CAAC,EAAI,CAAC,CAAC,EAEhF,MACF,IAAK,GACCD,EAAc,KAAK,OAAS,EAAI,EAAI,KAAK,IAAM,IAAK,OACtDK,EAAIQ,EAAOC,EAAM,EAAG,EAAIf,EAAUE,CAAC,CAAC,EAAGa,EAAM,EAAIf,EAAUE,CAAC,EAAG,EAAE,CAAC,EAElEI,EAAIQ,EAAOC,EAAM,EAAG,EAAIf,EAAUE,CAAC,CAAC,EAAGa,EAAM,KAAM,EAAIf,EAAUE,CAAC,CAAC,CAAC,EAEtE,MACF,IAAK,GACCD,EAAc,KAAK,OAAS,EAAI,EAAI,KAAK,IAAM,IAAK,OACtDK,EAAIQ,EAAOC,EAAM,EAAG,GAAKf,EAAUE,CAAC,CAAC,EAAGa,EAAM,GAAKf,EAAUE,CAAC,EAAG,CAAC,CAAC,EAEnEI,EAAIQ,EAAOC,EAAM,EAAG,EAAIf,EAAUE,CAAC,CAAC,EAAGa,EAAM,KAAM,EAAIf,EAAUE,CAAC,CAAC,CAAC,EAEtE,KACH,CAOD,GANAI,EAAE,UAAY,EACdA,EAAE,MAAQU,EAAQ,OAASC,EAAmB,MAAM,EAAIA,EAAmB,OAAO,EAClFzB,EAAaU,CAAC,EAAE,KAAKI,CAAC,EACtBf,EAAkBa,EAAO,YAAY,MAAO,EAGxC,KAAK,YAAcY,EAAQ,OAC7B,QAASE,EAAI,EAAGA,EAAId,EAAO,YAAY,OAAQc,IAC7C5B,EAAiBY,CAAC,EAAE,KAAKiB,EAAef,EAAO,YAAYc,CAAC,EAAE,CAAC,EAAGd,EAAO,YAAYc,CAAC,EAAE,CAAC,EAAG,CAAE,OAAQ,GAAK,MAAO,MAAO,MAAO,EAAG,QAAS,EAAK,CAAA,CAAC,EAGtJ,KAAO3B,EAAgB,OAAS,GAAG,CAIjC,IAHAc,EAAQe,EAAeL,EAAMxB,EAAgB,CAAC,EAAE,CAAC,EAAGA,EAAgB,CAAC,EAAE,CAAC,CAAC,EAAGe,CAAC,EAC7EC,EAAI,EACJC,EAAS,GACFD,EAAIhB,EAAgB,QAAU,CAACiB,GAEhCa,EAAShB,EAAOU,EAAMxB,EAAgBgB,CAAC,EAAE,CAAC,EAAGhB,EAAgBgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAI,GACzEC,EAAS,GACJD,IAELC,IAEFnB,EAAQ,KAAKiC,EAAO,CAAC,GAAM,EAAK,CAAC,EAAI,CAAC/B,EAAgB,CAAC,EAAGA,EAAgBgB,CAAC,CAAC,EAAI,CAAChB,EAAgBgB,CAAC,EAAGhB,EAAgB,CAAC,CAAC,CAAC,EACxHA,EAAgB,OAAOgB,EAAG,CAAC,GAC3BhB,EAAgB,OAAO,EAAG,CAAC,CAI9B,CAED,MAAMgC,EAAmBX,EAAQ,EAAG,EAAE,EAChCY,EAAiBC,EAAQpC,CAAO,EAAE,OAAO,EAAGkC,CAAgB,EAClE,QAASL,EAAI,EAAGA,EAAIM,EAAe,OAAQN,IACzCxB,EAAc,KAAK8B,EAAeN,CAAC,EAAE,CAAC,EAAGM,EAAeN,CAAC,EAAE,CAAC,CAAC,EAE/DP,EAAoBC,EAAQ,EAAG,CAAC,EAChC,QAASM,EAAI,EAAGA,EAAIxB,EAAc,OAAQwB,GAAK,EACzCA,EAAIP,GACNhB,EAAe,KAAKoB,EAAMrB,EAAcwB,CAAC,EAAE,CAAC,EAAGxB,EAAcwB,CAAC,EAAE,CAAC,CAAC,CAAC,EACnEvB,EAAe,KAAKoB,EAAMrB,EAAcwB,EAAI,CAAC,EAAE,CAAC,EAAGxB,EAAcwB,EAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAE3EvB,EAAe,KAAKoB,EAAMrB,EAAcwB,CAAC,EAAE,CAAC,EAAGxB,EAAcwB,CAAC,EAAE,CAAC,CAAC,CAAC,EACnEtB,EAAiB,KAAKmB,EAAMrB,EAAcwB,EAAI,CAAC,EAAE,CAAC,EAAGxB,EAAcwB,EAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAGjF,QAASA,EAAI,EAAGA,EAAIvB,EAAe,OAAQuB,IACzC1B,EAAaU,CAAC,EAAE,KAAKwB,EAAW/B,EAAeuB,CAAC,CAAC,CAAC,EAEpD,QAASA,EAAI,EAAGA,EAAItB,EAAiB,OAAQsB,IAC3CzB,EAAiBS,CAAC,EAAE,KAAKwB,EAAW9B,EAAiBsB,CAAC,EAAG,KAAK,CAAC,EAEjE,QAASA,EAAI,EAAGA,EAAI5B,EAAiBY,CAAC,EAAE,OAAQgB,IAAK,CACnDV,EAAS,GACT,IAAImB,EAAI,EACR,KAAOA,EAAI/B,EAAiB,QAAU,CAACY,GACjCa,EAASzB,EAAiB+B,CAAC,EAAGrC,EAAiBY,CAAC,EAAEgB,CAAC,EAAE,KAAK,EAAI,IAChEV,EAAS,GACTV,EAAeI,CAAC,EAAE,KAAKZ,EAAiBY,CAAC,EAAEgB,CAAC,CAAC,GAE7CS,IAGCnB,GACHX,EAAkBK,CAAC,EAAE,KAAKZ,EAAiBY,CAAC,EAAEgB,CAAC,CAAC,CAEnD,CACDT,EAAQO,EAAQ,MACZ,0OACA,6IAEJP,GAASmB,EAAW,CAAE,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,MAAO,EAAG,EAAI,GAAGpC,EAAaU,CAAC,EAAG,GAAGZ,EAAiBY,CAAC,CAAC,EAClH,KAAK,YAAcc,EAAQ,SAC7BP,GAAS,2BAA2B,KAAK,cAAc,IAAIP,CAAC,YAE9DQ,EAAYkB,EAAW,CAAE,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,MAAO,GAAK,MAAO,QAAQ,EAAI,GAAGpC,EAAc,GAAGC,EAAiBS,CAAC,CAAC,EACnIc,EAAQ,QACV,KAAK,eAAed,CAAC,EAAI,CACvB,OAAQO,EACR,aAAc,CACZ,CACE,MAAOC,EACP,OAAQ,EACR,SAAU,GACV,UAAW,EACZ,CACF,EACD,QAAS,CACP,OAAQ,CAACd,EAAiB,MAAM,EAChC,MAAO,CACL,OAAQ,EACR,MAAO,GACP,SAAU,EACV,SAAU,EACX,CACF,CACF,GAEC,KAAK,oBAAoBM,EAAGqB,EAAkBZ,EAAmBjB,EAAc,CAAC,EAAE,CAAC,EAAGA,EAAc,CAAC,EAAE,CAAC,CAAC,IAC3G,KAAK,eAAe,KAAKe,CAAK,EAC9B,KAAK,iBAAiB,KAAKC,CAAS,EACpCR,KAEFC,GACD,CACD,KAAK,sBAAyBD,GAAM,CAClC,IAAI2B,EACAC,EAA4B,GAChC,UAAWC,KAAYlC,EAAkBK,CAAC,EACpC6B,EAAS,OACXD,EAA4B,GAC5B/B,EAAcG,CAAC,EAAE,KAAKwB,EAAWK,EAAS,MAAO,KAAK,CAAC,GAEzDA,EAAS,cAAe,EAE1B,UAAWA,KAAYjC,EAAeI,CAAC,EAChC6B,EAAS,KACThC,EAAcG,CAAC,EAAE,KAAKwB,EAAWK,EAAS,MAAO,KAAK,CAAC,EADxCD,EAA4B,GAEhDC,EAAS,cAAe,EAE1B,MAAMC,EAAc,SAAS,cAAc,iBAAiB,KAAK,cAAc,IAAI9B,CAAC,EAAE,EACtF,QAASK,EAAI,EAAGA,EAAIT,EAAeI,CAAC,EAAE,OAAQK,IAC5CT,EAAeI,CAAC,EAAEK,CAAC,EAAE,cAAe,EAEtC,IAAI0B,EAAO,GACX,QAASC,EAAI,EAAGA,EAAIpC,EAAeI,CAAC,EAAE,OAAQgC,IAC5CD,EAAOA,GAAQnC,EAAeI,CAAC,EAAEgC,CAAC,EAEpC,OAAIJ,GAA6BG,GAC/BD,EAAY,UAAY,KACxBH,EAAW,OAEXG,EAAY,UAAY,KACxBH,EAAW,MAINA,CACR,EACDM,EAAwB,IAAI,CAC7B,EACD,KAAK,0BAA4B,CAAC,eAAgB,EAAG;AAAA;AAAA;AAAA;AAAA,WAAyF,EAC9I,KAAK,2BAA6B,CAAC,qBAAsB,EAAG;AAAA;AAAA;AAAA,SAA6D,EACzH,KAAK,6BAA+B,CAAC,gBAAiB,EAAI,CAC5D"}