File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/P015-bD55qIH0.js.map
{"version":3,"file":"P015-bD55qIH0.js","sources":["../../src/exercices/profs/P015.js"],"sourcesContent":["import { point } from '../../lib/2d/points.js'\nimport { infoMessage } from '../../lib/format/message.js'\nimport { texteGras } from '../../lib/format/style'\nimport Exercice from '../deprecatedExercice.js'\nimport { context } from '../../modules/context.js'\nimport Alea2iep from '../../modules/Alea2iep.js'\nimport { randint, enumerate, enumerateSansPuceSansNumero } from '../../modules/outils.js'\n\n// Les exports suivants sont optionnels mais au moins la date de publication semble essentielle\nexport const dateDePublication = '14/03/2022' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\n\nexport const titre = 'Puzzles géométriques avec animation'\nexport const ref = 'P015'\nexport const uuid = '085ed'\n\n/**\n * Proposisiton des étapes de construction du puzzles géométriques type tangram, œuf magique ...\n * @author Sébastien LOZANO\n * Référence P015\n */\n\nexport default function PuzzlesGeometriques () {\n Exercice.call(this)\n this.titre = titre\n this.nbQuestions = 1 // Ici le nombre de questions\n this.nbQuestionsModifiable = false // Active le formulaire nombre de questions\n // this.pasDeVersionLatex = true // mettre à true si on ne veut pas de l'exercice dans le générateur LaTeX\n this.pas_de_version_HMTL = false // mettre à true si on ne veut pas de l'exercice en ligne\n this.sup = 1\n this.sup2 = true\n this.typeExercice = 'IEP'\n this.listePackages = ['bclogo', 'yhmath']\n\n this.nouvelleVersion = function () {\n const type = parseInt(this.sup)\n const anim = new Alea2iep()\n // anim.taille(1200, 1200)\n anim.translationX = 4\n anim.translationY = 20\n // vitesse pour l'anim\n anim.vitesse = 50 // 1000\n anim.xMax = 20\n anim.yMax = 20\n let texte\n texte = texteGras('PROGRAMME DE CONSTRUCTION')\n // On factorise\n /**\n *\n * @param {number} nbPieces nombre de pieces du puzzle\n * @param {string} type type parmi oiseau, tangram, samLoyd\n * @param {number} nbFig numero de la sihlouette tiré au hasard\n * @returns un string\n */\n const texteMessage = (nbPieces, type) => {\n let nbFig\n switch (type) {\n case 'oiseau':\n case 'tangram':\n nbFig = randint(1, 12)\n break\n case 'samLoyd':\n nbFig = randint(1, 5)\n break\n }\n let sortie = enumerateSansPuceSansNumero([\n `Découper les ${nbPieces} pièces délimitées par les lignes rouges.`,\n 'Construire la silhouette proposée.'\n ], 1.5)\n if (context.isHtml) {\n sortie += `<img class=\"ui middle aligned image\" src=\"assets/puzzlesGeom/img/${type}${nbFig}.png\"/>`\n } else {\n sortie += ` \\\\href{https://coopmaths.fr/assets/puzzlesGeom/img/${type}${nbFig}.png}{Cliquer pour la voir en ligne}`\n }\n return sortie\n }\n\n /**\n *\n * @param {string} version v1 ou v2\n */\n const samLoyd = (version) => {\n // Adaptation de la taille de la fenêtre\n anim.taille(600, 600)\n anim.image('assets/puzzlesGeom/img/samLoydQuadrillage.png', point(-4, 19))\n // Les points\n let A, B, C, D, E, E1, F, F1, G, G1, H, H1, I\n switch (version) {\n case 'v1':\n A = point(-2.35, 15.70, 'A')\n B = point(1, 17.35, 'B')\n C = point(6.01, 7.35, 'C')\n D = point(-2.35, 7.35, 'D')\n E = point(-2.35, 10.7, 'E')\n F = point(-2.35, 14, 'F')\n G = point(1, 14, 'G')\n H = point(1, 9, 'H')\n I = point(4.31, 10.7, 'I')\n break\n case 'v2':\n // Les points aux intersections du quadrillage\n A = point(2.7, 17.35, 'A')\n B = point(6.01, 17.35, 'B')\n C = point(6.01, 7.35, 'C')\n D = point(-0.7, 10.7, 'D')\n E1 = point(-0.7, 14, 'E_1')\n F1 = point(-0.7, 17.35, 'F_1')\n G1 = point(6.01, 14, 'G_1')\n H1 = point(1, 7.35, 'H_1')\n // Les points aux intersections de lignes tracées\n E = point(0.65, 13.3, 'E')\n F = point(2, 16, 'F')\n G = point(4.65, 14.7, 'G')\n H = point(2.7, 10.7, 'H')\n I = point(6.01, 10.7, 'I')\n break\n }\n // On place les points\n anim.pointCreer(A, { dx: -0.7, dy: 0.7 })\n anim.pointCreer(B, { dy: 0.7 })\n anim.pointCreer(C, { dy: -0.2 })\n version === 'v1' ? anim.pointCreer(D, { dy: -0.2 }) : anim.pointCreer(D, { dx: -0.4, dy: -0.2 })\n if (version === 'v1') {\n anim.pointCreer(E, { dx: -0.7, dy: 0.7 })\n anim.pointCreer(F, { dx: -0.7, dy: 0.7 })\n anim.pointCreer(G, { dy: 0.7 })\n anim.pointCreer(H, { dy: 0.7 })\n }\n if (version === 'v2') {\n anim.pointCreer(E1, { dx: -0.7, dy: 0.7 })\n anim.pointCreer(F1, { dx: -0.7, dy: 0.8 })\n anim.pointCreer(G1, { dx: 0.2, dy: 0.7 })\n anim.pointCreer(H1, { dx: -0.7, dy: 0.7 })\n }\n anim.pointCreer(I, { dy: 0.7 })\n // On trace les segments\n anim.regleMasquerGraduations()\n anim.regleSegment(A, B, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(B, C, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(C, D, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(D, A, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(D, I, { couleur: 'red', epaisseur: 4 })\n if (version === 'v2') {\n anim.regleSegment(F1, G1, { pointilles: 'tiret', couleur: 'gray', epaisseur: 1 })\n anim.regleSegment(E1, I, { pointilles: 'tiret', couleur: 'gray', epaisseur: 1 })\n anim.regleSegment(B, H1, { pointilles: 'tiret', couleur: 'gray', epaisseur: 1 })\n anim.regleMasquer()\n anim.pointCreer(E, { dx: -0.7, dy: 0.7 })\n anim.pointCreer(F, { dx: -0.7, dy: 0.7 })\n anim.pointCreer(G, { dx: -0.4, dy: 0.8 })\n anim.pointCreer(H, { dx: -0.4, dy: 0.7 })\n anim.regleMontrer()\n }\n anim.regleSegment(F, G, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(B, H, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(E, I, { couleur: 'red', epaisseur: 4 })\n\n anim.regleMasquer()\n anim.crayonMasquer()\n\n if (version === 'v1') {\n texte += enumerate([\n 'Placer les points $A$, $B$, $C$, $D$, $E$, $F$, $G$, $H$ et $I$.',\n 'Tracer en rouge les segments $[AB]$, $[BC]$, $[CD]$, $[DA]$, $[FG]$, $[GH]$, $[DI]$, $[EI]$.'\n ], 1)\n }\n if (version === 'v2') {\n texte += enumerate([\n 'Placer les points $A$, $B$, $C$, $D$, $E_1$, $F_1$, $G_1$, $H_1$ et $I$.',\n 'Tracer en rouge les segments $[AB]$, $[BC]$, $[CD]$, $[DA]$ et $[DI]$.',\n 'Tracer en pointillés, au crayon de papier, les segments $[F_1G_1]$, $[E_1I]$ et $[BH_1]$.',\n 'Placer $E$ à l\\'intersection de $[AD]$ et de $[E_1I]$',\n 'Placer $F$ à l\\'intersection de $[AD]$ et de $[F_1G_1]$',\n 'Placer $G$ à l\\'intersection de $[F_1G_1]$ et de $[BH_1]$',\n 'Placer $H$ à l\\'intersection de $[DI]$ et de $[BH_1]$',\n 'Tracer en rouge les segments $[FG]$, $[BH]$ et $[EI]$.'\n ], 1)\n }\n if (context.isHtml) {\n texte += `<img class=\"ui middle aligned image\" src=\"assets/puzzlesGeom/img/samLoydQuadrillageEtPoints${version}.png\"/>`\n } else {\n texte += `\\\\href{https://coopmaths.fr/assets/puzzlesGeom/img/samLoydQuadrillageEtPoints${version}.png}{Cliquer pour la voir en ligne}`\n }\n texte += infoMessage({\n titre: `Sam Loyd ${version} !`,\n texte: texteMessage(5, 'samLoyd'),\n couleur: 'nombres'\n })\n }\n\n switch (type) {\n case 1: {\n // Adaptation de la taille de la fenêtre\n anim.taille(1200, 1200)\n // Les points\n const A1 = point(-3, 4)\n const A = point(-2, 4, 'A')\n const O = point(5, 4, 'O')\n const C1 = point(13, 4)\n const C = point(12, 4, 'C')\n const B1 = point(5, 17, '(\\\\Delta \\')')\n const B = point(5, 11, 'B')\n const D = point(5, -3, 'D')\n const D1 = point(5, -4)\n // On trace les perpendiculaires delta et delta'\n anim.regleModifierLongueur()\n anim.regleDroite(A1, C1, { longueur: 16 })\n anim.regleMasquer()\n anim.crayonMasquer()\n anim.textePoint('$(\\\\Delta)$', C1)\n anim.pointCreer(O, { dx: 0.2, dy: -0.2 })\n anim.equerreMontrer()\n anim.equerreDeplacer(O)\n anim.equerreRotation(180)\n anim.regleMontrer()\n anim.regleDeplacer(D1)\n anim.regleRotation(90)\n anim.equerreMasquer()\n anim.regleDroite(D1, B1, { longueur: 20 })\n anim.regleMasquer()\n anim.crayonMasquer()\n anim.textePoint('$(\\\\Delta \\')$', B1)\n // On trace le cerlce\n anim.compasEcarterAvecRegle(7)\n anim.regleMasquer()\n anim.compasCercleCentrePoint(O, C)\n anim.compasMasquer()\n anim.pointCreer(A, { dx: 0.2, dy: -0.2 })\n anim.pointCreer(B, { dx: 0.2, dy: -0.2 })\n anim.pointCreer(C, { dx: 0.2, dy: -0.2 })\n anim.pointCreer(D, { dx: 0.2, dy: -0.2 })\n // On trace les demi droite d'arrêt\n anim.regleDemiDroiteOriginePoint(A, B, { longueur: 16 })\n anim.regleDemiDroiteOriginePoint(C, B, { longueur: 16 })\n anim.regleMasquer()\n anim.compasEcarter2Points(A, C)\n anim.compasTracerArc2Angles(0, 45, { couleur: 'red', epaisseur: 4 })\n const F = point(7.9, 13.9, 'F')\n anim.pointCreer(F, { dx: -0.2, dy: -0.5 })\n anim.compasEcarter2Points(C, A)\n anim.compasTracerArc2Angles(180, 135, { couleur: 'red', epaisseur: 4 })\n const E = point(2.1, 13.9, 'E')\n anim.pointCreer(E, { dx: -0.2, dy: -0.5 })\n anim.compasEcarter2Points(B, F)\n anim.compasTracerArc2Angles(45, 135, { couleur: 'red', epaisseur: 4 })\n const H = point(5, 15.1, 'H')\n anim.pointCreer(H, { dx: 0.2, dy: -0.5 })\n anim.compasDeplacer(D)\n anim.compasTracerArc2Angles(85, 95)\n const G = point(5, 1.1, 'G')\n anim.pointCreer(G, { dx: 0.2, dy: -0.2 })\n anim.compasDeplacer(G)\n anim.compasTracerArc2Angles(40, 140)\n anim.compasMasquer()\n const L = point(2.1, 4, 'L')\n anim.pointCreer(L, { dx: -0.2, dy: -0.2 })\n const K = point(7.9, 4, 'K')\n anim.pointCreer(K, { dx: 0.2, dy: -0.2 })\n anim.regleSegment(A, C, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(L, G, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(G, K, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(G, D, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(O, H, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(A, F, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(C, E, { couleur: 'red', epaisseur: 4 })\n anim.regleMasquer()\n anim.crayonMasquer()\n anim.compasDeplacer(O)\n anim.compasEcarter2Points(O, A)\n anim.compasTracerArc2Angles(180, 360, { couleur: 'red', epaisseur: 4 })\n anim.compasMasquer()\n let myArcCommand\n context.isHtml === true ? myArcCommand = '\\\\overgroup' : myArcCommand = '\\\\wideparen'\n texte += enumerate([\n 'Tracer deux droites perpendiculaires $(\\\\Delta)$ et $(\\\\Delta \\')$, elles se coupent en $O$.',\n 'Tracer le cercle de centre $O$ et de rayon 7 cm.',\n 'Ce cercle coupe $(\\\\Delta)$ en $A$, à gauche de $O$, et $C$.',\n 'Ce cercle coupe $(\\\\Delta \\')$ en $B$, au dessus de $O$, et $D$.',\n 'Tracer les demi-droites $[AB)$ et $[CB)$',\n `Le cercle de centre $A$ et de rayon $AC$ coupe $[AB)$ en $F$, tracer en rouge l'arc $${myArcCommand}{FC}$.`,\n `Le cercle de centre $C$ et de rayon $AC$ coupe $[CB)$ en $E$, tracer en rouge l'arc $${myArcCommand}{EA}$.`,\n `Tracer en rouge l'arc $${myArcCommand}{EF}$ de centre $B$ et de rayon $BE$. Il coupe $(\\\\Delta ')$ en $H$.`,\n 'Le cercle de centre $D$ et de rayon $BE$ coupe le segment $[BD]$ en $G$.',\n 'Le cercle de centre $G$ et de rayon $BE$ coupe le segment $[AC]$ en $L$ et $K$.<br> L est à gauche de $O$.',\n 'Effacer $[OG]$ et le noms des points.',\n `Tracer en rouge $[AC]$, $[LG]$, $[GK]$, $[GD]$, $[OH]$, $[AF]$, $[CE]$ et l'arc $${myArcCommand}{AC}$ de centre $O$ situé sous le point $O$.`\n ], 1)\n texte += infoMessage({\n titre: 'Les oiseaux sortent de l\\'œuf, c\\'est bien connu !',\n texte: texteMessage(9, 'oiseau'),\n couleur: 'nombres'\n })\n }\n break\n case 2: {\n // Adaptation de la taille de la fenêtre\n anim.taille(1200, 1200)\n // Les points\n const A = point(-2, 11, 'A')\n const B = point(12, 11, 'B')\n const C = point(12, -3, 'C')\n const D = point(-2, -3, 'D')\n anim.regleModifierLongueur()\n // [AB]\n anim.pointCreer(A, { dx: -0.8 })\n anim.regleDroite(A, B, { longueur: 14 })\n anim.regleMasquer()\n anim.pointCreer(B)\n // [AD]\n anim.equerreMontrer()\n anim.equerreDeplacer(A)\n anim.equerreRotation(270)\n anim.regleMontrer()\n anim.regleDeplacer(A)\n anim.regleRotation(270)\n anim.equerreMasquer()\n anim.regleDroite(A, D, { longueur: 14 })\n anim.regleMasquer()\n anim.pointCreer(D, { dx: -0.8 })\n // [DC]\n anim.equerreMontrer()\n anim.equerreDeplacer(D)\n anim.equerreRotation(0)\n anim.regleMontrer()\n anim.regleDeplacer(D)\n anim.regleRotation(0)\n anim.equerreMasquer()\n anim.regleDroite(D, C, { longueur: 14 })\n anim.regleMasquer()\n anim.pointCreer(C)\n // [CB]\n anim.regleMontrer()\n anim.regleDeplacer(C)\n anim.regleRotation(90)\n anim.regleDroite(C, B, { longueur: 14 })\n anim.regleMasquer()\n // Diagonale [BD]\n anim.regleDroite(D, B)\n // les points E,F,G\n const E = point(1.5, 0.5, 'E')\n const F = point(5, 4, 'F')\n const G = point(8.5, 7.5, 'G')\n anim.crayonDeplacer(E)\n anim.pointCreer(E, { dx: -0.8, dy: 0.8 })\n anim.crayonDeplacer(F)\n anim.pointCreer(F, { dx: -0.8, dy: 0.2 })\n anim.crayonDeplacer(G)\n anim.pointCreer(G, { dx: -0.8, dy: 0.8 })\n // Les points H et J\n const H = point(5, -3, 'H')\n const J = point(12, 4, 'J')\n anim.regleMontrer()\n anim.regleRotation(0)\n anim.crayonMontrer()\n anim.crayonDeplacer(H)\n anim.regleMasquer()\n anim.pointCreer(H, { dy: -0.2 })\n anim.regleDeplacer(C)\n anim.regleRotation(90)\n anim.regleMontrer()\n anim.crayonDeplacer(J)\n anim.regleMasquer()\n anim.pointCreer(J)\n anim.regleDeplacer(H)\n anim.regleRotation(45)\n anim.regleSegment(H, J)\n anim.regleMasquer()\n // le point I\n anim.regleDeplacer(A)\n anim.regleRotation(-45)\n const I = point(8.5, 0.5, 'I')\n anim.regleMontrer()\n anim.crayonMontrer()\n anim.crayonDeplacer(I)\n anim.pointCreer(I)\n anim.regleMasquer()\n anim.regleSegment(A, B, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(B, C, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(C, D, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(D, A, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(D, B, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(A, I, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(H, J, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(E, H, { couleur: 'red', epaisseur: 4 })\n anim.regleSegment(G, I, { couleur: 'red', epaisseur: 4 })\n anim.regleMasquer()\n anim.crayonMasquer()\n texte += enumerate([\n 'Tracer un carré ABCD de 14 cm de côté.',\n 'Placer $E$, $F$ et $G$ sur $[DB]$ tels que $DE=EF=FG=GB$.',\n 'Placer $H$ au milieu de $[CD]$.',\n 'Placer $J$ au milieu de $[BC]$.',\n 'La diagonale $[AC]$ coupe $[HJ]$ en $I$',\n 'Tracer en rouge $[AB]$, $[BC]$, $[CD]$, $[DA]$, $[DB]$, $[AI]$, $[HJ]$, $[EH]$, $[GI]$.'\n ], 1)\n texte += infoMessage({\n titre: 'Toute sorte de personnage peut sortir de ce drôle de carré, c\\'est bien connu !',\n texte: texteMessage(7, 'tangram'),\n couleur: 'nombres'\n })\n }\n break\n case 3:\n samLoyd('v1')\n break\n case 4:\n samLoyd('v2')\n break\n }\n\n if (this.sup2) {\n texte += anim.htmlBouton(this.numeroExercice)\n }\n this.contenu = texte\n this.listeQuestions[0] = this.contenu\n }\n this.besoinFormulaireNumerique = ['Type de puzzle', 4, '1 : Oeuf magique\\n 2 : Tangram\\n 3 : Sam Loyd \\n 4 : Sam Loyd bis']\n this.besoinFormulaire2CaseACocher = ['Animation disponible']\n}\n"],"names":["dateDePublication","titre","ref","uuid","PuzzlesGeometriques","Exercice","type","anim","Alea2iep","texte","texteGras","texteMessage","nbPieces","nbFig","randint","sortie","enumerateSansPuceSansNumero","context","samLoyd","version","point","A","B","C","D","E","E1","F","F1","G","G1","H","H1","I","enumerate","infoMessage","A1","O","C1","B1","D1","L","K","myArcCommand","J"],"mappings":"qMASY,MAACA,EAAoB,aAEpBC,EAAQ,sCACRC,EAAM,OACNC,EAAO,QAQL,SAASC,GAAuB,CAC7CC,EAAS,KAAK,IAAI,EAClB,KAAK,MAAQJ,EACb,KAAK,YAAc,EACnB,KAAK,sBAAwB,GAE7B,KAAK,oBAAsB,GAC3B,KAAK,IAAM,EACX,KAAK,KAAO,GACZ,KAAK,aAAe,MACpB,KAAK,cAAgB,CAAC,SAAU,QAAQ,EAExC,KAAK,gBAAkB,UAAY,CACjC,MAAMK,EAAO,SAAS,KAAK,GAAG,EACxBC,EAAO,IAAIC,EAEjBD,EAAK,aAAe,EACpBA,EAAK,aAAe,GAEpBA,EAAK,QAAU,GACfA,EAAK,KAAO,GACZA,EAAK,KAAO,GACZ,IAAIE,EACJA,EAAQC,EAAU,2BAA2B,EAS7C,MAAMC,EAAe,CAACC,EAAUN,IAAS,CACvC,IAAIO,EACJ,OAAQP,EAAI,CACV,IAAK,SACL,IAAK,UACHO,EAAQC,EAAQ,EAAG,EAAE,EACrB,MACF,IAAK,UACHD,EAAQC,EAAQ,EAAG,CAAC,EACpB,KACH,CACD,IAAIC,EAASC,EAA4B,CACvC,gBAAgBJ,CAAQ,4CACxB,oCACD,EAAE,GAAG,EACN,OAAIK,EAAQ,OACVF,GAAU,oEAAoET,CAAI,GAAGO,CAAK,UAE1FE,GAAU,uDAAuDT,CAAI,GAAGO,CAAK,uCAExEE,CACR,EAMKG,EAAWC,GAAY,CAE3BZ,EAAK,OAAO,IAAK,GAAG,EACpBA,EAAK,MAAM,gDAAiDa,EAAM,GAAI,EAAE,CAAC,EAEzE,IAAIC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAIC,EAAGC,EAAIC,EAAGC,EAAIC,EAAGC,EAAIC,EAC5C,OAAQd,EAAO,CACb,IAAK,KACHE,EAAID,EAAM,MAAO,KAAO,GAAG,EAC3BE,EAAIF,EAAM,EAAG,MAAO,GAAG,EACvBG,EAAIH,EAAM,KAAM,KAAM,GAAG,EACzBI,EAAIJ,EAAM,MAAO,KAAM,GAAG,EAC1BK,EAAIL,EAAM,MAAO,KAAM,GAAG,EAC1BO,EAAIP,EAAM,MAAO,GAAI,GAAG,EACxBS,EAAIT,EAAM,EAAG,GAAI,GAAG,EACpBW,EAAIX,EAAM,EAAG,EAAG,GAAG,EACnBa,EAAIb,EAAM,KAAM,KAAM,GAAG,EACzB,MACF,IAAK,KAEHC,EAAID,EAAM,IAAK,MAAO,GAAG,EACzBE,EAAIF,EAAM,KAAM,MAAO,GAAG,EAC1BG,EAAIH,EAAM,KAAM,KAAM,GAAG,EACzBI,EAAIJ,EAAM,IAAM,KAAM,GAAG,EACzBM,EAAKN,EAAM,IAAM,GAAI,KAAK,EAC1BQ,EAAKR,EAAM,IAAM,MAAO,KAAK,EAC7BU,EAAKV,EAAM,KAAM,GAAI,KAAK,EAC1BY,EAAKZ,EAAM,EAAG,KAAM,KAAK,EAEzBK,EAAIL,EAAM,IAAM,KAAM,GAAG,EACzBO,EAAIP,EAAM,EAAG,GAAI,GAAG,EACpBS,EAAIT,EAAM,KAAM,KAAM,GAAG,EACzBW,EAAIX,EAAM,IAAK,KAAM,GAAG,EACxBa,EAAIb,EAAM,KAAM,KAAM,GAAG,EACzB,KACH,CAEDb,EAAK,WAAWc,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxCd,EAAK,WAAWe,EAAG,CAAE,GAAI,EAAG,CAAE,EAC9Bf,EAAK,WAAWgB,EAAG,CAAE,GAAI,GAAI,CAAE,EAC/BJ,IAAY,KAAOZ,EAAK,WAAWiB,EAAG,CAAE,GAAI,GAAM,CAAA,EAAIjB,EAAK,WAAWiB,EAAG,CAAE,GAAI,IAAM,GAAI,IAAM,EAC3FL,IAAY,OACdZ,EAAK,WAAWkB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxClB,EAAK,WAAWoB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxCpB,EAAK,WAAWsB,EAAG,CAAE,GAAI,EAAG,CAAE,EAC9BtB,EAAK,WAAWwB,EAAG,CAAE,GAAI,EAAG,CAAE,GAE5BZ,IAAY,OACdZ,EAAK,WAAWmB,EAAI,CAAE,GAAI,IAAM,GAAI,GAAK,EACzCnB,EAAK,WAAWqB,EAAI,CAAE,GAAI,IAAM,GAAI,GAAK,EACzCrB,EAAK,WAAWuB,EAAI,CAAE,GAAI,GAAK,GAAI,GAAK,EACxCvB,EAAK,WAAWyB,EAAI,CAAE,GAAI,IAAM,GAAI,GAAK,GAE3CzB,EAAK,WAAW0B,EAAG,CAAE,GAAI,EAAG,CAAE,EAE9B1B,EAAK,wBAAyB,EAC9BA,EAAK,aAAac,EAAGC,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDf,EAAK,aAAae,EAAGC,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDhB,EAAK,aAAagB,EAAGC,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDjB,EAAK,aAAaiB,EAAGH,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDd,EAAK,aAAaiB,EAAGS,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACpDd,IAAY,OACdZ,EAAK,aAAaqB,EAAIE,EAAI,CAAE,WAAY,QAAS,QAAS,OAAQ,UAAW,CAAC,CAAE,EAChFvB,EAAK,aAAamB,EAAIO,EAAG,CAAE,WAAY,QAAS,QAAS,OAAQ,UAAW,CAAC,CAAE,EAC/E1B,EAAK,aAAae,EAAGU,EAAI,CAAE,WAAY,QAAS,QAAS,OAAQ,UAAW,CAAC,CAAE,EAC/EzB,EAAK,aAAc,EACnBA,EAAK,WAAWkB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxClB,EAAK,WAAWoB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxCpB,EAAK,WAAWsB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxCtB,EAAK,WAAWwB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxCxB,EAAK,aAAc,GAErBA,EAAK,aAAaoB,EAAGE,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDtB,EAAK,aAAae,EAAGS,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDxB,EAAK,aAAakB,EAAGQ,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EAExD1B,EAAK,aAAc,EACnBA,EAAK,cAAe,EAEhBY,IAAY,OACdV,GAASyB,EAAU,CACjB,mEACA,8FACD,EAAE,CAAC,GAEFf,IAAY,OACdV,GAASyB,EAAU,CACjB,2EACA,yEACA,4FACA,uDACA,yDACA,2DACA,uDACA,wDACD,EAAE,CAAC,GAEFjB,EAAQ,OACVR,GAAS,8FAA8FU,CAAO,UAE9GV,GAAS,gFAAgFU,CAAO,uCAElGV,GAAS0B,EAAY,CACnB,MAAO,YAAYhB,CAAO,KAC1B,MAAOR,EAAa,EAAG,SAAS,EAChC,QAAS,SACjB,CAAO,CACF,EAED,OAAQL,EAAI,CACV,IAAK,GAAG,CAENC,EAAK,OAAO,KAAM,IAAI,EAEtB,MAAM6B,EAAKhB,EAAM,GAAI,CAAC,EAChBC,EAAID,EAAM,GAAI,EAAG,GAAG,EACpBiB,EAAIjB,EAAM,EAAG,EAAG,GAAG,EACnBkB,EAAKlB,EAAM,GAAI,CAAC,EAChBG,EAAIH,EAAM,GAAI,EAAG,GAAG,EACpBmB,EAAKnB,EAAM,EAAG,GAAI,aAAc,EAChCE,EAAIF,EAAM,EAAG,GAAI,GAAG,EACpBI,EAAIJ,EAAM,EAAG,GAAI,GAAG,EACpBoB,EAAKpB,EAAM,EAAG,EAAE,EAEtBb,EAAK,sBAAuB,EAC5BA,EAAK,YAAY6B,EAAIE,EAAI,CAAE,SAAU,GAAI,EACzC/B,EAAK,aAAc,EACnBA,EAAK,cAAe,EACpBA,EAAK,WAAW,cAAe+B,CAAE,EACjC/B,EAAK,WAAW8B,EAAG,CAAE,GAAI,GAAK,GAAI,IAAM,EACxC9B,EAAK,eAAgB,EACrBA,EAAK,gBAAgB8B,CAAC,EACtB9B,EAAK,gBAAgB,GAAG,EACxBA,EAAK,aAAc,EACnBA,EAAK,cAAciC,CAAE,EACrBjC,EAAK,cAAc,EAAE,EACrBA,EAAK,eAAgB,EACrBA,EAAK,YAAYiC,EAAID,EAAI,CAAE,SAAU,GAAI,EACzChC,EAAK,aAAc,EACnBA,EAAK,cAAe,EACpBA,EAAK,WAAW,gBAAkBgC,CAAE,EAEpChC,EAAK,uBAAuB,CAAC,EAC7BA,EAAK,aAAc,EACnBA,EAAK,wBAAwB8B,EAAGd,CAAC,EACjChB,EAAK,cAAe,EACpBA,EAAK,WAAWc,EAAG,CAAE,GAAI,GAAK,GAAI,IAAM,EACxCd,EAAK,WAAWe,EAAG,CAAE,GAAI,GAAK,GAAI,IAAM,EACxCf,EAAK,WAAWgB,EAAG,CAAE,GAAI,GAAK,GAAI,IAAM,EACxChB,EAAK,WAAWiB,EAAG,CAAE,GAAI,GAAK,GAAI,IAAM,EAExCjB,EAAK,4BAA4Bc,EAAGC,EAAG,CAAE,SAAU,GAAI,EACvDf,EAAK,4BAA4BgB,EAAGD,EAAG,CAAE,SAAU,GAAI,EACvDf,EAAK,aAAc,EACnBA,EAAK,qBAAqBc,EAAGE,CAAC,EAC9BhB,EAAK,uBAAuB,EAAG,GAAI,CAAE,QAAS,MAAO,UAAW,EAAG,EACnE,MAAMoB,EAAIP,EAAM,IAAK,KAAM,GAAG,EAC9Bb,EAAK,WAAWoB,EAAG,CAAE,GAAI,IAAM,GAAI,IAAM,EACzCpB,EAAK,qBAAqBgB,EAAGF,CAAC,EAC9Bd,EAAK,uBAAuB,IAAK,IAAK,CAAE,QAAS,MAAO,UAAW,EAAG,EACtE,MAAMkB,EAAIL,EAAM,IAAK,KAAM,GAAG,EAC9Bb,EAAK,WAAWkB,EAAG,CAAE,GAAI,IAAM,GAAI,IAAM,EACzClB,EAAK,qBAAqBe,EAAGK,CAAC,EAC9BpB,EAAK,uBAAuB,GAAI,IAAK,CAAE,QAAS,MAAO,UAAW,EAAG,EACrE,MAAMwB,EAAIX,EAAM,EAAG,KAAM,GAAG,EAC5Bb,EAAK,WAAWwB,EAAG,CAAE,GAAI,GAAK,GAAI,IAAM,EACxCxB,EAAK,eAAeiB,CAAC,EACrBjB,EAAK,uBAAuB,GAAI,EAAE,EAClC,MAAMsB,EAAIT,EAAM,EAAG,IAAK,GAAG,EAC3Bb,EAAK,WAAWsB,EAAG,CAAE,GAAI,GAAK,GAAI,IAAM,EACxCtB,EAAK,eAAesB,CAAC,EACrBtB,EAAK,uBAAuB,GAAI,GAAG,EACnCA,EAAK,cAAe,EACpB,MAAMkC,EAAIrB,EAAM,IAAK,EAAG,GAAG,EAC3Bb,EAAK,WAAWkC,EAAG,CAAE,GAAI,IAAM,GAAI,IAAM,EACzC,MAAMC,EAAItB,EAAM,IAAK,EAAG,GAAG,EAC3Bb,EAAK,WAAWmC,EAAG,CAAE,GAAI,GAAK,GAAI,IAAM,EACxCnC,EAAK,aAAac,EAAGE,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDhB,EAAK,aAAakC,EAAGZ,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDtB,EAAK,aAAasB,EAAGa,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDnC,EAAK,aAAasB,EAAGL,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDjB,EAAK,aAAa8B,EAAGN,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDxB,EAAK,aAAac,EAAGM,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDpB,EAAK,aAAagB,EAAGE,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDlB,EAAK,aAAc,EACnBA,EAAK,cAAe,EACpBA,EAAK,eAAe8B,CAAC,EACrB9B,EAAK,qBAAqB8B,EAAGhB,CAAC,EAC9Bd,EAAK,uBAAuB,IAAK,IAAK,CAAE,QAAS,MAAO,UAAW,EAAG,EACtEA,EAAK,cAAe,EACpB,IAAIoC,EACJ1B,EAAQ,SAAW,GAAO0B,EAAe,cAAgBA,EAAe,cACxElC,GAASyB,EAAU,CACjB,8FACA,mDACA,+DACA,kEACA,2CACA,wFAAwFS,CAAY,SACpG,wFAAwFA,CAAY,SACpG,0BAA0BA,CAAY,uEACtC,2EACA,6GACA,wCACA,oFAAoFA,CAAY,8CACjG,EAAE,CAAC,EACJlC,GAAS0B,EAAY,CACnB,MAAO,mDACP,MAAOxB,EAAa,EAAG,QAAQ,EAC/B,QAAS,SACnB,CAAS,CACF,CACC,MACF,IAAK,GAAG,CAENJ,EAAK,OAAO,KAAM,IAAI,EAEtB,MAAMc,EAAID,EAAM,GAAI,GAAI,GAAG,EACrBE,EAAIF,EAAM,GAAI,GAAI,GAAG,EACrBG,EAAIH,EAAM,GAAI,GAAI,GAAG,EACrBI,EAAIJ,EAAM,GAAI,GAAI,GAAG,EAC3Bb,EAAK,sBAAuB,EAE5BA,EAAK,WAAWc,EAAG,CAAE,GAAI,GAAI,CAAE,EAC/Bd,EAAK,YAAYc,EAAGC,EAAG,CAAE,SAAU,GAAI,EACvCf,EAAK,aAAc,EACnBA,EAAK,WAAWe,CAAC,EAEjBf,EAAK,eAAgB,EACrBA,EAAK,gBAAgBc,CAAC,EACtBd,EAAK,gBAAgB,GAAG,EACxBA,EAAK,aAAc,EACnBA,EAAK,cAAcc,CAAC,EACpBd,EAAK,cAAc,GAAG,EACtBA,EAAK,eAAgB,EACrBA,EAAK,YAAYc,EAAGG,EAAG,CAAE,SAAU,GAAI,EACvCjB,EAAK,aAAc,EACnBA,EAAK,WAAWiB,EAAG,CAAE,GAAI,GAAI,CAAE,EAE/BjB,EAAK,eAAgB,EACrBA,EAAK,gBAAgBiB,CAAC,EACtBjB,EAAK,gBAAgB,CAAC,EACtBA,EAAK,aAAc,EACnBA,EAAK,cAAciB,CAAC,EACpBjB,EAAK,cAAc,CAAC,EACpBA,EAAK,eAAgB,EACrBA,EAAK,YAAYiB,EAAGD,EAAG,CAAE,SAAU,GAAI,EACvChB,EAAK,aAAc,EACnBA,EAAK,WAAWgB,CAAC,EAEjBhB,EAAK,aAAc,EACnBA,EAAK,cAAcgB,CAAC,EACpBhB,EAAK,cAAc,EAAE,EACrBA,EAAK,YAAYgB,EAAGD,EAAG,CAAE,SAAU,GAAI,EACvCf,EAAK,aAAc,EAEnBA,EAAK,YAAYiB,EAAGF,CAAC,EAErB,MAAMG,EAAIL,EAAM,IAAK,GAAK,GAAG,EACvBO,EAAIP,EAAM,EAAG,EAAG,GAAG,EACnBS,EAAIT,EAAM,IAAK,IAAK,GAAG,EAC7Bb,EAAK,eAAekB,CAAC,EACrBlB,EAAK,WAAWkB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxClB,EAAK,eAAeoB,CAAC,EACrBpB,EAAK,WAAWoB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EACxCpB,EAAK,eAAesB,CAAC,EACrBtB,EAAK,WAAWsB,EAAG,CAAE,GAAI,IAAM,GAAI,GAAK,EAExC,MAAME,EAAIX,EAAM,EAAG,GAAI,GAAG,EACpBwB,EAAIxB,EAAM,GAAI,EAAG,GAAG,EAC1Bb,EAAK,aAAc,EACnBA,EAAK,cAAc,CAAC,EACpBA,EAAK,cAAe,EACpBA,EAAK,eAAewB,CAAC,EACrBxB,EAAK,aAAc,EACnBA,EAAK,WAAWwB,EAAG,CAAE,GAAI,GAAI,CAAE,EAC/BxB,EAAK,cAAcgB,CAAC,EACpBhB,EAAK,cAAc,EAAE,EACrBA,EAAK,aAAc,EACnBA,EAAK,eAAeqC,CAAC,EACrBrC,EAAK,aAAc,EACnBA,EAAK,WAAWqC,CAAC,EACjBrC,EAAK,cAAcwB,CAAC,EACpBxB,EAAK,cAAc,EAAE,EACrBA,EAAK,aAAawB,EAAGa,CAAC,EACtBrC,EAAK,aAAc,EAEnBA,EAAK,cAAcc,CAAC,EACpBd,EAAK,cAAc,GAAG,EACtB,MAAM0B,EAAIb,EAAM,IAAK,GAAK,GAAG,EAC7Bb,EAAK,aAAc,EACnBA,EAAK,cAAe,EACpBA,EAAK,eAAe0B,CAAC,EACrB1B,EAAK,WAAW0B,CAAC,EACjB1B,EAAK,aAAc,EACnBA,EAAK,aAAac,EAAGC,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDf,EAAK,aAAae,EAAGC,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDhB,EAAK,aAAagB,EAAGC,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDjB,EAAK,aAAaiB,EAAGH,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDd,EAAK,aAAaiB,EAAGF,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDf,EAAK,aAAac,EAAGY,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxD1B,EAAK,aAAawB,EAAGa,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDrC,EAAK,aAAakB,EAAGM,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxDxB,EAAK,aAAasB,EAAGI,EAAG,CAAE,QAAS,MAAO,UAAW,EAAG,EACxD1B,EAAK,aAAc,EACnBA,EAAK,cAAe,EACpBE,GAASyB,EAAU,CACjB,yCACA,4DACA,kCACA,kCACA,0CACA,yFACD,EAAE,CAAC,EACJzB,GAAS0B,EAAY,CACnB,MAAO,iFACP,MAAOxB,EAAa,EAAG,SAAS,EAChC,QAAS,SACnB,CAAS,CACF,CACC,MACF,IAAK,GACHO,EAAQ,IAAI,EACZ,MACF,IAAK,GACHA,EAAQ,IAAI,EACZ,KACH,CAEG,KAAK,OACPT,GAASF,EAAK,WAAW,KAAK,cAAc,GAE9C,KAAK,QAAUE,EACf,KAAK,eAAe,CAAC,EAAI,KAAK,OAC/B,EACD,KAAK,0BAA4B,CAAC,iBAAkB,EAAG;AAAA;AAAA;AAAA,kBAAmE,EAC1H,KAAK,6BAA+B,CAAC,sBAAsB,CAC7D"}