/*
 Joel Espinosa Longi
 joel.espinosa@amite.mx
 j.longi@gmail.com
 LGPL - http://www.gnu.org/licenses/lgpl.html
 2013-07-30
*/
var babel=function(a){if(a.loadLib)return a;a.falso=a["false"]=a.fals=a.gezurra=a.faux=a.fals="false";a.verdadero=a["true"]=a.veritable=a.egia=a.vrai=a.verdadeiro=a.veritable="true";a.no=a.ez=a.non=a["n\u00e3o"]="false";a["s\u00ed"]=a.yes=a.bai=a.oui=a.si=a["sim "]="true";a.negro=a.black=a.negre=a.beltza=a.noir=a.preto="#000000";a.maxenta=a.magenta="#ff00ff";a.azul=a.blue=a.blau=a.urdina=a.bleu="#0000ff";a.turquesa=a.cyan=a.turkesa=a.turquoise="#00ffff";a.verde=a.green=a.verd=a.berdea=a.vert="#00ff00";
a.amarillo=a.yellow=a.groc=a.horia=a.jaune=a.amarelo="#ffff00";a.naranja=a.orange=a.taronja=a.laranja=a.laranxa="#ffc800";a.rojo=a.red=a.vermell=a.gorria=a.rouge=a.vermello=a.vermelho="#ff0000";a.pink=a.rosa=a.arrosa=a.rose="#ffafaf";a.grisObscuro=a.darkGray=a.grisFosc=a["gris iluna"]=a.grisObscur=a.grisEscuro=a.cinzaEscuro="#404040";a.gris=a.gray=a.grisa=a.cinza="#808080";a.grisClaro=a.lightGray=a.grisClar=a["gris argia"]=a.grisClair=a.cinzaClaro="#c0c0c0";a.blanco=a.white=a.blanc=a.zuria=a.branco=
"#ffffff";a.escala=a.scale=a.eskala=a["\u00e9chelle"]="scale";a.nombre=a.name=a.nom=a.izena=a.nome="name";a.ikusgai=a["vis\u00edvel"]=a.visible="visible";a.rastro=a.trace=a.rastre=a.arrastoa="trace";a.fondo=a.background=a.fons=a.hondoa=a.fond=a.fundo="background";a.colour=a.color=a.kolorea=a.couleur=a.cor="color";a["par\u00e1metro"]=a.parameter=a.parametroa=a["par\u00e2metro"]=a["par\u00e0metre"]="parameter";a["sucesi\u00f3n"]=a.sequence=a["successi\u00f3"]=a.segida=a.succession=a["seq\u00fc\u00eancia"]=
"sequence";a["tama\u00f1o"]=a.size=a.neurria=a.taille=a.tamanho=a["grand\u00e0ria"]="size";a.decimales=a.decimals=a.hamartarra=a["d\u00e9cimales"]=a.decimais="decimals";a.red=a.net=a.xarxa=a.sarea=a["r\u00e9seau"]=a.rede=a.malha="net";a.red10=a.net10=a.xarxa10=a.sarea10=a["r\u00e9seau10"]=a.rede10=a.malha10="net10";a.ejes=a.axes=a.eixos=a.ardatzak=a.eixes="axes";a.texto=a.text=a.testua=a.texte="text";a["cr\u00e9ditos"]=a.about=a["cr\u00e8dits"]=a.kreditoak=a["cr\u00e9dits"]=a.sobre="about";a.config=
a.konfig=a["configura\u00e7\u00e3o"]="config";a.inicio=a.init=a.inici=a.hasiera=a.commencement=a["in\u00edcio"]="init";a.limpiar=a.clear=a.neteja=a.ezabatu=a.nettoye=a.limpar="clear";a.incr=a.gehi=a.incremento="incr";a.min=a.inf="min";a.max=a.sup=a["m\u00e1x"]="max";a.relleno=a.fill=a.ple=a.betea=a.plein=a.recheo=a.preencher="fill";a["relleno+"]=a["fill+"]=a["ple+"]=a["betea+"]=a["plein+"]=a["recheo+"]=a["preencher+"]="fillP";a["relleno-"]=a["fill-"]=a["ple-"]=a["betea-"]=a["plein-"]=a["recheo-"]=
a["preencher-"]="fillM";a.flecha=a.arrow=a.fletxa=a.gezia=a["fl\u00e8che"]=a.frecha=a.seta="arrow";a.ancho=a.width=a.ample=a.zabalera=a.large=a.largura="width";a.punta=a.spear=a.muturra=a.pointe=a.ponta="spear";a["regi\u00f3n"]=a.region=a["regi\u00f3"]=a.eskualde=a["r\u00e9gion"]=a["rexi\u00f3n"]=a["regi\u00e3o"]="region";a.norte=a.north=a.nord=a.ipar="north";a.sur=a.south=a.sud=a.hego=a.sul="south";a.este=a.east=a.est=a.ekialde=a.leste="east";a.oeste=a.west=a.oest=a.hegoalde=a.ouest="west";a.exterior=
a.external=a.kanpoalde=a.externo="external";a["expresi\u00f3n"]=a.expresion=a["expresi\u00f3"]=a.adierazpen=a["express\u00e3o"]="expresion";a.tipo=a.type=a.tipus=a.mota="type";a["posici\u00f3n"]=a.position=a["posici\u00f3"]=a.posizio=a["posi\u00e7\u00e3o"]="position";a["constricci\u00f3n"]=a.constraint=a["constricci\u00f3"]=a.beharte=a.constriction=a["constrici\u00f3n"]=a["restri\u00e7\u00e3o"]="constraint";a.valor=a.value=a.balio=a.valeur="value";a["ecuaci\u00f3n"]=a.equation=a["equaci\u00f3"]=a.ekuazio=
a["\u00e9quation"]=a["equa\u00e7\u00e3o"]="equation";a.curva=a.curve=a.corba=a.kurba=a.courbe="curve";a.texto=a.text=a.testu=a.texte="text";a.punto=a.point=a.punt=a.puntu=a.ponto="point";a.segmento=a.segment=a.zuzenki="segment";a.arco=a.arc=a.arku="arc";a["pol\u00edgono"]=a.polygon=a["pol\u00edgon"]=a.poligono=a.polygone="polygon";a.imagen=a.image=a.imatge=a.irudi=a.imaxe=a.imagem="image";a["Versi\u00f3n"]=a.Version=a["Versi\u00f3"]=a["Vers\u00e3o"]="version";a.Idioma=a.Language=a.Hizkuntza=a.Langue=
"language";a["O.x"]="O.x";a["O.y"]="O.y";a.Botones=a.Buttons=a.Botons=a.Botoiak=a.Boutons=a["Bot\u00f3ns"]=a["Bot\u00f5es"]=a.Botons="Buttons";a["Animaci\u00f3n"]=a.Animation=a["Animaci\u00f3"]=a.Animazio=a["Anima\u00e7\u00e3o"]="Animation";a.constante=a.constant=a.Konstante="constant";a.fuente=a.font=a.iturri=a.source=a.fonte="font";a["num\u00e9rico"]=a.numeric=a["num\u00e8ric"]=a.zenbakizko=a["num\u00e9rique"]="numeric";a["gr\u00e1fico"]=a.graphic=a["gr\u00e0fic"]=a.grafiko=a.graphique="graphic";
a.texto=a.text=a.testu=a.texte="text";a.inicio=a.init=a.inici=a.hasiera=a.commencement=a["in\u00edcio"]="init";a.hacer=a["do"]=a.fer=a.egin=a.faire=a.facer=a.fazer="doExpr";a.mientras=a["while"]=a.mentre=a.bitartean=a["tandis que"]=a.mentres=a.enquanto="whileExpr";a.evaluar=a.evaluate=a.avalua=a.ebaluatu=a["\u00e9valuer"]=a.avaliar="evaluate";a.variable=a.aldagaia=a["vari\u00e1vel"]="variable";a["funci\u00f3n"]=a["function"]=a["funci\u00f3"]=a.funtzio=a.fonction=a["fun\u00e7\u00e3o"]="function";a.algoritmo=
a.algorithm=a.algorisme=a.algorithme="algorithm";a.vector=a.array=a.bektore=a.vecteur=a.matriz="array";a["dibujar-si"]=a["draw-if"]=a["marraztu-baldin"]=a["dessiner-si"]=a["debuxar-se"]=a["desenhar-se"]=a["dibuixa-si"]="drawif";a.dominio=a.range=a.domini=a["izate-eremua"]=a.domain=a["dom\u00ednio"]="range";a.pausa=a.delay=a.eten="delay";a["eje-x"]=a["x-axis"]=a["eix-x"]=a["x-ardatza"]=a["axe-x"]=a["eixe-x"]=a["eixo-x"]="x_axis";a["eje-y"]=a["y-axis"]=a["eix-y"]=a["y-ardatza"]=a["axe-y"]=a["eixe-y"]=
a["eixo-y"]="y_axis";a["n\u00fameros"]=a.numbers=a.nombres=a.zenbakiak="numbers";a["exponencial-si"]=a["exponential-if"]=a["esponentzial-baldin"]=a["exponentiel-si"]=a["exponencial-se"]="exponentialif";a.familia=a.family=a["fam\u00edlia"]=a.famille="family";a.intervalo=a.interval=a.tarte=a.intervalle="interval";a.pasos=a.steps=a.passos=a.pausoak=a.pas="steps";a.centro=a.center=a.centre=a.zentro="center";a.radio=a.radius=a.radi=a.erradio=a.rayon=a.raio="radius";a.fin=a.end=a.fi=a.bukaera=a.fim="end";
a["una-sola-vez"]=a["only-once"]=a["una-sola-vegada"]=a["behin-bakarrik"]=a["une-seule-fois"]=a["unha-soa-vez"]=a["apenas-uma-vez"]="onlyOnce";a.siempre=a.always=a.sempre=a.beti=a.toujours="always";a["color-int"]=a["int-colour"]=a["barruko-kolore"]=a["couleur-int"]=a["cor-int"]="colorInt";a.repetir=a.loop=a.repeteix=a.errepikatu=a["r\u00e9p\u00e9ter"]="loop";a.controles=a.controls=a.kontrolak=a["contr\u00f4les"]=a.controis="controls";a.animar=a.animate=a.anima=a.animatu=a.animer="animate";a.auto=
"auto";a.alto=a.height=a.alt=a.altu=a.haut=a.altura="height";a.x=a.left="x";a.y=a.top="y";a.espacio=a.space=a.espai=a.espazio=a.espace=a.espazo=a["espa\u00e7o"]="space";a.Nu="Nu";a.Nv="Nv";a.ancho=a.depth=a.amplada=a.zabalera=a.largeur=a.ancho=a.profundidade=a.amplada="width";a.largo=a.length=a.llargada=a.luzera=a.longueur=a.longo=a.comprimento=a.llargada="length";a.alto=a.height=a["al\u00e7ada"]=a.altu=a.hauteur=a.alto=a.altura=a["al\u00e7ada"]="height";a.color_reverso=a.backcolor=a.color_revers=
a["atzealde kolorea"]=a.couleur_revers=a.cor_reverso=a.cor_de_fundo="backcolor";a.aristas=a.edges=a.arestes=a.ertzak=a["ar\u00eates"]=a.arestas="edges";a.rotini=a.inirot="inirot";a.posini=a.inipos="inipos";a["tri\u00e1ngulo"]=a.triangle=a.hirukia=a["tri\u00e2ngulo"]="triangle";a.cara=a.face=a.aurpegi="face";a.polireg=a.regpoly=a["pol\u00edgonoRegular"]="polireg";a.superficie=a.surface=a["superf\u00edcie"]=a.azalera="surface";a.cubo=a.cube=a.cub=a.kubo="cube";a["paralelep\u00edpedo"]=a.box=a["paral\u00b7lelep\u00edpede"]=
a.paralelepipedo=a["parall\u00e9l\u00e9pip\u00e8de"]="box";a.cono=a.cone=a.con=a.kono=a["c\u00f4ne"]="cone";a.cilindro=a.cylinder=a.cilindre=a.zilindro=a.cylindre="cylinder";a.esfera=a.sphere=a["sph\u00e8re"]="sphere";a.tetraedro=a.tetrahedron=a.tetraedre=a["t\u00e9tra\u00e8dre"]="tetrahedron";a.octaedro=a["octahedron="]=a.octaedre=a.oktaedro=a["octa\u00e8dre"]="octahedron";a.dodecaedro=a.dodecahedron=a.dodecaedre=a.dodekaedro=a["dod\u00e9ca\u00e8dre"]="dodecahedron";a.icosaedro=a.icosahedron=a.icosaedre=
a.ikosaedro=a["icosa\u00e8dre"]="icosahedron";a.elipsoide=a.ellipsoid=a["el\u00b7lipsoide"]=a["ellipso\u00efde"]=a["elips\u00f3ide"]="ellipsoid";a.macro=a.makro="macro";a.id="id";a.modelo=a.model=a.eredu=a["mod\u00e8le"]="model";a.color=a.kolore=a.couleur=a.cor="color";a.luz=a.light=a.llum=a.argia=a["lumi\u00e8re"]="light";a.metal=a.metall=a["m\u00e9tal"]="metal";a.alambre=a.wire=a.filferro=a.alanbre=a["fil de fer"]=a.arame="wire";a.cortar=a.split=a.talla=a.moztu=a.couper=a.dividir="split";a.despliegue=
a.render=a.desplegament=a.zabaltze=a["d\u00e8ploiement"]=a.despregamento=a.processar="render";a.orden=a.sort=a.ordre=a.ordena=a.orde=a.ordenar="sort";a.pintor=a.painter=a.margolari=a.peintre="painter";a["trazado de rayos"]=a["ray trace"]=a["tra\u00e7at de raigs"]=a["izpi trazadura"]=a["trace de rayons"]=a["trazado de raios"]=a["tra\u00e7ado de raios"]="raytrace";a.imagen=a.bg_image=a.imatge=a.irudia=a.imaxe=a.imagem_de_fundo="image";a.despl_imagen=a.bg_display=a.despl_imatge=a["irudi desplazamendu"]=
a.despl_image=a.despr_imaxe=a["apresenta\u00e7\u00e3o_de_imagem"]="bg_display";a["arr-izq"]=a.topleft=a["dalt-esq"]=a["goi-ezk"]=a["au-dessus-gau"]=a["arr-esq"]=a["acima-esquerda"]="topleft";a["expand."]=a.stretch=a.hedatu=a["expandir "]="stretch";a.mosaico=a.patch=a.mosaic=a.mosaiko=a["mosa\u00efque"]="patch";a.centrada=a.center=a.zentratu=a["centr\u00e9e"]=a.centrado="center";a.archivo=a.file=a.fitxer=a.artxibo=a.fichier=a.arquivo="file";a.tipo_de_macro=a.macro_type=a.tipus_de_macro=a.makro_mota=
a.type_de_macro=a.tipo_de_macro=a.tipo_de_macro=a.tipus_de_macro="macro_type";a.filas_norte=a.rows_north=a.files_nord=a["HTML kodea"]=a.files_nord=a.filas_norte=a.linhas_norte=a.files_nord="rowsNorth";a.filas_sur=a.rows_south=a.files_sud=a.ipar_lerro=a.files_sud=a.filas_sur=a.linhas_sul=a.files_sud="rowsSouth";a.ancho_este=a.width_east=a.ample_est=a.hego_lerro=a.ample_est=a.ancho_leste=a.largura_leste=a.ample_est="widthEast";a.ancho_oeste=a.width_west=a.ample_oest=a.ekialde_zabalera=a.ample_ouest=
a.ancho_oeste=a.largura_oeste=a.ample_oest="widthWest";a.fijo=a.fixed=a.fix=a.hegoalde_zabalera=a.fixe=a.fixo="fixed";a["Reiniciar Animaci\u00f3n"]=a["Init Animation"]=a["Reinicia Animaci\u00f3"]=a.finko=a["Recommencer l'Animation"]=a["Reiniciar Anima\u00e7\u00e3o"]="initAnimation";a["Explicaci\u00f3n"]=a.Explanation=a.Azalpena=a.Explication=a["Explica\u00e7\u00e3o"]=a["Explicaci\u00f3"]="Explanation";a.tooltip=a.dica="tooltip";a.discreto=a.discrete=a.discret=a.diskretu="discrete";a.interfaz=a.gui=
a["interf\u00edcie"]=a.interfaze=a["interface"]="gui";a.pulsador=a.spinner=a.polsador=a.pultsadore=a.bouton="spinner";a["campo de texto"]=a.textfield=a["camp de text"]=a["testu esarrua"]=a["champ de texte"]="textfield";a["men\u00fa"]=a.choice=a.menu=a.escolha="menu";a.barra=a.scrollbar=a.barre="scrollbar";a.opciones=a.options=a.opcions=a.aukerak=a["opci\u00f3ns"]=a["op\u00e7\u00f5es"]="options";a.interior=a.barruko=a["int\u00e9rieur"]="interior";a["condici\u00f3n"]=a.condition=a["condici\u00f3"]=
a.baldintza=a["condi\u00e7\u00e3o"]="condition";a["acci\u00f3n"]=a.action=a["acci\u00f3"]=a.ekintza=a["a\u00e7\u00e3o"]="action";a.evento=a.event=a.esdeveniment=a.gertaera=a["\u00e9v\u00e9nement"]="event";a["abrir URL"]=a["open URL"]=a["obre URL"]=a["URL zabaldu"]=a["ouvrir URL"]="openURL";a["abrir Escena"]=a["open Scene"]=a["obre Escena"]=a["eszena zabaldu"]=a["ouvrir Escena"]=a["abrir Cena"]="openScene";a["bot\u00f3n"]=a.button=a["bot\u00f3"]=a.botoi=a.bouton=a["bot\u00e3o"]="button";a.mensaje=
a.message=a.mezua=a.mensaxe=a.mensagem=a.missatge="message";a.alternar=a.alternate=a.alterna=a.txandakatu=a.alterner="alternate";a["ejecuci\u00f3n"]=a.execution=a["execuci\u00f3"]=a.gauzatze=a["ex\u00e9cution"]=a["execuci\u00f3n"]=a["execu\u00e7\u00e3o"]="execution";a.calcular=a.calculate=a.calcula=a.kalkulatu=a.calculer="calculate";a.coord_abs=a.abs_coord=a.koor_abs="abs_coord";a.negrita=a.bold=a.negreta=a.lodi=a["caract\u00e8re gras"]=a.negra=a.negrito="bold";a.cursiva=a.italics=a.etzana=a.italique=
a["it\u00e1lico"]="italics";a.subrayada=a.underlined=a.subratllat=a.azpimarratua=a.soulignement=a["subli\u00f1ada"]=a.sublinhado="underlined";a.imagen=a.image=a.imatge=a.irundia=a.imaxe=a.imagem="image";a.pos_mensajes=a.msg_pos=a.pos_missatges=a.mezuen_pos=a.pos_messages=a.pos_mensaxes="msg_pos";a.izquierda=a.left=a.esquerra=a.eskerrean=a.gauche=a.esquerda=a.esquerda=a.esquerra="x";a.derecha=a.right=a.dreta=a.eskuinan=a.droite=a.dereita=a.direita=a.dreta="right";a["sensible_a_los_movimientos_del_rat\u00f3n"]=
a.sensitive_to_mouse_movements=a["sensible_als_moviments_del_ratol\u00ed"]=a["xagu mugimenduarekiko sentikorra"]=a.sensible_aux_mouvements_du_souris=a.sensible_aos_movementos_do_rato=a["sens\u00edvel_aos_movimentos_do_mouse"]="sensitive_to_mouse_movements";a.reproducir=a.play=a.reprodueix=a.erreproduzitu=a.reproduire=a.reproduzir="playAudio";a["activo-si"]=a["active-if"]=a["actiu-si"]=a["altiboa-baldin"]=a["actif-si"]=a["activo-se"]=a["ativo-se"]="activeif";a.rotfin=a.finrot=a.bukrot="endrot";a.posfin=
a.finpos=a.bukpos="endpos";a.editable=a.editagarria=a["edit\u00e1vel"]="editable";a.tipo=a.type=a.tipus=a.mota="type";a.R2="R2";a.R3="R3";a.vectores=a.bektoreak=a.vecteurs=a.vetores=a.vectors="vectors";a["fuente puntos"]=a["font size"]=a["font punts"]=a["puntu iturria"]=a["source points"]=a["fonte puntos"]=a["fonte pontos"]="font_size";a["ecuaci\u00f3n"]=a.equation=a["equaci\u00f3"]=a.ekuazio=a["\u00e9quation"]=a["equa\u00e7\u00e3o"]="equation";a.punto=a.dot=a.punt=a.puntu=a.point=a.ponto="point";
a.escenario=a.scenario=a.escenari=a.agertoki=a["sc\u00e8ne"]=a["cen\u00e1rio"]="scenario";a.cID="cID";a.matriz=a.matrix=a.matriu=a.matrice="matrix";a.filas=a.rows=a.files="rows";a.columnas=a.columns=a.colonnes="columns";a.solo_texto=a.only_text=a.seulement_texte=a["s\u00f3_texto"]=a.tan_sols_texte="onlyText";a.evaluar=a.evaluate="evaluate";a.respuesta=a.answer="answer";a.decimal_symbol=a["signo decimal"]=a["decimal symbol"]="decimal_symbol";a.info="info";a.color_contorn_text=a.color_text_border=a.color_borde_texto=
a.muga_testuaren_kolorea=a.couleur_contour_texte=a.cor_borde_texto=a.colore_bordo_testo=a.cor_borda_texto=a.color_contorn_text="border";a.video=a["vid\u00e9o"]="video";a.audio=a["\u00e0udio"]="audio";a.autoplay="autoplay";a.loop="loop";a.poster="poster";a.opacidad=a.opacity=a["opacit\u00e9"]=a.opacitat=a.opacidade="opacity";a.alinear=a.align=a["ali\u00f1ar"]=a.aligner="align";a.malla=a.mesh="mesh";a.local=a.Local="local";a.loadLib=!0;return a}(babel||{}),descartesJS=function(a){function f(a,b,d){a.fillStyle=
"#c0c0c0";a.fillRect(b.offsetLeft,b.offsetTop,b.offsetWidth,b.offsetHeight);h(a,b,d.controls)}function h(a,b,d){for(var e,c=d.length-1;0<=c;c--)e=d[c],a.drawImage(e.getScreenshot(),b.offsetLeft+e.x,b.offsetTop+e.y)}if(a.loadLib)return a;var g=2*Math.PI,b=360/g,c=g/360,d=Math.floor,j,e,p,m,k,q,r,t,n,u;a.rangeOK=1;a.extend=function(a,b){if(a.prototype.__proto__)a.prototype.__proto__=b.prototype;else for(var d in b.prototype)b.prototype.hasOwnProperty(d)&&(a.prototype[d]=b.prototype[d]);a.prototype.uber=
b.prototype};a.radToDeg=function(a){return a*b};a.degToRad=function(a){return a*c};a.convertFont=function(a){if(""==a)return a;j=a.split(",");e="";"bold"==j[1].toLowerCase()?e+="Bold ":"italic"==j[1].toLowerCase()||"italics"==j[1].toLowerCase()?e+="Italic ":"bold+italic"==j[1].toLowerCase()&&(e+="Italic Bold ");e+=j[2]+"px ";p=j[0].split(" ")[0].toLowerCase();return e="serif"===p||"times new roman"===p||"timesroman"===p||"times"===p?e+"'Times New Roman', Times, 'Droid Serif', serif":"sansserif"===
p||"arial"===p||"helvetica"===p?e+"Arial, Helvetica, 'Droid Sans', Sans-serif":e+"'Courier New', Courier, 'Droid Sans Mono', Monospace"};a.drawLine=function(a,b,e,c,l,j,g){a.lineWidth=g||1;a.strokeStyle=j||"black";j=a.lineWidth%2?0.5:0;a.beginPath();a.moveTo(d(b)+j,d(e)+j);a.lineTo(d(c)+j,d(l)+j);a.stroke()};a.getColor=function(a,b){if("string"==typeof b)return b;m=a.evalExpression(b);k=d(255*m[0][0]);q=d(255*m[0][1]);r=d(255*m[0][2]);t=1-m[0][3];return"rgba("+k+","+q+","+r+","+t+")"};a.getFeatures=
function(){a.hasJavaSupport=navigator.javaEnabled();var b=navigator.appVersion.toLowerCase();a.hasTouchSupport=window.hasOwnProperty&&window.hasOwnProperty("ontouchstart")||b.match("android")&&!0;a.hasTouchSupport=navigator.userAgent.toLowerCase().match("qt")?!1:a.hasTouchSupport;b=document.createElement("canvas");a.hasCanvasSupport=b.getContext&&b.getContext("2d");a.hasCanvasSupport&&(a.ctx=document.createElement("canvas").getContext("2d"));var d,e,c,l,j,g,f,k,h;Number.prototype.originalToFixed=
Number.prototype.toFixed;Number.prototype.toFixed=function(a){if(20>=a)return this.originalToFixed(a);a=0>a?0:parseInt(a);d=this.toString();j=d.indexOf("e");e=d.indexOf(".");if(-1!==j)if(g=d.split("e"),k="-"===g[0][0]?"-":"",f="-"===k?g[0].substring(1):g[0],h=parseInt(g[1]),0>e+h){var b=k+"0.",m;m=Math.abs(e+h);m=Array(m+1).join("0");d=b+m+f.replace(".","");e=1}else f=f.replace(".",""),d=k+f+Array(h-f.length+2).join("0"),e=-1;c="";if(-1===e)return 0<a&&(c="."),c+=Array(a+1).join("0"),d+c;l=d.length-
e-1;if(l>=a)return 0<a?d.substring(0,e+1+a):d.substring(0,e);b=0;for(a-=l;b<a;b++)c+="0";return d+c}};a.whichButton=function(a){return null!==a.which?2>a.which?"L":2===a.which?"M":"R":2>a.button?"L":4===a.button?"M":"R"};a.getCursorPosition=function(a){a.touches?(a=a.touches[0],n=a.pageX,u=a.pageY):void 0!=a.pageX&&void 0!=a.pageY?(n=a.pageX,u=a.pageY):(n=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,u=a.clientY+document.body.scrollTop+document.documentElement.scrollTop);
return{x:n,y:u}};a.getTextWidth=function(b,d){a.ctx.font=d;return a.ctx.measureText(b).width};var l=document.createElement("span");l.appendChild(document.createTextNode("\u00c1p"));var s=document.createElement("div");s.setAttribute("style","display: inline-block; w: 1px; h: 0px;");var w=document.createElement("div");w.setAttribute("style","margin: 0; padding: 0;");w.appendChild(l);w.appendChild(s);var z={};a.getFontMetrics=function(a){if(z[a])return z[a];l.setAttribute("style","font: "+a+"; margin: 0px; padding: 0px;");
document.body.appendChild(w);var b={};w.getBoundingClientRect?(s.style.verticalAlign="baseline",b.ascent=s.offsetTop-l.offsetTop,b.h=w.getBoundingClientRect().height||0):(s.style.verticalAlign="baseline",b.ascent=s.offsetTop-l.offsetTop,s.style.verticalAlign="bottom",b.h=s.offsetTop-l.offsetTop);b.descent=b.h-b.ascent;b.baseline=b.ascent;document.body.removeChild(w);return z[a]=b};a.getFieldFontSize=function(a){a=Math.min(50,a);return a=24<=a?Math.floor(a/2+2-a/16):20<=a?12:17<=a?11:15<=a?10:9};a.getScreenshot=
function(){var b=a.apps[0],d,e=document.createElement("canvas"),c=new Image;if(b){e.setAttribute("width",b.width);e.setAttribute("height",b.height);for(var l=e.getContext("2d"),j=0,g=b.spaces.length;j<g;j++)d=b.spaces[j],"R2"===d.type&&(l.drawImage(d.backgroundCanvas,d.x,d.y),l.drawImage(d.canvas,d.x,d.y),h(l,d.container,d.ctrs));0<b.northSpace.controls.length&&f(l,b.northSpace.container,b.northSpace);0<b.southSpace.controls.length&&f(l,b.southSpace.container,b.southSpace);0<b.eastSpace.controls.length&&
f(l,b.eastSpace.container,b.eastSpace);0<b.westSpace.controls.length&&f(l,b.westSpace.container,b.westSpace);c.src=e.toDataURL("image/png")}return c};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h;a.openExternalFile=function(a){f=null;var b=!1;if(window.XMLHttpRequest)try{b=new XMLHttpRequest}catch(c){b=!1}else if(window.ActiveXObject)try{b=new ActiveXObject("Msxml2.XMLHTTP")}catch(d){try{b=new ActiveXObject("Microsoft.XMLHTTP")}catch(j){b=!1}}h=b;h.open("GET",a,
!1);try{h.send(null),f=h.responseText,f.match(String.fromCharCode(65533))&&(h.open("GET",a,!1),h.overrideMimeType("text/plain; charset=ISO-8859-1"),h.send(null),f=h.responseText)}catch(e){console.log("Error to load the file :",a),f=null}return f};return a}(descartesJS||{}),descartesJS=function(a){function f(a){c=a.trim();a={ignoreAcents:!1,ignoreCaps:!1,regExp:null};c[0]==c[c.length-1]&&"'"==c[0]&&(a.ignoreCaps=!0,c=c.substring(1,c.length-1),"`"==c[0]&&"\u00b4"==c[c.length-1]&&(a.ignoreAcents=!0,
c=c.substring(1,c.length-1)));"`"==c[0]&&"\u00b4"==c[c.length-1]&&(a.ignoreAcents=!0,c=c.substring(1,c.length-1),c[0]==c[c.length-1]&&"'"==c[0]&&(a.ignoreCaps=!0,c=c.substring(1,c.length-1)));"*"===c.charAt(0)&&"*"!==c.charAt(c.length-1)?c=c.substring(1)+"$":"*"!==c.charAt(0)&&"*"===c.charAt(c.length-1)?c="^"+c.substring(0,c.length-1):"*"!==c.charAt(0)&&"*"!==c.charAt(c.length-1)?c="^"+c+"$":"*"===c.charAt(0)&&"*"===c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));c=c.replace(/\?/g,"[\\S\\s]{1}");
a.regExp=c;return a}function h(a,b){c=a.trim();a={ignoreAcents:!1,ignoreCaps:!1,regExp:null};a.expr=c.split(",");a.expr[0]=a.expr[0].trim();a.expr[0]={type:a.expr[0].charAt(0),expr:b.parser.parse(a.expr[0].substring(1))};a.expr[1]=a.expr[1].trim();a.expr[1]={type:a.expr[1].charAt(a.expr[1].length-1),expr:b.parser.parse(a.expr[1].substring(0,a.expr[1].length-1))};return a}function g(a,b,d){b=parseFloat(b);p=a.expr[0];m=a.expr[1];k=d.evalExpression(p.expr);q=d.evalExpression(m.expr);r="("==p.type;t=
"["==p.type;n=")"==m.type;u="]"==m.type;return(r&&b>k||t&&b>=k)&&(n&&b<q||u&&b<=q)?1:0}function b(a){return a.toString().replace(/\u00e1/g,"a").replace(/\u00e9/g,"e").replace(/\u00ed/g,"i").replace(/\u00f3/g,"o").replace(/\u00fa/g,"u").replace(/\u00c1/g,"A").replace(/\u00c9/g,"E").replace(/\u00cd/g,"I").replace(/\u00d3/g,"O").replace(/\u00da/g,"U").replace(/\u00f1/g,"n").replace(/\u00d1/g,"N")}if(a.loadLib)return a;var c,d,j,e,p,m,k,q,r,t,n,u;a.buildRegularExpresionsPatterns=function(a,b){"("===a.charAt(0)&&
(")"===a.charAt(a.length-1)&&-1===a.indexOf(","))&&(a=a.substring(1,a.length-1));a=a.replace(/&squot;/g,"'").replace(/&amp;/g,"&").split("|");for(var e=0,g=a.length;e<g;e++){d=a[e].split("&");j=[];for(var k=0,m=d.length;k<m;k++)c=d[k],-1!==c.indexOf(",")&&("("===c.charAt(0)||"["===c.charAt(0))&&(")"===c.charAt(c.length-1)||"]"===c.charAt(c.length-1))?j.push(h(c,b)):j.push(f(c));a[e]=j}return a};a.escorrecto=function(c,j,f,k){f=f||a.externalEvaluator;k=k||a.buildRegularExpresionsPatterns(c,f);j=b(j);
c=0;for(var h=k.length;c<h;c++){d=k[c];e=!0;for(var m=0,n=d.length;m<n;m++)e=d[m].regExp?e&&!!j.match(b(d[m].regExp),"i"):e&&g(d[m],j,f);if(e)return 1}return 0};a.esCorrecto=function(l,j,f,k){f=f||a.externalEvaluator;k=k||a.buildRegularExpresionsPatterns(l,f);l=0;for(var h=k.length;l<h;l++){d=k[l];e=!0;for(var m=0,n=d.length;m<n;m++)(c=d[m].regExp)?(d[m].ignoreAcents&&(j=b(j),c=b(c)),d[m].ignoreCaps&&(j=j.toLowerCase(),c=b(c).toLowerCase()),e=e&&!!j.match(c)):e=e=e&&g(d[m],j,f);if(e)return 1}return 0};
return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.getCreativeCommonsLicenseImage=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAYAAABjyArgAAAABHNCSVQICAgIfAhkiAAACpVJREFUaIHtWm1sU9cZfu61iUYnPP/bJgdhhDbFkVYcCrR0tLHXrVNL01wvgUJDh820tivrkpQQtpEvA4HGhDoe/dCmNfbaVa1WKszX2oUO3xC0OHESm9Hi/FhloyQq1aY5OGgq8ce7H9f3xI7txKFsdKyPdHSPz8dzz33Oe77eY46IVBzHXcUXuOkgIo4DQABwuucUeJ4Hz/NQKBTgeQUUPA9ekXryPDiOB89x4DgO4DiZBQQCJQlJSiKZlEIikZCeyQQSiSSSyQTLS1KSlSciuTEsfjtgY+UmAAAHgGRxFQqFFHjFTFyhkPJ4RUpkDhzHp+ubEiclbFISM5FIhfR4IlPkZDLJhE0X+nbBxspNUALIFFehhDLjKYWTx0/B4/FgcHAQU9GpDKIlqiVYu3YtjN8xouLRR5BIKsDzcalDEjw4cJD6cgaUJGkkANIY4iRxR3x+uN9xIxgMZpTX6XQQqgSsWlNW0Md9Xng4APSns+9BqVQyUZVKpRQUSvSK52B73oaJiYmCGqTRaND4i0aUl9+PeCKBRCKOeDwVEnHE4wlm4emW/PHExzjS9SJGg6MAAIPBAL1eDwAIBAIQRREAUKIrwY7aHfja17+a8/1XPv4ELzle+lzwbKzcJAn8fu8ZKBXKGWGVi7BIqURrcxvcx9ysglqthiAI0Gq1KC8vBwD09vYiHA7D7XZjcnKSlRVMAhoad2LxHYsRj8cRi8cRj8cQj8czpwxK4mrkKn769LOIRqMQBAF2ux1arTajseFwGPX19XC73VCpVGi3tWd91LXoNdTuqPvc8MjzMJ3tO0t9/eeo39dPQwEfXfggQIJJIEiDl9RqNbW1tVEkEqG54HQ6Sa1Ws3oluhI6399HQ4Eh8g71U1//OfL0naUzYg+99+d36XTPKTrx7nHS6XQEgMxmcwafzDP7HTL328f/kBFKdCU5eRx2Oz3+2ObPxDM2Nkbe/n7y9vfT2NhYQTwAiAcARWoOVioUUCoyLVev18Pv96O1tRVqtTprGKTDbDYjFAqxoTQaHEWn7XDGXM6zHYm0G/F5fQgGgxAEAY27ds3JL79DEASMBkcx4vOz9BGfH6PBUawqK8O996xj6b/q6sLzNhtOnj6N3Q27MD4+XhBPent+/9prMKy/DzWbt6Bm8xYY1t+HMz09c/Kkg/q8feQd8tLIhWFyHHEwy9Hr9fNabS5EIhHS6/WMx/Gig0b+OkIDw1467+0jz3nJit99/4+kK5WsNxQKFcwfCoUIAOl0OmYt8igo+cY3acUyLZV/ez09/eMnCQC1tbXRwQMHCQAdffvtgnjk9nj7+yW+u9fRj7ZZqHFnA61YpqUVy7TksNvz8uSwYMmKbc/bAEjzrdPpnNdqc0GtVsPj8bC6toO21F46ZcFcak/N8wheCsJgMGTNcRaLhVm5xWLJyNNqtTAYDBkrezAo8VRUVGDjpk0YHx/HmZ4erFimxb+mrmHrE1tx6cMPUVVdXRCPVqtFNBpF0H8RAFAp/AC/dXWjo/MQ9rQ0AwBc3c68PDJ4AKlhK23F5N1CXV0dG+o3ArVaDbvdDgCYmJjAyROn2IFFEplj27Rc73G5XDnjMnLV0ev1sB3uxEFbB954601UVVfjo8th2A53YunSpXB1OxG8dKkgHhntL0gG95vfvcrSvvfggwCAaDSKT65cycsDpASWrcnj8QCQxKmtrWWFRFGEyWSC0WiE0WiE1WrNm9fV1cXyzGYzs2LPWU+a9XLg+BmB/xO4+5570NF5CGNjY2jc2YCyb92Jd44eRcXDG1CzeQubQ+eCSqWCw+HAHaoleOWVV3KW+fTT63NySAcNjgPPcRgcHAQACILAhBFFEUajMaOSKIoQRRG1tbUwmUxZeRcuXIDT6WRcLpcLg4OD0gkwJawkriRwIBDIapjZbGaWazabs/Jz1ZmdFo1GcaanBx2dh2C+ZEHFwxsAAANeLwa8XhQXF4NbpJyTZ5FSicaGBtyxeDFLG/B6WXyZdlne9gDMgqUPlk9oK1euZAXq6+sBSPNMKBSCx+OBVqvFtm3bmCXr9XqEQiEcO3YsY48MgMWnolPSe8ClPYHS0lKIoohwOJzRMLmDZscBaQ8qiiJ0Oh1L0+l0WTw/efIptO/dh1V3rkTN5i346HIYVdXV6Og8hJqtWwviGR8fR1tLKx5/bDPa9+5D+959aGlqAgDs2r07b3syBAaHjOGaPp/IPWM2m9lkHgqFYDabWZ58+BAEgeXJSF+8JKPNPDZvfExadOSOLARyWaFKYGlyPJ2no/MQLNu348o//o6/hUJw2O3Y09KMqupqWPfvQ9ma1fPyWLZvh2X7dgCAs7sbzu5uXP/0OjZUPIItNY/nbY+M7PHxX8a69eugK9XB7XbDYrFkWetsyKenEl1Jhh9g1ZoylOhKMniKi4uxp6UZX1q8GCPDw/hZXd0N8expacb3H3oIly+HAUijTldaOiePDMmCKdOLlT6fyNbscrkwOTmJQCCA5cuXw2q1sjz5mJyeJyN9yEpnM3l7PIPmtmaoVCq4XC6YTCZWh9K8bOFwGCaTCV1dXVCpVNhRuyPrY3b/sjEnz85dDXjjrTc/E8/qNatRVV2Nqupq6EpLC+IBUs4e38ggioqKsP7e+zAVnYLZbGaW5Ha7sxYyQJoyKisr8+bJ9evr69HV1YUlqiU4/5c+TE9PYzo2jVg8hlgsLjmDEnFE/jmJA9YDbC+p1+uh1+uhVqshiiLr9PmcNNei19BxwMacNLeShzl7BoYHUFRUBGuLFe5jbqjVakQiEVZQFEU4HA7mzDEYDGhtbWUd4HA4WNn0PABYvnw5wuEwHvjuAzhs78T16WnEZgks+42TiSR8Az4cO3rr3Yw3g4cJ7B3qx6JFRTh/7jxqn5X2v3a7HXVpc9aNwOVysVPY/gP78fCGhzAdm8Z0LIZ4LIZYfJbAORzw/8vYWLlJmoPlKx2DsRwajQYAYLVas7ZOC8Hk5CRbXTUaTcoRn7rFSCaRTM3FlLpyul3BA0CSkkgkpHu0fe17AUgCmUymDB9voZicnITRaGR1G3/emHKwJ2ZETrsyYovsrMX2dgEBoKbWJvKNDFLgop+e+OETGR41v9+/IE9XuidNMAkUuOgn38gg7W3fy9L/j8LMj7rnamnI76PADTjcI5EItbW1ZTjc16xdQxc+CNBQwEdNrU23+kNvSWDX9jKaW5tQaRKgVCpx2HYYr7/2Ostb6JWRdV8b4vE4BgYG8cxTz2A+pE8P8smSiDJOmbN/5+PJV0d+R6GOpnxtWhDH7NDc2iRZ8kU/dbteJY1GU3CPaTQachxxUOCin4YCPnr51y8XXJeI5oynp83HM1/9QrhylVkoR5YFy6h7rhY1W2vYVY/o6cWJ4yfmvLZ/VHgUBkM5u9A8fvwE9lv3F9DHEnJZS3reQqyO47i8z4VgtrXOXoTn48srMACsuqsMza0tKF6qSbuNSHc3ImPfKv/xZGJ8HC902nGu99yCP+azTA35eABkCbxQsXN1UiEccwos4/7y+7GhYgPuWn0XvqJSpf46Jb9ZetHVaBTDQ8M4ffL0goVN/wjWsJtgwbl+L2T+nG9NuGkCf4EbB09EX77VjbhdQUTcvwFtwhQyXNo3TwAAAABJRU5ErkJggg==";
return a};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.floor,h,g,b,c,d,j,e,p,m;a.Color=function(a,d){this.b=this.g=this.r=0;this.a=1;this.evaluator=d;if(a){if(babel[a]&&("net"===babel[a]&&(a="rojo"),a=babel[a],this.r=parseInt("0x"+a.substring(1,3),16),this.g=parseInt("0x"+a.substring(3,5),16),this.b=parseInt("0x"+a.substring(5,7),16),this.colorStr=a,this.getColor=this.getColorString),6===a.length&&(this.r=parseInt("0x"+a.substring(0,2),16),this.g=parseInt("0x"+
a.substring(2,4),16),this.b=parseInt("0x"+a.substring(4,6),16),this.colorStr="#"+a,this.getColor=this.getColorString),8===a.length&&(this.r=parseInt("0x"+a.substring(2,4),16),this.g=parseInt("0x"+a.substring(4,6),16),this.b=parseInt("0x"+a.substring(6,8),16),this.a=1-parseInt("0x"+a.substring(0,2),16)/255,this.colorStr="rgba("+this.r+","+this.g+","+this.b+","+this.a+")",this.getColor=this.getColorString),"("===a[0]){g=[];b=this.splitComa(a.substring(1,a.length-1));for(var e=0,j=b.length;e<j;e++)c=
parseInt(b[e],16),b[e]!=c.toString(16)&&b[e]!=="0"+c.toString(16)?("["===b[e].charAt(0)&&"]"===b[e].charAt(b[e].length-1)&&(b[e]=b[e].substring(1,b[e].length-1)),g.push(this.evaluator.parser.parse(b[e]))):g.push(this.evaluator.parser.parse((c/255).toString()));this.rExpr=g[0];this.gExpr=g[1];this.bExpr=g[2];this.aExpr=g[3];this.getColor=this.getColorExpression}}else this.colorStr="rgba("+this.r+","+this.g+","+this.b+","+this.a+")",this.getColor=this.getColorString};a.Color.prototype.splitComa=function(a){d=
[];for(var b=p=e=j=0,c=a.length;b<c;b++)m=a.charAt(b),"("===m?j++:")"===m?j--:"["===m?e++:"]"===m?e--:","===m&&(0===j&&0===e)&&(d.push(a.substring(p,b)),p=b+1);d.push(a.substring(p));return d};a.Color.prototype.getColorString=function(){return this.colorStr};a.Color.prototype.getColorExpression=function(){h=this.evaluator;this.r=f(255*h.evalExpression(this.rExpr));this.g=f(255*h.evalExpression(this.gExpr));this.b=f(255*h.evalExpression(this.bExpr));this.a=1-h.evalExpression(this.aExpr);return"rgba("+
this.r+","+this.g+","+this.b+","+this.a+")"};a.Color.prototype.borderColor=function(){return 380>this.r+this.g+this.b?"white":"black"};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=document.head,h=document.createElement("meta");h.setAttribute("http-equiv","X-UA-Compatible");h.setAttribute("content","chrome=1");f.appendChild(h);h=document.createElement("meta");h.setAttribute("name","viewport");h.setAttribute("content","width=device-width, initial-scale=1.0, user-scalable=yes");
f.appendChild(h);h=document.createElement("meta");h.setAttribute("name","apple-mobile-web-app-capable");h.setAttribute("content","yes");f.appendChild(h);h=document.createElement("meta");h.setAttribute("name","apple-mobile-web-app-status-bar-style");h.setAttribute("content","black-translucent");f.appendChild(h);(f=document.getElementById("StyleDescartesApps2"))&&f.parentNode.removeChild(f);f=document.createElement("style");f.type="text/css";f.id="StyleDescartesApps2";f.setAttribute("rel","stylesheet");
document.head.appendChild(f);f.innerHTML="body{ text-rendering:geometricPrecision; }\ncanvas{ image-rendering:optimizeSpeed; image-rendering:-moz-crisp-edges; image-rendering:-webkit-optimize-contrast; image-rendering:optimize-contrast; -ms-interpolation-mode:nearest-neighbor; }\ndiv.DescartesCatcher{ background-color: rgba(255, 255, 255, 0); cursor: pointer; position: absolute; }\ndiv.DescartesAppContainer{ border:0px solid black; position:relative; overflow:hidden; top:0px; left:0px; }\ndiv.DescartesLoader{ background-color :#efefef; position:absolute; overflow:hidden; -moz-box-shadow:0px 0px 0px #888; -webkit-box-shadow:0px 0px 100px #888; box-shadow:0px 0px 100px #888; background-image:linear-gradient(bottom, #bbbbbb 0%, #efefef 50%, #bbbbbb 100%); background-image:-o-linear-gradient(bottom, #bbbbbb 0%, #efefef 50%, #bbbbbb 100%); background-image:-moz-linear-gradient(bottom, #bbbbbb 0%, #efefef 50%, #bbbbbb 100%); background-image:-webkit-linear-gradient(bottom, #bbbbbb 0%, #efefef 50%, #bbbbbb 100%); background-image:-ms-linear-gradient(bottom, #bbbbbb 0%, #efefef 50%, #bbbbbb 100%); top:0px; left:0px; }\ndiv.DescartesLoaderImage{ background-repeat:no-repeat; background-position:center; position:absolute; overflow:hidden; top:0px; left:0px; }\ncanvas.DescartesLoaderBar{ position:absolute; overflow:hidden; top:0px; left:0px; }\ncanvas.DescartesSpace2DCanvas, canvas.DescartesSpace3DCanvas, div.blocker{ position:absolute; overflow:hidden; left:0px; top:0px; }\ndiv.DescartesSpace2DContainer, div.DescartesSpace3DContainer{ position:absolute; overflow:hidden; line-height:0px; }\ncanvas.DescartesButton{ position:absolute; cursor:pointer; }\ndiv.DescartesSpinnerContainer, div.DescartesTextFieldContainer{ background:lightgray; position:absolute; overflow:hidden; }\ninput.DescartesSpinnerField, input.DescartesTextFieldField, input.DescartesMenuField, input.DescartesScrollbarField{ font-family:Arial, Helvetica, 'Droid Sans', Sans-serif; padding:0px; border:solid #666666 1px; position:absolute; top:0px; }\nlabel.DescartesSpinnerLabel, label.DescartesMenuLabel, label.DescartesScrollbarLabel, label.DescartesTextFieldLabel{ font-family:Arial, Helvetica, 'Droid Sans', Sans-serif; font-weight:normal; text-align:center; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; background-color:#e0e4e8; position:absolute; left:0px; top:0px; }\ndiv.DescartesGraphicControl{ border-style:none; position:absolute; }\ndiv.DescartesTextAreaContainer{ position:absolute; overflow:hidden; background:#c0d0d8; }\nselect.DescartesMenuSelect{ font-family:Arial, Helvetica, 'Droid Sans', Sans-serif; padding-top:0%; text-align:center; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; background-color:white; position:absolute; left:0px; top:0px; }\ndiv.DescartesScrollbarContainer{ background:#eeeeee; overflow:hidden; position:absolute; }\n";
return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.sin,h=Math.floor,g=Math.random,b=Math.round,c=Math.abs,d=String.fromCharCode,j,e,p,m,k,q,r,t,n,u;a.Krypto=function(a){this.key=(a||0).toString()};a.Krypto.prototype.getKey=function(a){j=[];for(var b=0;256>b;b++)j[b]=d(this.alfanum(h(c(7.5*(f(1*b-a)+f(1.4*b+a)+f(0.6*b-a)+f(2.2*b+a))))));return j.join("")};a.Krypto.prototype.encode=function(a){e=h(31*g());this.key=this.getKey(e);m=d(this.alfanum(e));return m+this.encripta(a)};
a.Krypto.prototype.decode=function(a){e=this.numalfa(a.charCodeAt(0));this.key=this.getKey(e);return this.desencripta(a.substring(1))};a.Krypto.prototype.encripta=function(a){return this.bytesToString(this.encriptaAux(this.stringToBytes(a)))};a.Krypto.prototype.encriptaAux=function(a){if(null==a||null==this.key)return null;q=Array(3*a.length);for(var d=0,e=a.length;d<e;d++)n=256*h(a[d]+128)+b(255*g())+65536*b(255*g()),u=h((n<<this.shift(d))/256),q[3*d]=this.alfanum(u%32),q[3*d+1]=this.alfanum(u/32%
32),q[3*d+2]=this.alfanum(u/1024%32);return q};a.Krypto.prototype.desencripta=function(a){return this.bytesToString(this.desencriptaAux(this.stringToBytes(a)))};a.Krypto.prototype.desencriptaAux=function(a){if(null==a||null==this.key)return null;r=Array(a.length/3);for(var b=0,d=r.length;b<d;b++)u=this.numalfa(a[3*b])+32*this.numalfa(a[3*b+1])+1024*this.numalfa(a[3*b+2]),n=h(256*u>>this.shift(b)),t=h(n/256)%256-128,0>t&&(t+=256),r[b]=t;return r};a.Krypto.prototype.alfanum=function(a){a=h(a);return 10>
a?48+a:87+a};a.Krypto.prototype.numalfa=function(a){return 58>a?a-48:a-87};a.Krypto.prototype.stringToBytes=function(a){m=Array(a.length);for(var b=0,d=a.length;b<d;b++)m[b]=a.charCodeAt(b);return m};a.Krypto.prototype.bytesToString=function(a){for(var b=0,e=a.length;b<e;b++)a[b]=d(a[b]);return a.join("")};a.Krypto.prototype.shift=function(a){p=this.key.charCodeAt(a%this.key.length);m=this.numalfa(p);k=h(m/2%8);0==k&&(k=4);return k};a.Krypto.prototype.parseByte=function(a){a=parseInt(a);a=0>a?0:a;
return 255<a?255:a};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Animation=function(f,h){this.parent=f;var g=f.evaluator,b=g.parser,c=new a.Auxiliary(f);this.delay=h.delay?b.parse(h.delay):b.parse("60");this.loop=h.loop?h.loop:!1;this.auto=void 0==h.auto?!0:h.auto;this.controls=h.controls;this.init=c.splitInstructions(b,h.init);this.doExpr=c.splitInstructions(b,h.doExpr);h.whileExpr&&(this.whileExpr=b.parse(h.whileExpr));var d=this,j,e,p=d.doExpr.length;this.animationExec=
function(){for(e=0;e<p;e++)g.evalExpression(d.doExpr[e]);d.parent.update();d.playing&&(0<g.evalExpression(d.whileExpr)||d.loop)?(j=g.evalExpression(d.delay),d.timer=setTimeout(d.animationExec,10>j?10:j)):(d.stop(),d.parent.update())};this.playing=!1;this.auto&&this.play()};a.Animation.prototype.play=function(){this.playing?this.stop():(this.reinit(),this.playing=!0,this.timer=setTimeout(this.animationExec,this.parent.evaluator.evalExpression(this.delay)))};a.Animation.prototype.stop=function(){this.playing=
!1;clearInterval(this.timer)};a.Animation.prototype.reinit=function(){for(var a=0,h=this.init.length;a<h;a++)this.parent.evaluator.evalExpression(this.init[a])};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Action=function(a){this.parent=a;this.evaluator=this.parent.evaluator};a.Action.prototype.execute=function(){};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Message=function(f,h){a.Action.call(this,f,h);this.parameter=(h||"").replace(/\\n/g,
"\n").replace(/&squot;/g,"'")};a.extend(a.Message,a.Action);a.Message.prototype.execute=function(){alert(this.parameter)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Calculate=function(f,h){a.Action.call(this,f,h);var g=this.evaluator,b=g.parser;h=(h||"").replace(/&squot;/g,"'");h=h.replace(/;/g,"\\n");h=h.split("\\n")||[""];for(var c=[],d,j=0,e=h.length;j<e;j++)(d=b.parse(h[j],!0))&&c.push(d);e=c.length;this.execute=function(){for(j=0;j<e;j++)g.evalExpression(c[j])}};
a.extend(a.Calculate,a.Action);return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.OpenURL=function(f,h){a.Action.call(this,f,h);this.parameter=h;this.target="_blank";var g=this.parameter.indexOf("target");-1!=g&&(this.target=this.parameter.substring(g),this.target=this.target.substring(this.target.indexOf("=")+1),this.parameter=this.parameter.substring(0,g-1));"javascript"==this.parameter.substring(0,10)?(this.parameter=this.parameter.substring(11).replace(/&squot;/g,"'"),
this.actionExec=function(){eval(this.parameter)}):("http://"!=this.parameter.substring(0,7)&&(this.parameter=window.location.href.substring(0,window.location.href.lastIndexOf("/")+1)+this.parameter),this.actionExec=function(){window.open(this.parameter,this.target)})};a.extend(a.OpenURL,a.Action);a.OpenURL.prototype.execute=function(){this.actionExec()};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.OpenScene=function(f,h){a.Action.call(this,f,h);this.parameter=h;this.target=
"_blank";var g=this.parameter.indexOf("target");-1!=g&&(this.target=this.parameter.substring(g),this.target=this.target.substring(this.target.indexOf("=")+1),this.parameter=this.parameter.substring(0,g-1));"_blank"!==this.target&&"_parent"!==this.target&&"_self"!==this.target&&"_top"!==this.target?this.actionExec=function(){window.parent.postMessage({type:"changeTarget",name:this.target,value:this.parameter},"*")}:"javascript"==this.parameter.substring(0,10)?(this.parameter=this.parameter.substring(11).replace(/&squot;/g,
"'"),this.actionExec=function(){eval(this.parameter)}):("http://"!=this.parameter.substring(0,7)&&(this.parameter=window.location.href.substring(0,window.location.href.lastIndexOf("/")+1)+this.parameter),this.actionExec=function(){this.window=window.open(this.parameter,this.target,"width="+this.parent.width+",height="+this.parent.height+",left="+(window.screen.width-this.parent.width)/2+", top="+(window.screen.height-this.parent.height)/2+"location=0,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0");
this.window.onload=function(){var a=this.document,c=a.getElementsByTagName("applet");c&&0<c.length&&(this.innerWidth=c[0].width,this.height=c[0].height,a.body.style.margin="0px",a.body.style.padding="0px",c[0].parentNode.style.margin="0px",c[0].parentNode.style.padding="0px")}})};a.extend(a.OpenScene,a.Action);a.OpenScene.prototype.execute=function(){this.actionExec()};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.About=function(f,h){a.Action.call(this,f,h);h||(this.urlAbout=
window.location.href.substring(0,window.location.href.lastIndexOf("/")+1)+h)};a.extend(a.About,a.Action);a.About.prototype.execute=function(){if(this.urlAbout)var a=window.open(this.urlAbout,"_blank","width=800px,height=600px,location=no,menubar=no,scrollbars=yes");else a=window.open("about:blank","_blank","width=800px,height=600px,location=no,menubar=no,scrollbars=yes"),a.document.write("<hmtl><head><title>Cr\u00e9ditos</title></head><body><h1>Aqu\u00ed van los cr\u00e9ditos</h1></body></html>")};
return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Config=function(f,h){a.Action.call(this,f,h)};a.extend(a.Config,a.Action);a.Config.prototype.execute=function(){window.open("about:blank","_blank","width=800px,height=600px,location=no,menubar=no,scrollbars=yes").document.write("<xmp style='width:100%; height:100%;'>"+this.parent.applet.outerHTML+"</xmp>")};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Init=function(f,h){a.Action.call(this,f,h)};
a.extend(a.Init,a.Action);a.Init.prototype.execute=function(){this.parent.init()};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Clear=function(f,h){a.Action.call(this,f,h)};a.extend(a.Clear,a.Action);a.Clear.prototype.execute=function(){this.parent.clear()};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Animate=function(f,h){a.Action.call(this,f,h)};a.extend(a.Animate,a.Action);a.Animate.prototype.execute=function(){this.parent.play()};return a}(descartesJS||
{}),descartesJS=function(a){if(a.loadLib)return a;a.InitAnimation=function(f,h){a.Action.call(this,f,h)};a.extend(a.InitAnimation,a.Action);a.InitAnimation.prototype.execute=function(){this.parent.reinitAnimation()};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=/[\w\.\-//]*(\.ogg|\.oga|\.mp3|\.wav|\.OGG|\.OGA\.MP3|\.WAV)/g;a.PlayAudio=function(h,g){a.Action.call(this,h,g);this.filenameExpr=g&&g.match(f)?this.evaluator.parser.parse("'"+g.match(f)+"'"):this.evaluator.parser.parse(g)};
a.extend(a.PlayAudio,a.Action);a.PlayAudio.prototype.execute=function(){var a=this.theAudio=this.parent.getAudio(this.evaluator.evalExpression(this.filenameExpr));a.paused?a.play():(a.pause(),a.currentTime=0)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Auxiliary=function(a,b){this.parent=a;this.evaluator=this.parent.evaluator;this.expresion=this.id="";this.evaluate="onlyOnce";this.local="";for(var c in b)b.hasOwnProperty(c)&&(this[c]=b[c])};a.Auxiliary.prototype.firstRun=
function(){};a.Auxiliary.prototype.update=function(){};var f,h;a.Auxiliary.prototype.splitInstructions=function(a,b){h=[];b=b?b.split(";"):[""];for(var c=0,d=b.length;c<d;c++)(f=a.parse(b[c],!0))&&h.push(f);return h};a.Auxiliary.prototype.getPrivateVariables=function(a,b){h=[];b=b?b.split(/;|,/):[""];for(var c=0,d=b.length;c<d;c++)(f=a.parse(b[c],!0))&&h.push(f);c=0;for(d=h.length;c<d;c++)h[c]="asign"===h[c].type?h[c].childs[0].value:"identifier"===h[c].type?h[c].value:"";return h};a.Auxiliary.prototype.parseExpressions=
function(a){this.init=this.splitInstructions(a,this.init);this.privateVars=this.getPrivateVariables(a,this.local);this.doExpr=this.splitInstructions(a,this.doExpr);this.whileExpr=a.parse(this.whileExpr)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Variable=function(f,h){a.Auxiliary.call(this,f,h);var g=this.evaluator.parser;this.expresionString=this.expresion;(this.expresion=g.parse(this.expresionString))&&g.setVariable(this.id,this.expresion);this.editable&&(this.registerTextField(),
this.parent.editableRegionVisible=!0)};a.extend(a.Variable,a.Auxiliary);a.Variable.prototype.registerTextField=function(){var a=document.createElement("div"),h=document.createElement("label");h.appendChild(document.createTextNode("___"+this.id+"=___"));var g=document.createElement("input");g.value=this.expresionString;g.disabled=!this.editable;a.appendChild(h);a.appendChild(g);var b=this,c=b.evaluator.parser;g.onkeydown=function(a){13==a.keyCode&&(b.expresion=c.parse(this.value),c.setVariable(b.id,
b.expresion),b.parent.update())};this.parent.editableRegion.textFields.push({container:a,type:"div"})};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Constant=function(f,h){a.Auxiliary.call(this,f,h);this.expresion=this.evaluator.parser.parse(this.expresion);this.update()};a.extend(a.Constant,a.Auxiliary);a.Constant.prototype.update=function(){this.evaluator.setVariable(this.id,this.evaluator.evalExpression(this.expresion))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;
a.Vector=function(f,h){var g=f.evaluator,b=g.parser;this.size=b.parse("3");a.Auxiliary.call(this,f,h);this.expresion=this.expresion.split(";");var c;if(this.file){var d=document.getElementById(this.file);d&&"descartes/vectorFile"==d.type?(c=d.text,"\n"==c[0]&&(c=c.substring(1))):c=a.openExternalFile(this.file);null!=c&&(c=c.split("\n"));null==c||1==c.length&&""==c[0]?(c=[],this.size=0):(this.expresion=[],this.size=null);for(var j,e=0,p=/[\w-//]*(\.png|\.jpg|\.gif|\.svg|\.PNG|\.JPG|\.GIF|\.SVG)/g,
d=0,m=c.length;d<m;d++)c[d].match(/./)&&(this.expresion[e]=this.id+"["+e+"]="+c[d],e++,(j=c[d].match(p))&&this.parent.getImage(j));null===this.size&&(this.size=b.parse(this.expresion.length+""))}d=0;for(m=this.expresion.length;d<m;d++)(c=b.parse(this.expresion[d],!0))&&"asign"!=c.type&&(c=b.parse(this.id+"["+d+"]="+this.expresion[d],!0)),this.expresion[d]=c;b=[];d=0;for(m=g.evalExpression(this.size);d<m;d++)b.push(0);g.vectors[this.id]=b;this.update()};a.extend(a.Vector,a.Auxiliary);a.Vector.prototype.update=
function(){var a=this.evaluator;a.setVariable(this.id+".long",a.evalExpression(this.size));for(var h=0,g=this.expresion.length;h<g;h++)a.evalExpression(this.expresion[h])};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Matrix=function(f,h){var g=f.evaluator,b=g.parser;this.rows=b.parse("3");this.columns=b.parse("3");a.Auxiliary.call(this,f,h);this.expresion=this.splitInstructions(b,this.expresion);var b=g.evalExpression(this.rows),c=g.evalExpression(this.columns),d=[];
d.type="matrix";for(var j,e=0;e<c;e++){j=[];for(var p=0,m=b;p<m;p++)j.push(0);d[e]=j}g.matrices[this.id]=d;this.update()};a.extend(a.Matrix,a.Auxiliary);a.Matrix.prototype.update=function(){var a=this.evaluator,h=a.evalExpression(this.rows),g=a.evalExpression(this.columns);a.setVariable(this.id+".filas",h);a.setVariable(this.id+".columnas",g);var b=a.matrices[this.id];b.rows=h;b.cols=g;h=0;for(g=this.expresion.length;h<g;h++)a.evalExpression(this.expresion[h])};return a}(descartesJS||{}),descartesJS=
function(a){if(a.loadLib)return a;a.Function=function(f,h){a.Auxiliary.call(this,f,h);var g=this.evaluator,b=g.parser,c=this.id.indexOf("(");this.name=this.id.substring(0,c);this.params=this.id.substring(c+1,this.id.length-1);this.domain=this.range?b.parse(this.range):b.parse("1");this.params=""==this.params?[]:this.params.split(",");this.numberOfParams=this.params.length;this.algorithm||(this.whileExpr=this.doExpr=this.init="");this.parseExpressions(b);this.expresion=b.parse(this.expresion);var d=
this;this.functionExec=function(){this.iterations=0;if(d.numberOfParams<=arguments.length){for(var b=[],e=0,c=d.privateVars.length;e<c;e++)b.push(g.getVariable(d.privateVars[e])),g.setVariable(d.privateVars[e],0);for(var f=[],e=0,c=d.params.length;e<c;e++)f[e]=g.getVariable(d.params[e]),g.setVariable(d.params[e],arguments[e]);e=0;for(c=d.init.length;e<c;e++)g.evalExpression(d.init[e]);do{e=0;for(c=d.doExpr.length;e<c;e++)g.evalExpression(d.doExpr[e]);if(1E5<++this.iterations)return console.log("se ha excedido el l\u00edmite de 100000 repeticiones en la funci\u00f3n",
this.id),0}while(0<g.evalExpression(d.whileExpr));var k=g.evalExpression(d.expresion);a.rangeOK=g.evalExpression(d.domain);e=0;for(c=d.params.length;e<c;e++)g.setVariable(d.params[e],f[e]);e=0;for(c=d.privateVars.length;e<c;e++)g.setVariable(d.privateVars[e],b[e]);return k}return 0};g.setFunction(this.name,this.functionExec)};a.extend(a.Function,a.Auxiliary);return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Algorithm=function(f,h){a.Auxiliary.call(this,f,h);var g=this.evaluator;
this.parseExpressions(g.parser);this.algorithmExec=function(){for(var a=this.iterations=0,c=this.init.length;a<c;a++)g.evalExpression(this.init[a]);do{a=0;for(c=this.doExpr.length;a<c;a++)g.evalExpression(this.doExpr[a]);if(1E5<++this.iterations)return console.log("se ha excedido el l\u00edmite de 100000 repeticiones en el algoritmo",this.id),0}while(0<g.evalExpression(this.whileExpr))}};a.extend(a.Algorithm,a.Auxiliary);a.Algorithm.prototype.update=function(){this.algorithmExec();"onlyOnce"===this.evaluate&&
(this.update=function(){})};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Event=function(f,h){a.Auxiliary.call(this,f,h);var g=this.evaluator;this.condition=g.parser.parse(this.condition);this.lastEvaluation=!1;this.action=this.parent.lessonParser.parseAction(this);"onlyOnce"==this.execution&&(this.eventExec=function(){0<g.evalExpression(this.condition)&&!this.lastEvaluation&&(this.lastEvaluation=!0,this.action.execute())});"alternate"==this.execution&&(this.eventExec=
function(){var a=0<g.evalExpression(this.condition);3==this.parent.version?a!=this.lastEvaluation&&(this.action.execute(),this.lastEvaluation=a?!0:!1):a&&!this.lastEvaluation?(this.action.execute(),this.lastEvaluation=!0):!a&&this.lastEvaluation&&(this.lastEvaluation=!1)});"always"==this.execution&&(this.eventExec=function(){0<g.evalExpression(this.condition)&&this.action.execute()})};a.extend(a.Event,a.Auxiliary);a.Event.prototype.update=function(){this.eventExec()};return a}(descartesJS||{}),descartesJS=
function(a){if(a.loadLib)return a;var f,h,g,b,c;a.Graphic=function(b,c){this.parent=b;this.evaluator=b.evaluator;var e=this.evaluator.parser;this.spaceID="E0";this.background=!1;this.type="";this.drawif=e.parse("1");this.abs_coord=!1;this.color=new a.Color("blue");2!==this.parent.version&&(this.color=new a.Color("20303a"),this.parent.arquimedes&&(this.color=new a.Color("black")));this.trace="";this.expresion=e.parse("(0,0)");this.family="";this.family_interval=e.parse("[0,1]");this.family_steps=e.parse("8");
this.editable=!1;this.font=5<=this.parent.version?"Monospaced,PLAIN,15":"Monospaced,PLAIN,12";this.fixed=!0;this.text="";this.decimals=e.parse("2");for(var g in c)c.hasOwnProperty(g)&&(this[g]=c[g]);this.space=this.getSpace();this.canvas=this.background?this.space.backgroundCanvas:this.space.canvas;this.ctx=this.canvas.getContext("2d");this.trace&&(this.traceCtx=this.space.backgroundCanvas.getContext("2d"));this.font=a.convertFont(this.font);this.fontSize=(this.fontSize=this.font.match(/(\d+)px/))?
parseInt(this.fontSize[1]):10};a.Graphic.prototype.getSpace=function(){for(var a=this.parent.spaces,b,e=0,c=a.length;e<c;e++)if(b=a[e],b.id==this.spaceID)return b;return a[0]};a.Graphic.prototype.getFamilyValues=function(){f=this.evaluator;h=f.evalExpression(this.family_interval);this.familyInf=h[0][0];this.familySup=h[0][1];this.fSteps=Math.round(f.evalExpression(this.family_steps));this.family_sep=0<this.fSteps?(this.familySup-this.familyInf)/this.fSteps:0};a.Graphic.prototype.drawFamilyAux=function(a,
b,e){f=this.evaluator;this.getFamilyValues();g=f.getVariable(this.family);if(0<=this.fSteps)for(var c=0,h=this.fSteps;c<=h;c++)f.setVariable(this.family,this.familyInf+c*this.family_sep),0<f.evalExpression(this.drawif)&&(this.update(),this.drawAux(a,b,e));f.setVariable("_Text_H_",0);f.setVariable(this.family,g)};a.Graphic.prototype.draw=function(a,b){""!=this.family?this.drawFamilyAux(this.ctx,a,b):0<this.evaluator.evalExpression(this.drawif)&&(this.update(),this.drawAux(this.ctx,a,b))};a.Graphic.prototype.drawTrace=
function(a,b){""!=this.family?this.drawFamilyAux(this.traceCtx,a,b):0<this.evaluator.evalExpression(this.drawif)&&(this.update(),this.drawAux(this.traceCtx,a,b))};a.Graphic.prototype.drawText=function(a,j,e,g,h,k,q,r,t,n,u){if("rtfNode"===j.type)a.fillStyle=h.getColor(),a.strokeStyle=h.getColor(),a.textBaseline="alphabetic",j.draw(a,e,g,t,n,q,u);else{"simpleText"===j.type&&(j=j.toString(t,n).split("\\n"));e+=k.match("Arial")?-2:k.match("Times")?-2:0;f=this.evaluator;a.fillStyle=h.getColor();a.font=
k;a.textAlign=q;a.textBaseline=r;this.border&&(a.strokeStyle=this.border.getColor(),a.lineWidth=3);c=1.2*this.fontSize||0;h=0;for(k=j.length;h<k;h++)b=j[h],this.border&&(a.lineJoin="round",a.strokeText(b,e,g+c*h)),a.fillText(b,e,g+c*h)}};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.SimpleText=function(a,b){this.text=b=b.replace("&#x2013","\u2013").replace(/\&squot;/g,"'");this.textElements=[];this.textElementsMacros=[];this.parent=a;this.evaluator=a.evaluator;this.type=
"simpleText";for(var c="'",d=0,j=0,e=-1,f,h;d<b.length;)f=b.charAt(d),h=b.charAt(d-1),"["===f&&"\\"===h?(this.textElements.push(b.substring(j,d-1)+"["),this.textElementsMacros.push("'"+b.substring(j,d-1)+"['"),j=d+1):"]"===f&&"\\"===h?(this.textElements.push(b.substring(j,d-1)+"]"),this.textElementsMacros.push("'"+b.substring(j,d-1)+"]'"),j=d+1):"["===f&&-1===e?(this.textElements.push(b.substring(j,d)),this.textElementsMacros.push("'"+b.substring(j,d)+"'"),j=d,e++):"["===f?e++:"]"===f&&0===e?(this.textElements.push(this.evaluator.parser.parse(b.substring(j,
d+1))),this.textElementsMacros.push("["+b.substring(j,d+1)+"]"),j=d+1,e--):("]"==b.charAt(d)&&(e=0>e?e:e-1),c+=b.charAt(d)),d++;this.textElements.push(b.substring(j,d));this.textElementsMacros.push("'"+b.substring(j,d)+"'")};var f,h;a.SimpleText.prototype.toString=function(a,b){f="";for(var c=0,d=this.textElements.length;c<d;c++)"string"===typeof this.textElements[c]?f+=this.textElements[c]:(h=this.evaluator.evalExpression(this.textElements[c])[0][0],""!==h&&("string"===typeof h?f+=h:(h=parseFloat(h),
h=b?h.toFixed(a):parseFloat(h.toFixed(a)),f+=h.toString().replace(".",this.parent.decimal_symbol))));return f};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.floor,h,g,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s,w,z,B,x,D,C,A,y,G,F;a.Equation=function(b,d){this.width=b.evaluator.parser.parse("1");this.fillM=this.fillP="";a.Graphic.call(this,b,d);this.generateStroke();this.parseExpression();(this.visible=2===this.parent.version&&void 0==this.visible?!0:this.visible)&&this.registerTextField();
r=new a.R2;t=new a.R2;n=new a.R2;s=new a.R2;u=new a.R2};a.extend(a.Equation,a.Graphic);a.Equation.prototype.parseExpression=function(){if("compOperator"===this.expresion.type){var b=this.expresion.childs[0],d=this.expresion.childs[1];"identifier"==b.type&&"y"==b.value&&!d.contains("y")?(this.funExpr=d,this.of_y=!1,this.drawAux=this.drawAuxFun):"identifier"==d.type&&"y"==d.value&&!b.contains("y")?(this.funExpr=b,this.of_y=!1,this.drawAux=this.drawAuxFun):"identifier"==b.type&&"x"==b.value&&!d.contains("x")?
(this.funExpr=d,this.of_y=!0,this.drawAux=this.drawAuxFun):"identifier"==d.type&&("x"==d.value&&!b.contains("x"))&&(this.of_y=!0,this.funExpr=d,this.drawAux=this.drawAuxFun)}this.newt=new a.R2Newton(this.evaluator,this.expresion)};a.Equation.prototype.generateStroke=function(){this.auxCanvas=document.createElement("canvas");var a=parseInt(this.evaluator.evalExpression(this.width));this.width_2=parseInt(a/2)||1;this.auxCanvas.setAttribute("width",a);this.auxCanvas.setAttribute("height",a);this.auxCtx=
this.auxCanvas.getContext("2d");this.auxCtx.fillStyle=this.color.getColor();this.auxCtx.fillRect(0,0,a,a)};a.Equation.prototype.update=function(){};a.Equation.prototype.draw=function(){""!=this.family?this.drawFamilyAux(this.ctx,this.fill,this.color):(this.update(),this.drawAux(this.ctx,this.fill,this.color))};a.Equation.prototype.drawFamilyAux=function(a,b,d){g=this.evaluator;this.getFamilyValues();tempParam=g.getVariable(this.family);if(0<=this.fSteps)for(var e=0,c=this.fSteps;e<=c;e++)g.setVariable(this.family,
this.familyInf+e*this.family_sep),this.drawAux(a,b,d);g.setVariable(this.family,tempParam)};a.Equation.prototype.drawTrace=function(){this.uber.drawTrace.call(this,this.fill,this.trace)};a.Equation.prototype.drawAux=function(H,J,v){H.lineWidth=1;g=this.evaluator;b=g.parser;c=this.space;d=g.evalExpression(this.width);H.fillStyle=v.getColor();H.translate(-parseInt(d/2),-parseInt(d/2));j=b.getVariable("x");e=b.getVariable("y");p=c.w;m=c.h;k=parseInt(p/8);3>k&&(k=3);q=parseInt(m/8);3>q&&(q=3);h=[];r.set(0,
0);t.set(0,0);n.set(0,0);for(F=parseInt(q/2);F<m;F+=q)for(G=parseInt(k/2);G<p;G+=k)if(this.abs_coord?(s.set(G,F),l=this.newt.findZero(s),g.setVariable("x",l.x),g.setVariable("y",l.y),u.set(l.x,l.y)):(s.set(c.getRelativeX(G),c.getRelativeY(F)),l=this.newt.findZero(s),g.setVariable("x",l.x),g.setVariable("y",l.y),u.set(c.getAbsoluteX(l.x),c.getAbsoluteY(l.y))),w=u.ix(),z=u.iy(),!(0>w||w>=p||0>z||z>=m||h[w+z*c.w]))if(h[w+z*c.w]=!0,a.rangeOK&&g.evalExpression(this.drawif)&&H.drawImage(this.auxCanvas,
w,z),r.x=l.x,r.y=l.y,t.x=l.x,t.y=l.y,B=this.newt.getUnitNormal(),!(0==B.x&&0==B.y)){B.rotL90();n.x=B.x;n.y=B.y;D=x=0;for(C=!1;2>D;){C&&(n.x=-B.x,n.y=-B.y,l.x=r.x,l.y=r.y,t.x=l.x,t.y=l.y,this.abs_coord?u.set(l.x,l.y):u.set(c.getAbsoluteX(l.x),c.getAbsoluteY(l.y)),w=u.ix(),z=u.iy(),C=!1,x=0);this.abs_coord?(l.x+=n.x,l.y+=n.y):(l.x+=n.x/c.scale,l.y+=n.y/c.scale);l=this.newt.findZero(l);g.setVariable("x",l.x);g.setVariable("y",l.y);n.x=l.x-t.x;n.y=l.y-t.y;n.normalize();if(0==n.x&&0==n.y)break;t.x=l.x;
t.y=l.y;this.abs_coord?u.set(l.x,l.y):u.set(c.getAbsoluteX(l.x),c.getAbsoluteY(l.y));A=f(u.ix());y=f(u.iy());if(A!=w||y!=z)if(w=A,z=y,0<=w&&w<p&&0<=z&&z<m)if(x=0,h[w+z*c.w])break;else h[w+z*c.w]=!0,a.rangeOK&&g.evalExpression(this.drawif)&&H.drawImage(this.auxCanvas,w,z);else C=!0,D++;else 4<++x&&(C=!0,D++)}}H.setTransform(1,0,0,1,0,0)};a.Equation.prototype.X=function(a,b,d){d||(b=this.space.w/2+this.space.Ox+this.space.scale*b);b<-a&&(b=-a);b>this.space.w+a&&(b=this.space.w+a);return b};a.Equation.prototype.Y=
function(a,b,d){d||(b=this.space.h/2+this.space.Oy-this.space.scale*b);b<-a&&(b=-a);b>this.space.h+a&&(b=this.space.h+a);return b};a.Equation.prototype.XX=function(a,b,d){return Math.round(this.X(a,b,d))};a.Equation.prototype.YY=function(a,b,d){return Math.round(this.Y(a,b,d))};a.Equation.prototype.extrapolate=function(b,d,e,c,j,l){for(var g=this.evaluator.getVariable(d),f=l/2,k=0;1E-12<Math.abs(f);){var h=this.evaluator.getVariable(d),m=this.evaluator.getVariable(d)+f;this.evaluator.setVariable(d,
m);var n=!0,p=j;j=this.evaluator.evalExpression(this.funExpr);this.evaluator.setVariable(e,j);if(0<this.evaluator.evalExpression(b)){var t=new a.R2(Math.min(p,j),Math.max(p,j)),r=0,r=0<l?this.Singularity(Math.abs(f),d,c,h,p,m,j,t):this.Singularity(Math.abs(f),d,c,m,j,h,p,t);0<r&&(n=!1)}else n=!1;n?k+=f:this.evaluator.setVariable(d,h);f/=2}this.evaluator.setVariable(d,g);return new a.R2(k/Math.abs(l),j)};a.Equation.prototype.extrapolateOnSingularity=function(b,d,e,c,j,l){c=this.evaluator.getVariable(d);
for(var g=l/2,f=0,k=j;1E-12<Math.abs(g);){this.evaluator.setVariable(this.evaluator.getVariable(d)+g);var h=!0;0<this.evaluator.evalExpression(b)?(k=this.evaluator.evalExpression(this.funExpr),this.evaluator.setVariable(e,k),0>=this.evaluator.evalExpression(b)&&(h=!1)):h=!1;h?f+=g:this.evaluator.setVariable(this.evaluator.getVariable(d)-g);g/=2}if(0==f){g=l/2;f=l;for(k=j;1E-12<Math.abs(g);)this.evaluator.setVariable(this.evaluator.getVariable(d)-g),h=!0,0<this.evaluator.evalExpression(b)?k=this.evaluator.evalExpression(this.funExpr):
h=!1,h?f+=-g:this.evaluator.setVariable(this.evaluator.getVariable(d)+g),g/=2}this.evaluator.setVariable(c);return new a.R2(f/Math.abs(l),k)};a.Equation.prototype.Singularity=function(a,b,d,e,c,j,g,l){if(e>=j)return 2;var f=this.evaluator.getVariable(b),k=0;if(1E-12>Math.abs(j-e)||1E-8>Math.abs(j-e)&&Math.abs(g-c)>Math.abs(a))return this.evaluator.setVariable(b,f),1;var h=(e+j)/2;this.evaluator.setVariable(b,h);var m=this.evaluator.evalExpression(this.funExpr);if(Math.abs(g-c)>a){this.evaluator.setVariable(b,
e-1E-6);var n=this.evaluator.evalExpression(this.funExpr),n=(c-n)/1E-6;this.evaluator.setVariable(b,j+1E-6);var p=(this.evaluator.evalExpression(this.funExpr)-g)/1E-6,t=(g-c)/(j-e);if(10>Math.abs(p)||10>Math.abs(n))if((0<=p&&0<=n||0>=p&&0>=n)&&8*Math.abs(p)<Math.abs(t))return this.evaluator.setVariable(b,f),2}l.x<=m&&m<=l.y||(this.evaluator.setVariable(b,h),l.x=Math.min(c,m),l.y=Math.max(c,m),e=this.Singularity(a/2,b,d,e,c,h,m,l),this.evaluator.setVariable(b,j),l.x=Math.min(g,m),l.y=Math.max(g,m),
a=this.Singularity(a/2,b,d,h,m,j,g,l),k=Math.max(e,a));this.evaluator.setVariable(b,f);return k};a.Equation.prototype.drawAuxFun=function(b){j=this.evaluator.parser.getVariable("x");e=this.evaluator.parser.getVariable("y");var d="x",c="y";this.of_y&&(d="y",c="x");var g=this.drawif,l=this.evaluator.evalExpression(this.width),f=!1,k=new a.R2(this.space.w/2+this.space.Ox,this.space.h/2+this.space.Oy),k=this.of_y?k.ix():k.iy(),h=0,m=0,n=0,p=1/this.space.scale,t=p*(this.of_y?-this.space.h+(this.space.h/
2+this.space.Oy):-(this.space.w/2+this.space.Ox)),h=0;this.abs_coord&&(t=this.space.h,p=-1);for(var r=this.of_y?this.space.h:this.space.w;m<r;){var q=!0,w=0;this.evaluator.setVariable(d,t);var s=this.evaluator.evalExpression(this.funExpr);if(isNaN(s))q=!1;else{this.evaluator.setVariable(c,s);if(0<this.evaluator.evalExpression(this.drawif)&&a.rangeOK){if(f){var w=Math.min(h,s),u=Math.max(h,s),u=new a.R2(w,u),w=this.Singularity(p,d,0,t-p,h,t,s,u);0===w?(h<=s?(h=u.x,s=u.y):(s=u.x,h=u.y),w=this.of_y?
this.XX(l,h,this.abs_coord):this.YY(l,h,this.abs_coord),h=this.abs_coord?Math.round(s):this.of_y?this.XX(l,s,this.abs_coord):this.YY(l,s,this.abs_coord),this.fillM&&h>k&&(b.lineWidth=1,b.strokeStyle=this.fillM.getColor(),b.beginPath(),this.of_y?(b.moveTo(k+1,this.space.h-m+0.5),b.lineTo(h,this.space.h-m+0.5)):(b.moveTo(m+0.5,k+1),b.lineTo(m+0.5,h)),b.stroke()),this.fillP&&h<k&&(b.lineWidth=1,b.strokeStyle=this.fillP.getColor(),b.beginPath(),this.of_y?(b.moveTo(k-1,this.space.h-m+0.5),b.lineTo(h,this.space.h-
m+0.5)):(b.moveTo(m+0.5,k-1),b.lineTo(m+0.5,h)),b.stroke()),b.lineWidth=l,b.strokeStyle=this.color.getColor(),b.beginPath(),this.of_y?(b.moveTo(w+0.5,this.space.h-n),b.lineTo(h+0.5,this.space.h-m)):(b.moveTo(n+0.5,w),b.lineTo(m+0.5,h)),b.stroke()):(1===w&&(this.evaluator.setVariable(d,t-p),n=this.extrapolate(g,d,c,0,h,p),this.YY(l,n.y,this.abs_coord),this.evaluator.setVariable(d,t),n=this.extrapolate(g,d,c,0,s,-p),this.YY(l,n.y,this.abs_coord)),this.YY(l,s,this.abs_coord))}else n=this.extrapolateOnSingularity(g,
d,c,0,s,-p),this.YY(l,n.y,this.abs_coord),this.YY(l,s,this.abs_coord);h=s}else q=!1;f&&!q&&(this.evaluator.setVariable(d,t-p),this.evaluator.setVariable(c,h),n=this.extrapolate(g,d,c,0,h,p),this.YY(l,n.y,this.abs_coord),this.evaluator.setVariable(d,t))}f=q;t+=p;n=m++}this.evaluator.parser.setVariable("x",j);this.evaluator.parser.setVariable("y",e)};a.Equation.prototype.registerTextField=function(){var a=document.createElement("input");a.value=this.expresionString;a.disabled=!this.editable;var b=this;
a.onkeydown=function(a){13==a.keyCode&&(b.expresion=b.evaluator.parser.parse(this.value),b.parseExpression(),b.parent.update())};this.parent.editableRegion.textFields.push(a)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.round;a.Curve=function(b,d){this.parameter="t";this.parameter_interval=b.evaluator.parser.parse("[0,1]");this.parameter_steps=b.evaluator.parser.parse("8");this.width=b.evaluator.parser.parse("1");this.fill="";a.Graphic.call(this,b,d);(this.visible=
2==this.parent.version&&void 0==this.visible?!0:!1)&&this.registerTextField()};a.extend(a.Curve,a.Graphic);var h,g,b,c,d,j,e,p,m,k,q;a.Curve.prototype.update=function(){h=this.evaluator;g=h.evalExpression(this.parameter_interval);this.paraInf=g[0][0];this.paraSup=g[0][1];this.pSteps=h.evalExpression(this.parameter_steps);this.paraSep=0<this.pSteps?Math.abs(this.paraSup-this.paraInf)/this.pSteps:0};a.Curve.prototype.draw=function(){this.uber.draw.call(this,this.fill,this.color)};a.Curve.prototype.drawTrace=
function(){this.uber.drawTrace.call(this,this.fill,this.trace)};a.Curve.prototype.drawAux=function(g,t,n){h=this.evaluator;b=this.space;c=f(h.evalExpression(this.width));g.lineWidth=0<c?c:1E-6;g.lineCap="round";g.lineJoin="round";g.strokeStyle=n.getColor();d=h.getVariable(this.parameter);g.beginPath();h.setVariable(this.parameter,this.paraInf);j=h.evalExpression(this.expresion);this.exprX=this.abs_coord?f(j[0][0]):f(b.getAbsoluteX(j[0][0]));this.exprY=this.abs_coord?f(j[0][1]):f(b.getAbsoluteY(j[0][1]));
this.rotateExp&&(e=a.degToRad(h.evalExpression(this.rotateExp)),p=Math.cos(e),m=Math.sin(e),k=this.exprX*p-this.exprY*m,q=this.exprX*m+this.exprY*p,this.exprX=k,this.exprY=q);g.moveTo(this.exprX+0.5,this.exprY+0.5);for(n=1;n<=this.pSteps;n++)h.setVariable(this.parameter,this.paraInf+n*this.paraSep),j=h.evalExpression(this.expresion),this.exprX=this.abs_coord?f(j[0][0]):f(b.getAbsoluteX(j[0][0])),this.exprY=this.abs_coord?f(j[0][1]):f(b.getAbsoluteY(j[0][1])),this.rotateExp&&(k=this.exprX*p-this.exprY*
m,q=this.exprX*m+this.exprY*p,this.exprX=k,this.exprY=q),g.lineTo(this.exprX+0.5,this.exprY+0.5);this.fill&&(g.fillStyle=t.getColor(),g.fill());g.stroke();h.setVariable(this.parameter,d)};a.Curve.prototype.registerTextField=function(){var a=document.createElement("input");a.value=this.expresionString;a.disabled=!this.editable;var b=this;a.onkeydown=function(a){13==a.keyCode&&(b.expresion=b.evaluator.parser.parse(this.value),b.parent.update())};this.parent.editableRegion.textFields.push(a)};return a}(descartesJS||
{}),descartesJS=function(a){if(a.loadLib)return a;var f=2*Math.PI,h=Math.round,g,b,c,d,j,e,p,m,k,q,r,t,n;a.Sequence=function(b,d){this.size=b.evaluator.parser.parse("2");a.Graphic.call(this,b,d)};a.extend(a.Sequence,a.Graphic);a.Sequence.prototype.update=function(){g=this.evaluator;c=g.evalExpression(this.expresion);this.exprX=c[0][0];this.exprY=c[0][1];this.rotateExp&&(d=a.degToRad(g.evalExpression(this.rotateExp)),j=Math.cos(d),e=Math.sin(d),p=this.exprX*j-this.exprY*e,m=this.exprX*e+this.exprY*
j,this.exprX=p,this.exprY=m);r=g.evalExpression(this.range);this.rangeInf=r[0][0];this.rangeMax=r[0][1]};a.Sequence.prototype.draw=function(){this.uber.draw.call(this,this.color,this.color)};a.Sequence.prototype.drawTrace=function(){this.uber.drawTrace.call(this,this.trace,this.trace)};a.Sequence.prototype.drawAux=function(a,d){g=this.evaluator;b=this.space;t=Math.ceil(g.evalExpression(this.size)-0.4);a.fillStyle=d.getColor();a.beginPath();this.rangeInf>this.rangeMax&&(n=this.rangeInf,this.rangeInf=
this.rangeMax,this.rangeMax=n);for(var e=g.getVariable("n"),j=this.rangeInf,m=this.rangeMax;j<=m;j++)g.setVariable("n",j),c=g.evalExpression(this.expresion),this.exprX=c[0][0],this.exprY=c[0][1],k=this.abs_coord?h(this.exprX):h(b.getAbsoluteX(this.exprX)),q=this.abs_coord?h(this.exprY):h(b.getAbsoluteY(this.exprY)),a.beginPath(),a.arc(k,q,t,0,f,!0),a.fill();a.fill();this.text!=[""]&&this.uber.drawText.call(this,a,this.text,k+t,q-t,this.color,this.font,"start","alphabetic",g.evalExpression(this.decimals),
this.fixed,!0);g.setVariable("n",e)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=2*Math.PI,h=Math.round,g,b,c,d,j,e,p,m,k,q,r,t;a.Point=function(b,d){this.size=b.evaluator.parser.parse("2");a.Graphic.call(this,b,d)};a.extend(a.Point,a.Graphic);a.Point.prototype.update=function(){g=this.evaluator;c=g.evalExpression(this.expresion);this.exprX=c[0][0];this.exprY=c[0][1];this.rotateExp&&(d=a.degToRad(g.evalExpression(this.rotateExp)),j=Math.cos(d),e=Math.sin(d),p=this.exprX*
j-this.exprY*e,m=this.exprX*e+this.exprY*j,this.exprX=p,this.exprY=m)};a.Point.prototype.draw=function(){this.uber.draw.call(this,this.color,this.color)};a.Point.prototype.drawTrace=function(){this.uber.drawTrace.call(this,this.trace,this.trace)};a.Point.prototype.drawAux=function(a,d){g=this.evaluator;b=this.space;r=h(g.evalExpression(this.size));t=r+1;a.fillStyle=d.getColor();k=this.abs_coord?h(this.exprX):h(b.getAbsoluteX(this.exprX));q=this.abs_coord?h(this.exprY):h(b.getAbsoluteY(this.exprY));
a.beginPath();a.arc(k,q,r,0,f,!0);a.fill();this.text!=[""]&&this.uber.drawText.call(this,a,this.text,k+t+1,q-t,this.color,this.font,"start","alphabetic",g.evalExpression(this.decimals),this.fixed,!0)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.round,h=2*Math.PI,g,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s,w,z;a.Segment=function(b,d){this.width=b.evaluator.parser.parse("1");this.size=b.evaluator.parser.parse("2");a.Graphic.call(this,b,d)};a.extend(a.Segment,a.Graphic);a.Segment.prototype.update=
function(){g=this.evaluator;c=g.evalExpression(this.expresion);this.endPoints=[];for(var b=0,l=c.length;b<l;b++)this.endPoints[b]={x:c[b][0],y:c[b][1]};if(this.rotateExp){d=a.degToRad(g.evalExpression(this.rotateExp));j=Math.cos(d);e=Math.sin(d);b=0;for(l=this.endPoints.length;b<l;b++)p=this.endPoints[b].x*j-this.endPoints[b].y*e,m=this.endPoints[b].x*e+this.endPoints[b].y*j,this.endPoints[b].x=p,this.endPoints[b].y=m}};a.Segment.prototype.draw=function(){this.uber.draw.call(this,this.color,this.color)};
a.Segment.prototype.drawTrace=function(){this.uber.drawTrace.call(this,this.trace,this.trace)};a.Segment.prototype.drawAux=function(a,d,e){g=this.evaluator;b=this.space;k=f(g.evalExpression(this.width));a.lineWidth=0<k?k:1E-6;n=g.evalExpression(this.size);0>n&&(n=0);a.fillStyle=d.getColor();a.strokeStyle=e.getColor();a.lineCap="round";q=10+a.lineWidth;u=0==a.lineWidth%2?0:0.5;this.abs_coord?(l=f(this.endPoints[0].x),s=f(this.endPoints[0].y),w=f(this.endPoints[1].x),z=f(this.endPoints[1].y)):(l=f(b.getAbsoluteX(this.endPoints[0].x)),
s=f(b.getAbsoluteY(this.endPoints[0].y)),w=f(b.getAbsoluteX(this.endPoints[1].x)),z=f(b.getAbsoluteY(this.endPoints[1].y)));a.beginPath();a.moveTo(l+u,s+u);a.lineTo(w+u,z+u);a.stroke();a.beginPath();a.arc(l,s,n,0,h,!0);a.arc(w,z,n,0,h,!0);a.fill();this.text!=[""]&&(r=parseInt((l+w)/2)-3,t=parseInt((s+z)/2)+3,this.uber.drawText.call(this,a,this.text,r+q,t-q,this.color,this.font,"start","alphabetic",g.evalExpression(this.decimals),this.fixed,!0))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;
var f=Math.floor,h=Math.round,g,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s,w,z;a.Arrow=function(b,d){this.width=b.evaluator.parser.parse("5");this.size=b.evaluator.parser.parse("2");this.spear=b.evaluator.parser.parse("8");this.arrow=new a.Color("ee0022");a.Graphic.call(this,b,d)};a.extend(a.Arrow,a.Graphic);a.Arrow.prototype.update=function(){g=this.evaluator;b=g.evalExpression(this.expresion);this.endPoints=[];for(var l=0,f=b.length;l<f;l++)this.endPoints[l]={x:b[l][0],y:b[l][1]};if(this.rotateExp){c=a.degToRad(g.evalExpression(this.rotateExp));
d=Math.cos(c);j=Math.sin(c);l=0;for(f=this.endPoints.length;l<f;l++)e=this.endPoints[l].x*d-this.endPoints[l].y*j,p=this.endPoints[l].x*j+this.endPoints[l].y*d,this.endPoints[l].x=e,this.endPoints[l].y=p}};a.Arrow.prototype.draw=function(){this.uber.draw.call(this,this.arrow,this.color)};a.Arrow.prototype.drawTrace=function(){this.uber.drawTrace.call(this,this.arrow,this.trace)};a.Arrow.prototype.drawAux=function(b,d,e){g=this.evaluator;m=this.space;g.evalExpression(this.size);r=g.evalExpression(this.width);
0>r&&(r=0);t=Math.ceil(r/2);n=m.scale;this.vect=new a.Vector2D(this.endPoints[1].x-this.endPoints[0].x,this.endPoints[1].y-this.endPoints[0].y);u=this.vect.vectorLength();this.angle=this.vect.angleBetweenVectors(a.Vector2D.AXIS_X);b.fillStyle=d.getColor();b.strokeStyle=e.getColor();b.lineWidth=2;this.abs_coord?(l=h(this.endPoints[0].x),s=h(this.endPoints[0].y),w=h(this.endPoints[1].x),z=h(this.endPoints[1].y)):(l=h(m.getAbsoluteX(this.endPoints[0].x)),s=h(m.getAbsoluteY(this.endPoints[0].y)),w=h(m.getAbsoluteX(this.endPoints[1].x)),
z=h(m.getAbsoluteY(this.endPoints[1].y)));d=g.evalExpression(this.spear);0>d&&(d=0);b.save();b.translate(l,s,u);this.abs_coord?0<=this.vect.x&&0<=this.vect.y||0>=this.vect.x&&0<=this.vect.y?b.rotate(this.angle):b.rotate(-this.angle):(u*=n,0<=this.vect.x&&0<=this.vect.y||0>=this.vect.x&&0<=this.vect.y?b.rotate(-this.angle):b.rotate(this.angle));b.beginPath();b.moveTo(-t,f(-t));b.lineTo(f(u-d-r),f(-t));b.lineTo(f(u-2*d),f(-d-t));b.lineTo(f(u),0);b.lineTo(f(u-2*d),f(d+t));b.lineTo(f(u-d-r),f(t));b.lineTo(-t,
f(t));b.closePath();b.stroke();b.fill();b.restore();this.text!=[""]&&(k=parseInt((l+w)/2)-3,q=parseInt((s+z)/2)+3,this.uber.drawText.call(this,b,this.text,k,q,e,this.font,"start","alphabetic",g.evalExpression(this.decimals),this.fixed,!0))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.round,h,g,b,c,d,j,e,p,m,k,q,r;a.Polygon=function(b,d){this.width=b.evaluator.parser.parse("1");this.fill="";a.Graphic.call(this,b,d);this.endPoints=[]};a.extend(a.Polygon,a.Graphic);
a.Polygon.prototype.update=function(){h=this.evaluator;b=h.evalExpression(this.expresion);for(var g=0,f=b.length;g<f;g++)this.endPoints[g]={x:b[g][0],y:b[g][1]};if(this.rotateExp){c=a.degToRad(h.evalExpression(this.rotateExp));d=Math.cos(c);j=Math.sin(c);g=0;for(f=this.endPoints.length;g<f;g++)e=this.endPoints[g].x*d-this.endPoints[g].y*j,p=this.endPoints[g].x*j+this.endPoints[g].y*d,this.endPoints[g].x=e,this.endPoints[g].y=p}};a.Polygon.prototype.draw=function(){this.uber.draw.call(this,this.fill,
this.color)};a.Polygon.prototype.drawTrace=function(){this.uber.drawTrace.call(this,this.trace,this.trace)};a.Polygon.prototype.drawAux=function(a,b,d){h=this.evaluator;g=this.space;m=f(h.evalExpression(this.width));a.lineWidth=0<m?m:1E-6;a.strokeStyle=d.getColor();a.lineCap="round";a.lineJoin="round";k=0<m?0.5:0;q=this.abs_coord?f(this.endPoints[0].x):f(g.getAbsoluteX(this.endPoints[0].x));r=this.abs_coord?f(this.endPoints[0].y):f(g.getAbsoluteY(this.endPoints[0].y));a.beginPath();a.moveTo(q+k,r+
k);d=1;for(var e=this.endPoints.length;d<e;d++)q=this.abs_coord?f(this.endPoints[d].x):f(g.getAbsoluteX(this.endPoints[d].x)),r=this.abs_coord?f(this.endPoints[d].y):f(g.getAbsoluteY(this.endPoints[d].y)),a.lineTo(q+k,r+k);this.fill&&(a.fillStyle=b.getColor(),a.fill());a.stroke()};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.round;a.Arc=function(b,d){this.width=b.evaluator.parser.parse("1");this.fill="";this.center=b.evaluator.parser.parse("(0,0)");this.radius=
b.evaluator.parser.parse("1");this.init=b.evaluator.parser.parse("0");this.end=b.evaluator.parser.parse("90");a.Graphic.call(this,b,d)};a.extend(a.Arc,a.Graphic);var h,g,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s,w,z,B,x,D,C,A;a.Arc.prototype.update=function(){h=this.evaluator;g=h.evalExpression(this.center);this.exprX=g[0][0];this.exprY=g[0][1];this.rotateExp&&(b=a.degToRad(h.evalExpression(this.rotateExp)),c=Math.cos(b),d=Math.sin(b),j=this.exprX*c-this.exprY*d,e=this.exprX*d+this.exprY*c,this.exprX=j,this.exprY=
e);p=h.evalExpression(this.init);m=h.evalExpression(this.end);"(expr)"==this.init.type&&"(expr)"==this.end.type||"[expr]"==this.init.type&&"[expr]"==this.end.type||"(expr)"==this.init.type&&"[expr]"==this.end.type||"[expr]"==this.init.type&&"(expr)"==this.end.type?(this.vectors=!0,k=p[0][0],q=p[0][1],r=m[0][0],t=m[0][1],n=Math.acos((1*k+0*q)/Math.sqrt(k*k+q*q)),u=Math.acos((1*r+0*t)/Math.sqrt(r*r+t*t)),0<k&&(0<q&&!this.abs_coord)&&(n=2*Math.PI-n),0<k&&(0>q&&this.abs_coord)&&(n=2*Math.PI-n),0>k&&(0>
q&&this.abs_coord)&&(n=2*Math.PI-n),0>k&&(0<q&&!this.abs_coord)&&(n=2*Math.PI-n),0<r&&(0<t&&!this.abs_coord)&&(u=2*Math.PI-u),0<r&&(0>t&&this.abs_coord)&&(u=2*Math.PI-u),0>r&&(0>t&&this.abs_coord)&&(u=2*Math.PI-u),0>r&&(0<t&&!this.abs_coord)&&(u=2*Math.PI-u),l=Math.min(n,u),s=Math.max(n,u),n=l,u=s,u-n>Math.PI&&this.abs_coord&&(n=s,u=l),u-n<=Math.PI&&!this.abs_coord&&(n=s,u=l),this.iniAng=n,this.endAng=u):(this.vectors=!1,this.iniAng=a.degToRad(p),this.endAng=a.degToRad(m))};a.Arc.prototype.draw=function(){this.uber.draw.call(this,
this.fill,this.color)};a.Arc.prototype.drawTrace=function(){this.uber.drawTrace.call(this,this.fill,this.trace)};a.Arc.prototype.drawAux=function(a,b,d){h=this.evaluator;w=this.space;z=this.abs_coord?f(this.exprX):f(w.getAbsoluteX(this.exprX));B=this.abs_coord?f(this.exprY):f(w.getAbsoluteY(this.exprY));x=h.evalExpression(this.radius);!this.vectors&&this.iniAng>this.endAng&&(D=this.iniAng,this.iniAng=this.endAng,this.endAng=D);0>x&&(x=0);C=!1;this.abs_coord||(x*=w.scale,this.vectors||(this.iniAng=
-this.iniAng,this.endAng=-this.endAng,C=!0));this.vectors&&(C=this.abs_coord?!1:!0);A=f(h.evalExpression(this.width));a.lineWidth=0<A?A:1E-6;a.lineCap="round";a.strokeStyle=d.getColor();this.fill&&(a.fillStyle=b.getColor(),a.beginPath(),a.moveTo(z,B),a.arc(z,B,x,this.iniAng,this.endAng,C),a.fill());a.beginPath();a.arc(z,B,x,this.iniAng,this.endAng,C);a.stroke();this.text!=[""]&&this.uber.drawText.call(this,a,this.text,z+4,B-2,this.color,this.font,"start","alphabetic",h.evalExpression(this.decimals),
this.fixed,!0)};return a}(descartesJS||{}),descartesJS=function(a){function f(a,b,d){e=4*(b+d*a.width);return{r:a.data[e],g:a.data[e+1],b:a.data[e+2],a:a.data[e+3]}}if(a.loadLib)return a;var h,g,b,c,d,j,e;a.Fill=function(b,d){a.Graphic.call(this,b,d)};a.extend(a.Fill,a.Graphic);a.Fill.prototype.update=function(){h=this.evaluator.evalExpression(this.expresion);this.exprX=h[0][0];this.exprY=h[0][1]};a.Fill.prototype.draw=function(){this.uber.draw.call(this,this.color,this.color)};a.Fill.prototype.drawTrace=
function(){};a.Fill.prototype.drawAux=function(a,h){h.getColor();imageData=this.ctx.getImageData(0,0,this.space.w,this.space.h);this.abs_coord?(g=parseInt(this.exprX),b=parseInt(this.exprY)):(g=parseInt(this.space.getAbsoluteX(this.exprX)),b=parseInt(this.space.getAbsoluteY(this.exprY)));console.log(g,b);if(!(0>g||0>b||g>=this.space.w||b>=this.space.h)){c=[{x:g,y:b}];for(j=f(imageData,g,b);0<c.length;){d=c.pop();g=d.x;b=d.y;var k=f(imageData,g,b);if(j.r===k.r&&j.g===k.g&&j.b===k.b&&j.a===k.a){var k=
imageData,q=h;e=4*(g+b*k.width);k.data[e+0]=q.r;k.data[e+1]=q.g;k.data[e+2]=q.b;k.data[e+3]=255-q.a;0<g&&c.push({x:g-1,y:b});g<imageData.width-1&&c.push({x:g+1,y:b});c.push({x:g,y:b-1});c.push({x:g,y:b+1})}}this.ctx.putImageData(imageData,0,0)}};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s;a.Text=function(b,d){this.width=b.evaluator.parser.parse("0");a.Graphic.call(this,b,d);this.align||(this.align="start");this.ascent=this.fontSize-
Math.ceil(this.fontSize/7)-(this.font.match("Courier")?3:0);this.abs_coord=!0};a.extend(a.Text,a.Graphic);a.Text.prototype.update=function(){f=this.evaluator;h=f.evalExpression(this.expresion);this.exprX=h[0][0];this.exprY=h[0][1];this.rotateExp&&(g=a.degToRad(f.evalExpression(this.rotateExp)),b=Math.cos(g),c=Math.sin(g),d=this.exprX*b-this.exprY*c,j=this.exprX*c+this.exprY*b,this.exprX=d,this.exprY=j)};a.Text.prototype.draw=function(){this.uber.draw.call(this,this.color)};a.Text.prototype.drawTrace=
function(){this.uber.drawTrace.call(this,this.color)};a.Text.prototype.drawAux=function(a,b){s=this.evaluator.evalExpression(this.decimals);"rtfNode"===this.text.type?(k=this.text,this.ascent=0):k=this.splitText(this.text.toString(s,this.fixed).split("\\n"));this.text!=[""]&&this.uber.drawText.call(this,a,k,parseInt(this.exprX)+5,parseInt(this.exprY)+this.ascent,b,this.font,this.align,"alphabetic",s,this.fixed)};a.Text.prototype.splitText=function(a){f=this.evaluator;e=f.evalExpression(this.width);
k=[];this.ctx.font=this.font;if(20<=e&&"undefined"!=a.type){for(var b=0,d=a.length;b<d;b++)p=a[b],m=this.ctx.measureText(p).width,m>e?k=k.concat(this.splitWords(p,e)):k.push(p);q=Math.floor(1.2*this.fontSize)*k.length;f.setVariable("_Text_H_",q);return k}f.setVariable("_Text_H_",0);f.setVariable("_Text_W_",1E3);return a};a.Text.prototype.splitWords=function(a,b){r=a;t=[];n="";l=0;for(var d,e=0,c=a.length;e<c;e++)u=r.charAt(e)," "===u&&(lastIndexOfWhite=e),n+=u,Math.round(this.ctx.measureText(n).width)>
b&&(d=a.substring(l,e+1)," "!==u&&(-1===d.indexOf(" ")?(lastIndexOfWhite=e,e--):e=lastIndexOfWhite),t.push(a.substring(l,lastIndexOfWhite)),n="",l=e+1);t.push(a.substring(l));return t};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.round;a.Image=function(b,d){this.file="";this.inirot=b.evaluator.parser.parse("0");a.Graphic.call(this,b,d);this.img=new Image;this.scaleY=this.scaleX=1;this.update()};a.extend(a.Image,a.Graphic);var h,g,b,c,d,j,e,p,m,k,q,r,t,n;a.Image.prototype.update=
function(){h=this.evaluator;g=h.evalExpression(this.expresion);this.exprX=g[0][0];this.exprY=g[0][1];this.rotateExp&&(b=a.degToRad(h.evalExpression(this.rotateExp)),c=Math.cos(b),d=Math.sin(b),j=this.exprX*c-this.exprY*d,e=this.exprX*d+this.exprY*c,this.exprX=j,this.exprY=e);4==g[0].length&&(this.centered=!0,this.scaleX=g[0][2],0==this.scaleX&&(this.scaleX=1E-5),this.scaleY=g[0][3],0==this.scaleY&&(this.scaleY=1E-5));g[1]&&2==g[1].length&&(this.centered=!0,this.scaleX=g[1][0],0==this.scaleX&&(this.scaleX=
1E-5),this.scaleY=g[1][1],0==this.scaleY&&(this.scaleY=1E-5));if((p=h.evalExpression(this.file))||""==p)this.img=this.parent.getImage(p)};a.Image.prototype.draw=function(){this.uber.draw.call(this)};a.Image.prototype.drawTrace=function(){this.uber.drawTrace.call(this)};a.Image.prototype.drawAux=function(b){h=this.evaluator;m=this.space;this.img&&(this.img.ready&&this.img.complete)&&(k=this.centered?0:this.img.width/2,q=this.centered?0:this.img.height/2,r=this.abs_coord?f(this.exprX):f(m.getAbsoluteX(this.exprX)),
t=this.abs_coord?f(this.exprY):f(m.getAbsoluteY(this.exprY)),n=a.degToRad(-h.evalExpression(this.inirot)),b.translate(r+k,t+q),b.rotate(n),b.scale(this.scaleX,this.scaleY),this.opacity&&(b.globalAlpha=h.evalExpression(this.opacity)),b.drawImage(this.img,-this.img.width/2,-this.img.height/2),b.setTransform(1,0,0,1,0,0),b.globalAlpha=1)};return a}(descartesJS||{}),descartesJS=function(a){function f(a,b,d){e=4*(b+d*a.width);return{r:a.data[e],g:a.data[e+1],b:a.data[e+2],a:a.data[e+3]}}if(a.loadLib)return a;
var h,g,b,c,d,j,e;a.Fill=function(b,d){a.Graphic.call(this,b,d)};a.extend(a.Fill,a.Graphic);a.Fill.prototype.update=function(){h=this.evaluator.evalExpression(this.expresion);this.exprX=h[0][0];this.exprY=h[0][1]};a.Fill.prototype.draw=function(){this.uber.draw.call(this,this.color,this.color)};a.Fill.prototype.drawTrace=function(){};a.Fill.prototype.drawAux=function(a,h){h.getColor();imageData=this.ctx.getImageData(0,0,this.space.w,this.space.h);this.abs_coord?(g=parseInt(this.exprX),b=parseInt(this.exprY)):
(g=parseInt(this.space.getAbsoluteX(this.exprX)),b=parseInt(this.space.getAbsoluteY(this.exprY)));console.log(g,b);if(!(0>g||0>b||g>=this.space.w||b>=this.space.h)){c=[{x:g,y:b}];for(j=f(imageData,g,b);0<c.length;){d=c.pop();g=d.x;b=d.y;var k=f(imageData,g,b);if(j.r===k.r&&j.g===k.g&&j.b===k.b&&j.a===k.a){var k=imageData,q=h;e=4*(g+b*k.width);k.data[e+0]=q.r;k.data[e+1]=q.g;k.data[e+2]=q.b;k.data[e+3]=255-q.a;0<g&&c.push({x:g-1,y:b});g<imageData.width-1&&c.push({x:g+1,y:b});c.push({x:g,y:b-1});c.push({x:g,
y:b+1})}}this.ctx.putImageData(imageData,0,0)}};return a}(descartesJS||{}),descartesJS=function(a,f){if(a.loadLib)return a;a.Macro=function(h,g){this.expresion=void 0;this.inirot=h.evaluator.parser.parse("0");a.Graphic.call(this,h,g);for(var b in g)g.hasOwnProperty(b)&&(this[b]=g[b]);this.graphics=[];b=h.lessonParser;var c=new a.Tokenizer;if(void 0!=this.expresion){"'"!==this.expresion.charAt(0)&&(this.expresion="'"+this.expresion+"'");this.expresion=this.evaluator.parser.parse(this.expresion);var d=
this.evaluator.evalExpression(this.expresion),j;d&&((j=document.getElementById(d))&&"descartes/macro"==j.type?j=j.text:(j=a.openExternalFile(d))&&!j.match(/tipo_de_macro/g)&&(j=null));var e,p;if(j){p=j.replace(/&aacute;/g,"\u00e1").replace(/&eacute;/g,"\u00e9").replace(/&iacute;/g,"\u00ed").replace(/&oacute;/g,"\u00f3").replace(/&uacute;/g,"\u00fa").replace(/&Aacute;/g,"\u00c1").replace(/&Eacute;/g,"\u00c9").replace(/&Iacute;/g,"\u00cd").replace(/&Oacute;/g,"\u00d3").replace(/&Uacute;/g,"\u00da").replace(/&ntilde;/g,
"\u00f1").replace(/&Ntilde;/g,"\u00d1").replace(/\&gt;/g,">").replace(/\&lt;/g,"<").replace(/\&amp;/g,"&").replace(/\r/g,"").split("\n");j=[];for(var d=0,m=p.length;d<m;d++)e=p[d].indexOf("="),-1!==e&&(e=p[d].substring(0,e),("id"===f[e]||"type"===f[e])&&j.push(b.split(p[d])));for(var k,q,r,t,d=0,m=j.length;d<m;d++){t=(k=j[d]||[])&&k[0]&&"id"===k[0][0];p=0;for(e=k.length;p<e;p++)if(q=k[p][0].indexOf("."),-1!==q&&!t?(q=f[k[p][0].substring(q+1)],k[p][0]=this.name+"."+k[p][0]):q=f[k[p][0]],!("font"===
q||("fill"===q||"color"===q||"arrow"===q)&&"("!==k[p][1].charAt(0)||"id"!==q&&void 0!==f[k[p][1]]))if("text"==q)if(k[p][1].match(/\{\\rtf1/)){q=k[p][1];var n=this;r=function(a,b){for(var d=c.tokenize(b.replace(/\&squot;/g,"'")),e=0,j=d.length;e<j;e++)"identifier"==d[e].type&&!"-rnd-pi-e-sqr-sqrt-ra\u00edz-exp-log-log10-abs-ent-sgn-ind-sin-sen-cos-tan-cot-sec-csc-sinh-senh-cosh-tanh-coth-sech-csch-asin-asen-acos-atan-min-max-".match("-"+d[e].value+"-")&&(d[e].value=n.name+"."+d[e].value);return(a.match(/^\\expr/)?
"\\expr ":"\\decimals ")+c.flatTokens(d)};q=q.replace(/\\expr ([a-zA-Z_0-9\u00C0-\u021B+*/%|&^#!?:()><.']*)/gi,r);q=q.replace(/\\decimals ([a-zA-Z_0-9\u00C0-\u021B+*/%|&^#!?:()><.']*)/gi,r);k[p][1]=q}else{r=b.parseText(k[p][1]).textElementsMacros;for(var u=0,l=r.length;u<l;u++){q=c.tokenize(r[u].replace(/\&squot;/g,"'"));for(var s=0,w=q.length;s<w;s++)"identifier"===q[s].type&&!"-rnd-pi-e-sqr-sqrt-ra\u00edz-exp-log-log10-abs-ent-sgn-ind-sin-sen-cos-tan-cot-sec-csc-sinh-senh-cosh-tanh-coth-sech-csch-asin-asen-acos-atan-min-max-".match("-"+
q[s].value+"-")&&(q[s].value=this.name+"."+q[s].value);q=c.flatTokens(q).replace(/&squot;/g,"'").replace(/'\+\(/g,"[").replace(/\)\+'/g,"]");r[u]=q.substring(1,q.length-1)}k[p][1]=r.join("")}else{q=c.tokenize(k[p][1]);r=0;for(u=q.length;r<u;r++)"identifier"===q[r].type&&!"-rnd-pi-e-sqr-sqrt-ra\u00edz-exp-log-log10-abs-ent-sgn-ind-sin-sen-cos-tan-cot-sec-csc-sinh-senh-cosh-tanh-coth-sech-csch-asin-asen-acos-atan-min-max-".match("-"+q[r].value+"-")&&(q[r].value=this.name+"."+q[r].value);k[p][1]=c.flatTokens(q)}}d=
0;for(m=j.length;d<m;d++)if(j[d][0]){k="";t=!1;p=0;for(e=j[d].length;p<e;p++)"type"===f[j[d][p][0]]&&(k="espacio='"+this.spaceID+"' ",t=!0),k=k+j[d][p][0]+"='"+j[d][p][1]+"' ";j[d]=k;t?this.graphics.push(b.parseGraphic(j[d],this.abs_coord,this.background,this.inirot)):b.parseAuxiliar(j[d])}}}};a.extend(a.Macro,a.Graphic);a.Macro.prototype.update=function(){if(this.inipos){var a=this.evaluator.evalExpression(this.inipos);this.iniPosX=a[0][0];this.iniPosY=a[0][1]}};a.Macro.prototype.drawAux=function(a){for(var g=
0,b=this.graphics.length;g<b;g++)this.inipos&&(this.graphics[g].abs_coord?a.translate(this.iniPosX,this.iniPosY):a.translate(this.iniPosX*this.space.scale,-this.iniPosY*this.space.scale)),this.graphics[g].draw(),a.setTransform(1,0,0,1,0,0)};return a}(descartesJS||{},babel),descartesJS=function(a){if(a.loadLib)return a;var f=Math.sqrt,h=Math.sin,g=Math.cos,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s;a.norm3D=function(a){return f(a.x*a.x+a.y*a.y+a.z*a.z)};a.normalize3D=function(d){b=a.norm3D(d);if(0===b)return{x:0,
y:0,z:0};if(1===b)return{x:d.x,y:d.y,z:d.z};b=1/b;return{x:d.x*b,y:d.y*b,z:d.z*b}};a.dotProduct3D=function(a,b){return a.x*b.x+a.y*b.y+a.z*b.z};a.crossProduct3D=function(a,b){return{x:a.y*b.z-a.z*b.y,y:a.z*b.x-a.x*b.z,z:a.x*b.y-a.y*b.x}};a.scalarProduct3D=function(a,b){return{x:a.x*b,y:a.y*b,z:a.z*b}};a.subtract3D=function(a,b){return{x:a.x-b.x,y:a.y-b.y,z:a.z-b.z}};a.add3D=function(a,b){return{x:a.x+b.x,y:a.y+b.y,z:a.z+b.z}};a.equals3DEpsilon=function(a,b,d){return Math.abs(a.x-b.x)<=d&&Math.abs(a.y-
b.y)<=d&&Math.abs(a.z-b.z)<=d};a.Vector4D=function(a,b,d,e){this.x=a||0;this.y=b||0;this.z=d||0;this.w=e||0};a.Matrix4x4=function(a,b,d,e,c,j,g,l,f,k,h,m,n,p,t,r){this.a00=a||0;this.a01=b||0;this.a02=d||0;this.a03=e||0;this.a10=c||0;this.a11=j||0;this.a12=g||0;this.a13=l||0;this.a20=f||0;this.a21=k||0;this.a22=h||0;this.a23=m||0;this.a30=n||0;this.a31=p||0;this.a32=t||0;this.a33=r||0};a.Matrix4x4.prototype.setIdentity=function(){this.a00=1;this.a10=this.a03=this.a02=this.a01=0;this.a11=1;this.a21=
this.a20=this.a13=this.a12=0;this.a22=1;this.a32=this.a31=this.a30=this.a23=0;this.a33=1;return this};a.Matrix4x4.prototype.multiplyVector4=function(b){return new a.Vector4D(b.x*this.a00+b.y*this.a10+b.z*this.a20+b.w*this.a30,b.x*this.a01+b.y*this.a11+b.z*this.a21+b.w*this.a31,b.x*this.a02+b.y*this.a12+b.z*this.a22+b.w*this.a32,b.x*this.a03+b.y*this.a13+b.z*this.a23+b.w*this.a33)};a.Matrix4x4.prototype.translate=function(b){return new a.Matrix4x4(this.a00,this.a01,this.a02,this.a03,this.a10,this.a11,
this.a12,this.a13,this.a20,this.a21,this.a22,this.a23,this.a00*b.x+this.a10*b.y+this.a20*b.z+this.a30,this.a01*b.x+this.a11*b.y+this.a21*b.z+this.a31,this.a02*b.x+this.a12*b.y+this.a22*b.z+this.a32,this.a03*b.x+this.a13*b.y+this.a23*b.z+this.a33)};a.Matrix4x4.prototype.rotateX=function(b){c=h(b);d=g(b);k=this.a10;q=this.a11;r=this.a12;t=this.a13;n=this.a20;u=this.a21;l=this.a22;s=this.a23;return new a.Matrix4x4(this.a00,this.a01,this.a02,this.a03,k*d+n*c,q*d+u*c,r*d+l*c,t*d+s*c,k*-c+n*d,q*-c+u*d,
r*-c+l*d,t*-c+s*d,this.a30,this.a31,this.a32,this.a33)};a.Matrix4x4.prototype.rotateY=function(b){c=h(b);d=g(b);j=this.a00;e=this.a01;p=this.a02;m=this.a03;n=this.a20;u=this.a21;l=this.a22;s=this.a23;return new a.Matrix4x4(j*d+n*-c,e*d+u*-c,p*d+l*-c,m*d+s*-c,this.a10,this.a11,this.a12,this.a13,j*c+n*d,e*c+u*d,p*c+l*d,m*c+s*d,this.a30,this.a31,this.a32,this.a33)};a.Matrix4x4.prototype.rotateZ=function(b){c=h(b);d=g(b);j=this.a00;e=this.a01;p=this.a02;m=this.a03;k=this.a10;q=this.a11;r=this.a12;t=this.a13;
return new a.Matrix4x4(j*d+k*c,e*d+q*c,p*d+r*c,m*d+t*c,j*-c+k*d,e*-c+q*d,p*-c+r*d,m*-c+t*d,this.a20,this.a21,this.a22,this.a23,this.a30,this.a31,this.a32,this.a33)};return a}(descartesJS||{}),descartesJS=function(a){function f(a){a.lineWidth=1;a.fillStyle=this.backColor.getColor();a.strokeStyle=this.frontColor.getColor();a.beginPath();a.arc(this.newV[0].x,this.newV[0].y,this.size+0.5,0,d);a.fill();a.stroke()}function h(a,b){a.lineCap=j;a.lineJoin=e;this.frontColor.getColor();this.backColor.getColor();
a.beginPath();a.moveTo(this.newV[0].x,this.newV[0].y);for(var d=1,c=this.newV.length;d<c;d++)a.lineTo(this.newV[d].x,this.newV[d].y);a.closePath();"color"===this.model?(a.fillStyle=0<=this.direction?this.backColor.getColor():this.frontColor.getColor(),a.fill()):"light"===this.model||"metal"===this.model?(a.fillStyle=0<=this.direction?b.computeColor(this.backColor,this,"metal"===this.model):b.computeColor(this.frontColor,this,"metal"===this.model),a.fill()):"wire"===this.model&&(a.lineWidth=1.25,a.strokeStyle=
this.frontColor.getColor(),a.stroke());this.edges&&"wire"!==this.model&&(a.lineWidth=1,a.strokeStyle="#808080",a.stroke())}function g(a){this.drawText(a,this.text,this.newV[0].x,this.newV[0].y+this.displace,this.frontColor.getColor(),this.font,"left","alphabetic",this.decimals,this.fixed,!0)}function b(a){a.lineCap=j;a.lineJoin=e;a.lineWidth=this.lineWidth;a.strokeStyle=this.frontColor.getColor();a.beginPath();a.moveTo(this.newV[0].x,this.newV[0].y);a.lineTo(this.newV[1].x,this.newV[1].y);a.stroke()}
function c(b,d,e){p=a.subtract3D(b,d);m=a.subtract3D(b,e);return a.normalize3D(a.crossProduct3D(p,m))}if(a.loadLib)return a;var d=2*Math.PI,j="round",e="round",p,m,k,q,r;a.Primitive3D=function(a){for(var d in a)a.hasOwnProperty(d)&&(this[d]=a[d]);this.newV=[];"vertex"===this.type?this.draw=f:"face"===this.type?(this.normal=c(this.vertices[0],this.vertices[1],this.vertices[2]),this.draw=h):"text"===this.type?(this.fontSize=(this.fontSize=this.font.match(/(\d+)px/))?parseInt(this.fontSize[1]):10,this.draw=
g):"edge"===this.type&&(this.draw=b);this.isText&&(this.computeDepth=function(){this.newV=this.vertices;this.depth=this.vertices[0].z})};a.Primitive3D.prototype.computeDepth=function(b){this.average={x:0,y:0,z:0};for(var d=0,e=this.vertices.length;d<e;d++)this.newV[d]=b.rotateVertex(this.vertices[d]),this.average.x+=this.newV[d].x,this.average.y+=this.newV[d].y,this.average.z+=this.newV[d].z;this.average=a.scalarProduct3D(this.average,1/e);2<this.vertices.length&&(this.normal=c(this.newV[0],this.newV[1],
this.newV[2]),this.direction=a.dotProduct3D(this.normal,a.normalize3D(b.eye)));d=this.depth=0;for(e=this.vertices.length;d<e;d++)this.newV[d]=b.project(this.newV[d]),this.depth+=this.newV[d].z;this.depth/=e};a.Primitive3D.prototype.drawText=function(b,d,e,c,j,g,f,h,m,p,C){if("rtfNode"==d.type)b.fillStyle=j,b.strokeStyle=j,b.textBaseline="alphabetic",d.draw(b,e,c,m,p,f,C);else{"simpleText"===d.type&&(d=d.toString(m,p).split("\\n"));e+=g.match("Arial")?-2:g.match("Times")?-2:0;k=this.evaluator;b.fillStyle=
a.getColor(k,j);b.font=g;b.textAlign=f;b.textBaseline=h;q=1.2*this.fontSize||0;j=0;for(g=d.length;j<g;j++)r=d[j],this.border&&b.strokeText(r,e,c+q*j),b.fillText(r,e,c+q*j)}};a.Primitive3D.prototype.splitFace=function(b){if(this.intersects(b)){for(var d=null,e=null,c=0,j=0,g=0,f=b.vertices.length;g<f;g++){var k=this.intersection(b.vertices[g],b.vertices[(g+1)%f]);if(null!==k)if(null===d){if(d=k,c=g,2===b.vertices.length){e=d;break}}else if(!a.equals3DEpsilon(k,d,1E-8)){e=k;j=g;break}}if(null!==d&&
null!==e){var g=this.isInterior(d)||this.isInterior(e),h=null,m=null;if(!g&&3<=b.vertices.length)for(var f=0,p=this.vertices.length;f<p;f++)if(k=b.intersection(this.vertices[f],this.vertices[(f+1)%p]),null!==k)if(null===h)h=k;else if(!a.equals3DEpsilon(k,h,1E-8)){m=k;break}if(g||null!==h&&null!==m&&b.isInterior(h)&&b.isInterior(m)){m=!0;p=b.vertices;h=k=null;if(2===p.length)a.equals(d,p[0],1E-8)||a.equals(d,p[1],1E-8)?m=!1:(k=[],k[0]=p[0],k[1]=d,h=[],h[0]=d,h[1]=p[1]);else for(var k=[],h=[],r=0,g=
f=0;g<p.length;g++)g<c?k[r++]=p[g]:g==c?(k[r++]=p[g],k[r++]=d,h[f++]=d):g<j?h[f++]=p[g]:g==j?(h[f++]=p[g],h[f++]=e,k[r++]=e):k[r++]=p[g];if(m)return d=[],d[0]=new a.Primitive3D({vertices:k,type:"face",frontColor:b.frontColor,backColor:b.backColor,edges:b.edges,model:b.model}),d[0].normal=b.normal,d[1]=new a.Primitive3D({vertices:h,type:"face",frontColor:b.frontColor,backColor:b.backColor,edges:b.edges,model:b.model}),d[1].normal=b.normal,d}}}return[b]};a.Primitive3D.prototype.intersects=function(a){return this.intersectsPlane(a)&&
a.intersectsPlane(this)};a.Primitive3D.prototype.intersectsPlane=function(b){var d=a.dotProduct3D(b.vertices[0],b.normal),e=a.dotProduct3D(this.vertices[0],b.normal);if(1E-8>Math.abs(d-e))return!0;for(var c=1,j=this.vertices.length;c<j;c++){var g=a.dotProduct3D(this.vertices[c],b.normal);if(1E-8>Math.abs(d-g)||g>d&&e<d||g<d&&e>d)return!0}return!1};a.Primitive3D.prototype.intersection=function(b,d){if(0<this.vertices.length){var e=a.subtract3D(d,b),c=a.dotProduct3D(e,this.normal);if(0!==c&&(c=a.dotProduct3D(a.subtract3D(this.vertices[0],
b),this.normal)/c,-1E-8<c&&1.00000001>c))return a.add3D(b,a.scalarProduct3D(e,c))}return null};a.Primitive3D.prototype.isInterior=function(b){if(0<this.vertices.length)for(var d=0,e=a.subtract3D(this.vertices[0],b),c=0,j=this.vertices.length;c<j;c++){var g=a.subtract3D(this.vertices[(c+1)%j],b),f=a.dotProduct3D(a.crossProduct3D(e,g),this.normal);if(1E-8>Math.abs(f)){if(0>a.dotProduct3D(e,g))break}else{if(0>d&&0<f||0<d&&0>f)return!1;e=g;d=f}}return!0};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;
var f={x:0,y:0,z:0},h,g,b,c,d,j,e,p;a.Graphic3D=function(b,d){this.parent=b;this.evaluator=b.evaluator;var e=b.evaluator.parser;this.spaceID="E0";this.background=!1;this.type="";this.color=new a.Color("eeffaa");this.backcolor=new a.Color("6090a0");this.Nu=this.evaluator.parser.parse("7");this.Nv=this.evaluator.parser.parse("7");this.drawif=e.parse("1");this.abs_coord=!1;this.family="";this.family_interval=e.parse("[0,1]");this.family_steps=e.parse("8");this.font="Monospaced,PLAIN,12";this.fixed=!0;
this.text="";this.decimals=e.parse("2");this.inirot="(0,0,0)";this.inirotEuler=!1;this.inipos=e.parse("(0,0,0)");this.endrot="(0,0,0)";this.endrotEuler=!1;this.endpos=e.parse("(0,0,0)");this.model="color";for(var c in d)d.hasOwnProperty(c)&&(this[c]=d[c]);void 0==this.expresion&&"macro"!=this.type&&(this.expresion=e.parse("(0,0)"));this.space=this.getSpace();this.canvas=this.background?this.space.backgroundCanvas:this.space.canvas;this.ctx=this.canvas.getContext("2d");this.font=a.convertFont(this.font);
this.fontSize=(this.fontSize=this.font.match(/(\d+)px/))?parseInt(this.fontSize[1]):10;this.inirot.match("Euler")&&(this.inirot=this.inirot.replace("Euler",""),this.inirotEuler=!0);this.endrot.match("Euler")&&(this.endrot=this.endrot.replace("Euler",""),this.endrotEuler=!0);this.inirot=e.parse(this.inirot);this.endrot=e.parse(this.endrot);this.inirotM=new a.Matrix4x4;this.inirotM_X=new a.Matrix4x4;this.inirotM_Y=new a.Matrix4x4;this.inirotM_Z=new a.Matrix4x4;this.iniposM=new a.Matrix4x4;this.endrotM=
new a.Matrix4x4;this.endrotM_X=new a.Matrix4x4;this.endrotM_Y=new a.Matrix4x4;this.endrotM_Z=new a.Matrix4x4;this.endposM=new a.Matrix4x4};a.Graphic3D.prototype.getSpace=function(){for(var a=this.parent.spaces,b,d=0,e=a.length;d<e;d++)if(b=a[d],b.id==this.spaceID)return b;return a[0]};a.Graphic3D.prototype.getFamilyValues=function(){h=this.evaluator;g=h.evalExpression(this.family_interval);this.familyInf=g[0][0];this.familySup=g[0][1];this.fSteps=Math.round(h.evalExpression(this.family_steps));this.family_sep=
0<this.fSteps?(this.familySup-this.familyInf)/this.fSteps:0};a.Graphic3D.prototype.buildFamilyPrimitives=function(){h=this.evaluator;this.getFamilyValues();b=h.getVariable(this.family);if(0<=this.fSteps)for(var a=0,d=this.fSteps;a<=d;a++)h.setVariable(this.family,this.familyInf+a*this.family_sep),h.evalExpression(this.drawif)&&this.buildPrimitives();h.setVariable(this.family,b)};a.Graphic3D.prototype.update=function(){this.primitives=[];this.evaluator.evalExpression(this.drawif)&&(this.family?this.buildFamilyPrimitives():
this.buildPrimitives())};a.Graphic3D.prototype.updateMVMatrix=function(){d=this.evaluator.evalExpression(this.inirot);this.inirotEuler?(this.inirotM=this.inirotM.setIdentity(),this.inirotM=this.inirotM.rotateZ(a.degToRad(d[0][0])),this.inirotM=this.inirotM.rotateX(a.degToRad(d[0][1])),this.inirotM=this.inirotM.rotateZ(a.degToRad(d[0][2]))):(this.inirotM_X=this.inirotM_X.setIdentity().rotateX(a.degToRad(d[0][0])),this.inirotM_Y=this.inirotM_Y.setIdentity().rotateY(a.degToRad(d[0][1])),this.inirotM_Z=
this.inirotM_Z.setIdentity().rotateZ(a.degToRad(d[0][2])));d=this.evaluator.evalExpression(this.inipos);f={x:d[0][0],y:d[0][1],z:d[0][2]};this.iniposM=this.iniposM.setIdentity().translate(f);d=this.evaluator.evalExpression(this.endrot);this.endrotEuler?(this.endrotM=this.endrotM.setIdentity(),this.endrotM=this.endrotM.rotateZ(a.degToRad(d[0][0])),this.endrotM=this.endrotM.rotateX(a.degToRad(d[0][1])),this.endrotM=this.endrotM.rotateZ(a.degToRad(d[0][2]))):(this.endrotM_X=this.endrotM_X.setIdentity().rotateX(a.degToRad(d[0][0])),
this.endrotM_Y=this.endrotM_Y.setIdentity().rotateY(a.degToRad(d[0][1])),this.endrotM_Z=this.endrotM_Z.setIdentity().rotateZ(a.degToRad(d[0][2])));d=this.evaluator.evalExpression(this.endpos);f={x:d[0][0],y:d[0][1],z:d[0][2]};this.endposM=this.endposM.setIdentity().translate(f)};a.Graphic3D.prototype.transformVertex=function(a){this.inirotEuler?c=this.inirotM.multiplyVector4(a):(c=this.inirotM_X.multiplyVector4(a),c=this.inirotM_Y.multiplyVector4(c),c=this.inirotM_Z.multiplyVector4(c));c=this.iniposM.multiplyVector4(c);
this.endrotEuler?c=this.endrotM.multiplyVector4(c):(c=this.endrotM_X.multiplyVector4(c),c=this.endrotM_Y.multiplyVector4(c),c=this.endrotM_Z.multiplyVector4(c));return c=this.endposM.multiplyVector4(c)};a.Graphic3D.prototype.parseExpression=function(){d=this.expresion.split("=");j=d[0];e=[];for(var a=1;a<d.length;a++)j+="=",p=d[a].lastIndexOf(" "),j+=-1!==p?d[a].substring(0,p):d[a],e.push(this.evaluator.parser.parse(j,!0)),j=d[a].substring(p+1);return e};var m;a.Graphic3D.prototype.splitFace=function(a){for(var b=
0,d=this.primitives.length;b<d;b++)if(m=[],"face"===this.primitives[b].type){for(var e=0,c=a.primitives.length;e<c;e++)"face"===a.primitives[e].type?m=m.concat(this.primitives[b].splitFace(a.primitives[e])):m.push(a.primitives[e]);a.primitives=m}};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c;a.Point3D=function(b,c){a.Graphic3D.call(this,b,c)};a.extend(a.Point3D,a.Graphic3D);a.Point3D.prototype.buildPrimitives=function(){f=this.evaluator;this.updateMVMatrix();
h=f.evalExpression(this.expresion);g=h[0][0];b=h[0][1];c=h[0][2];this.primitives.push(new a.Primitive3D({vertices:[this.transformVertex(new a.Vector4D(g,b,c,1))],type:"vertex",backColor:this.backcolor,frontColor:this.color,size:f.evalExpression(this.width)}));""!==this.text&&this.primitives.push(new a.Primitive3D({vertices:[this.transformVertex(new a.Vector4D(g,b,c,1))],type:"text",frontColor:this.color,font:this.font,decimals:f.evalExpression(this.decimals),fixed:this.fixed,displace:this.fontSize,
evaluator:f,text:this.text}))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d;a.Segment3D=function(b,d){this.width=b.evaluator.parser.parse("1");a.Graphic3D.call(this,b,d)};a.extend(a.Segment3D,a.Graphic3D);a.Segment3D.prototype.buildPrimitives=function(){evaluator=this.evaluator;this.updateMVMatrix();expr=evaluator.evalExpression(this.expresion);f=expr[0][0];h=expr[0][1];g=expr[0][2];b=expr[1][0];c=expr[1][1];d=expr[1][2];this.primitives.push(new a.Primitive3D({vertices:[this.transformVertex(new a.Vector4D(f,
h,g,1)),this.transformVertex(new a.Vector4D(b,c,d,1))],type:"edge",frontColor:this.color,lineWidth:evaluator.evalExpression(this.width)}))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d,j;a.Surface3D=function(b,d){this.parameter="t";this.parameter_interval=b.evaluator.parser.parse("[0,1]");this.parameter_steps=b.evaluator.parser.parse("8");a.Graphic3D.call(this,b,d);this.expresion=this.parseExpression()};a.extend(a.Surface3D,a.Graphic3D);a.Surface3D.prototype.buildPrimitives=
function(){f=this.evaluator;this.updateMVMatrix();g=f.getVariable("x");g=f.getVariable("y");g=f.getVariable("z");h=f.getVariable("u");g=f.getVariable("v");f.setVariable("u",0);f.setVariable("v",0);b=f.evalExpression(this.Nu);c=f.evalExpression(this.Nv);d=[];for(var e=0;e<=b;e++){f.setVariable("u",e/b);for(var p=0;p<=c;p++){f.setVariable("v",p/c);for(var m=0,k=this.expresion.length;m<k;m++)f.evalExpression(this.expresion[m]);d.push(this.transformVertex(new a.Vector4D(f.getVariable("x"),f.getVariable("y"),
f.getVariable("z"),1)))}}for(e=0;e<b;e++)for(p=0;p<c;p++)j=[],j.push(d[p+e*c+e]),j.push(d[p+1+e*c+e]),j.push(d[p+2+(e+1)*c+e]),j.push(d[p+1+(e+1)*c+e]),this.primitives.push(new a.Primitive3D({vertices:j,type:"face",frontColor:this.color,backColor:this.backcolor,edges:this.edges,model:this.model}));f.setVariable("x",void 0);f.setVariable("y",void 0);f.setVariable("z",void 0);f.setVariable("u",h);f.setVariable("v",g)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,
g,b,c,d;a.Polygon3D=function(b,d){this.width=b.evaluator.parser.parse("1");a.Graphic3D.call(this,b,d)};a.extend(a.Polygon3D,a.Graphic3D);a.Polygon3D.prototype.buildPrimitives=function(){evaluator=this.evaluator;this.updateMVMatrix();expr=evaluator.evalExpression(this.expresion);for(var j=0,e=expr.length-1;j<e;j++)f=expr[j][0],h=expr[j][1],g=expr[j][2],b=expr[j+1][0],c=expr[j+1][1],d=expr[j+1][2],this.primitives.push(new a.Primitive3D({vertices:[this.transformVertex(new a.Vector4D(f,h,g,1)),this.transformVertex(new a.Vector4D(b,
c,d,1))],type:"edge",frontColor:this.color,lineWidth:evaluator.evalExpression(this.width)}))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d;a.Curve3D=function(b,d){this.width=b.evaluator.parser.parse("1");a.Graphic3D.call(this,b,d);this.expresion=this.parseExpression()};a.extend(a.Curve3D,a.Graphic3D);a.Curve3D.prototype.buildPrimitives=function(){evaluator=this.evaluator;this.updateMVMatrix();b=evaluator.getVariable("x");c=evaluator.getVariable("y");d=evaluator.getVariable("z");
g=evaluator.getVariable("u");evaluator.setVariable("u",0);h=evaluator.evalExpression(this.Nu);f=[];for(var j=0;j<=h;j++){evaluator.setVariable("u",j/h);for(var e=0,p=this.expresion.length;e<p;e++)evaluator.evalExpression(this.expresion[e]);f.push(this.transformVertex(new a.Vector4D(evaluator.getVariable("x"),evaluator.getVariable("y"),evaluator.getVariable("z"),1)))}j=0;for(e=f.length-1;j<e;j++)this.primitives.push(new a.Primitive3D({vertices:[f[j],f[j+1]],type:"edge",frontColor:this.color,lineWidth:evaluator.evalExpression(this.width)}));
evaluator.setVariable("x",b);evaluator.setVariable("y",d);evaluator.setVariable("z",c);evaluator.setVariable("u",g)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d,j,e,p;a.Triangle3D=function(b,d){a.Graphic3D.call(this,b,d)};a.extend(a.Triangle3D,a.Graphic3D);a.Triangle3D.prototype.buildPrimitives=function(){evaluator=this.evaluator;this.updateMVMatrix();expr=evaluator.evalExpression(this.expresion);f=expr[0][0];h=expr[0][1];g=expr[0][2];b=expr[1][0];c=expr[1][1];
d=expr[1][2];j=expr[2][0];e=expr[2][1];p=expr[2][2];this.primitives.push(new a.Primitive3D({vertices:[this.transformVertex(new a.Vector4D(f,h,g,1)),this.transformVertex(new a.Vector4D(j,e,p,1)),this.transformVertex(new a.Vector4D(b,c,d,1))],type:"face",frontColor:this.color,backColor:this.backcolor,edges:this.edges,model:this.model}))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f;a.Face3D=function(f,g){a.Graphic3D.call(this,f,g)};a.extend(a.Face3D,a.Graphic3D);a.Face3D.prototype.buildPrimitives=
function(){evaluator=this.evaluator;this.updateMVMatrix();expr=evaluator.evalExpression(this.expresion);f=[];for(var h=expr.length-1;0<=h;h--)f.push(this.transformVertex(new a.Vector4D(expr[h][0],expr[h][1],expr[h][2],1)));this.primitives.push(new a.Primitive3D({vertices:f,type:"face",frontColor:this.color,backColor:this.backcolor,edges:this.edges,model:this.model}))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c;a.Polireg3D=function(b,c){this.width=b.evaluator.parser.parse("2");
this.length=b.evaluator.parser.parse("2");a.Graphic3D.call(this,b,c)};a.extend(a.Polireg3D,a.Graphic3D);a.Polireg3D.prototype.buildPrimitives=function(){evaluator=this.evaluator;this.updateMVMatrix();f=evaluator.evalExpression(this.Nu);h=[this.transformVertex(new a.Vector4D(0,0,0,1))];g=evaluator.evalExpression(this.width)/2;b=evaluator.evalExpression(this.length)/2;c=2*Math.PI/f;for(var d=0;d<f;d++)h.push(this.transformVertex(new a.Vector4D(g*Math.cos(c*d),b*Math.sin(c*d),0,1)));for(d=0;d<f;d++)this.primitives.push(new a.Primitive3D({vertices:[h[0],
d+2<=f?h[d+2]:h[1],h[d+1]],type:"face",frontColor:this.color,backColor:this.backcolor,edges:this.edges,model:this.model}))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b;a.Text3D=function(b,d){a.Graphic3D.call(this,b,d)};a.extend(a.Text3D,a.Graphic3D);a.Text3D.prototype.buildPrimitives=function(){f=this.evaluator;h=f.evalExpression(this.expresion);g=h[0][0];b=h[0][1];this.primitives.push(new a.Primitive3D({vertices:[new a.Vector4D(g,b,0,1)],type:"text",frontColor:this.color,
font:this.font,decimals:f.evalExpression(this.decimals),fixed:this.fixed,displace:0,isText:!0,evaluator:f,text:this.text}))};return a}(descartesJS||{}),descartesJS=function(a){function f(a,b,d,e,c){h.call(this,a/1.8,a/1.8,a/1.8,e,c)}function h(a,b,d,e,c){a/=2;b/=2;d/=2;this.changeGeometry(a,b,d,e,c)||(this.vertices=[new n(a,d,b,1),new n(a,-d,b,1),new n(a,d,-b,1),new n(a,-d,-b,1),new n(-a,d,b,1),new n(-a,-d,b,1),new n(-a,d,-b,1),new n(-a,-d,-b,1)],this.faces=[[2,3,1,0],[1,5,4,0],[5,7,6,4],[6,7,3,2],
[4,6,2,0],[3,7,5,1]],this.updateValues(a,b,d,e,c))}function g(a,b,d,e,c){a/=2;this.changeGeometry(a,b,d,e,c)||(this.vertices=[new n(0,0,a,1),new n(-0.49*a,-0.86*a,-0.32*a,1),new n(-0.49*a,0.86*a,-0.32*a,1),new n(1*a,0,-0.32*a,1)],this.faces=[[3,2,1],[1,2,0],[2,3,0],[3,1,0]],this.updateValues(a,b,d,e,c))}function b(a,b,d,e,c){a/=2;this.changeGeometry(a,b,d,e,c)||(this.vertices=[new n(0,0,a,1),new n(a,0,0,1),new n(-a,0,0,1),new n(0,a,0,1),new n(0,-a,0,1),new n(0,0,-a,1)],this.faces=[[3,1,0],[2,3,0],
[1,4,0],[4,2,0],[1,3,5],[3,2,5],[4,1,5],[2,4,5]],this.updateValues(a,b,d,e,c))}function c(b,d,e,c,g){b/=3.4;if(!this.changeGeometry(b,d,e,c,g)){C=b/D;A=b*D;this.vertices=[new n(b,b,b,1),new n(b,b,-b,1),new n(b,-b,b,1),new n(b,-b,-b,1),new n(-b,b,b,1),new n(-b,b,-b,1),new n(-b,-b,b,1),new n(-b,-b,-b,1),new n(0,C,A,1),new n(0,C,-A,1),new n(0,-C,A,1),new n(0,-C,-A,1),new n(C,A,0,1),new n(C,-A,0,1),new n(-C,A,0,1),new n(-C,-A,0,1),new n(A,0,C,1),new n(A,0,-C,1),new n(-A,0,C,1),new n(-A,0,-C,1)];y=(new a.Matrix4x4).setIdentity().rotateY(-r/
6);for(var j=0,f=this.vertices.length;j<f;j++)this.vertices[j]=y.multiplyVector4(this.vertices[j]);this.faces=[[0,16,2,10,8],[12,1,17,16,0],[8,4,14,12,0],[2,16,17,3,13],[13,15,6,10,2],[6,18,4,8,10],[3,17,1,9,11],[13,3,11,7,15],[1,12,14,5,9],[11,9,5,19,7],[5,14,4,18,19],[6,15,7,19,18]];this.updateValues(b,d,e,c,g)}}function d(b,d,e,c,g){b/=4;if(!this.changeGeometry(b,d,e,c,g)){A=b*D;this.vertices=[new n(0,b,A,1),new n(0,b,-A,1),new n(0,-b,A,1),new n(0,-b,-A,1),new n(b,A,0,1),new n(b,-A,0,1),new n(-b,
A,0,1),new n(-b,-A,0,1),new n(A,0,b,1),new n(A,0,-b,1),new n(-A,0,b,1),new n(-A,0,-b,1)];this.faces=[[10,0,2],[0,8,2],[8,5,2],[5,7,2],[7,10,2],[6,0,10],[11,6,10],[7,11,10],[7,3,11],[5,3,7],[9,3,5],[8,9,5],[4,9,8],[0,4,8],[6,4,0],[11,3,1],[6,11,1],[4,6,1],[9,4,1],[3,9,1]];y=(new a.Matrix4x4).setIdentity().rotateY(-1.029);for(var j=0,f=this.vertices.length;j<f;j++)this.vertices[j]=y.multiplyVector4(this.vertices[j]);this.updateValues(b,d,e,c,g)}}function j(a,b,d,e,c){a/=2;this.isSphere?d=b=a:(b/=2,
d/=2);if(!this.changeGeometry(a,b,d,e,c)){this.vertices=[new n(0,0,b,1)];for(var g=1;g<e;g++){x=g*r/e;for(var j=0;j<c;j++)B=j*t/c,s=a*k(x)*q(B),w=d*k(x)*k(B),z=b*q(x),this.vertices.push(new n(s,w,z,1))}this.vertices.push(new n(0,0,-b,1));this.faces=[];for(g=0;g<c;g++)this.faces.push([0,(g+1)%c+1,g%c+1]);for(g=1;g<e-1;g++)for(j=0;j<c;j++)this.faces.push([j+1+(g-1)*c,(j+1)%c+1+(g-1)*c,(j+1)%c+1+g*c,j+1+g*c]);for(g=0;g<c;g++)this.faces.push([this.vertices.length-1,this.vertices.length-1-c+g,this.vertices.length-
1-c+(g+1)%c]);this.updateValues(a,b,d,e,c)}}function e(a,b,d,e,c){a/=2;b/=2;d/=2;if(!this.changeGeometry(a,b,d,e,c)){this.vertices=[];for(var g=0;g<c;g++)for(var j=0;j<e;j++)s=a*(c-g)/c*q(j*t/e),w=d*(c-g)/c*k(j*t/e),z=b-2*g*b/c,this.vertices.push(new n(s,w,z,1));this.vertices.push(new n(0,0,-b,1));this.faces=[];for(g=0;g<c-1;g++)for(j=0;j<e;j++)this.faces.push([j+g*e,(j+1)%e+g*e,(j+1)%e+(g+1)*e,j+(g+1)*e]);for(g=0;g<e;g++)this.faces.push([this.vertices.length-1,this.vertices.length-1-e+g,this.vertices.length-
1-e+(g+1)%e]);this.updateValues(a,b,d,e,c)}}function p(a,b,d,e,c){a/=2;b/=2;d/=2;if(!this.changeGeometry(a,b,d,e,c)){this.vertices=[];for(var g=0;g<c+1;g++)for(var j=0;j<e;j++)s=a*q(j*t/e),w=d*k(j*t/e),z=b-2*g*b/c,this.vertices.push(new n(s,w,z,1));this.faces=[];for(g=0;g<c;g++)for(j=0;j<e;j++)this.faces.push([j+g*e,(j+1)%e+g*e,(j+1)%e+(g+1)*e,j+(g+1)*e]);this.updateValues(a,b,d,e,c)}}function m(){function a(b){return parseInt(b)}function b(a){return parseFloat(a)}this.vertices=[];this.faces=[];for(var d=
0,e=this.fileData.length;d<e;d++)G=this.fileData[d],G.match(/^V\(/)?(F=G.substring(2,G.length-1).split(",").map(b),this.vertices.push(new n(F[0]||0,F[1]||0,F[2]||0,1))):G.match(/^F\(/)&&(F=G.substring(2,G.length-1).split(",").map(a),this.faces.push(F.reverse()))}if(a.loadLib)return a;var k=Math.sin,q=Math.cos,r=Math.PI,t=2*r,n,u,l,s,w,z,B,x,D=1.6180339887,C,A,y,G,F;a.OtherGeometry=function(l,k){this.width=l.evaluator.parser.parse("2");this.height=l.evaluator.parser.parse("2");this.length=l.evaluator.parser.parse("2");
n=a.Vector4D;a.Graphic3D.call(this,l,k);switch(this.type){case "cube":this.buildGeometry=f;break;case "box":this.buildGeometry=h;break;case "tetrahedron":this.buildGeometry=g;break;case "octahedron":this.buildGeometry=b;break;case "sphere":this.isSphere=!0;case "ellipsoid":this.buildGeometry=j;break;case "dodecahedron":this.buildGeometry=c;break;case "icosahedron":this.buildGeometry=d;break;case "cone":this.buildGeometry=e;break;case "cylinder":this.buildGeometry=p;break;case "mesh":this.fileData=
a.openExternalFile(this.evaluator.evalExpression(this.file)).split(/\r/),this.buildGeometry=m}};a.extend(a.OtherGeometry,a.Graphic3D);a.OtherGeometry.prototype.buildPrimitives=function(){u=this.evaluator;this.updateMVMatrix();this.buildGeometry(u.evalExpression(this.width),u.evalExpression(this.height),u.evalExpression(this.length),u.evalExpression(this.Nu),u.evalExpression(this.Nv));for(var b=0,d=this.faces.length;b<d;b++){l=[];for(var e=0,c=this.faces[b].length;e<c;e++)l.push(this.transformVertex(this.vertices[this.faces[b][e]]));
this.primitives.push(new a.Primitive3D({vertices:l,type:"face",frontColor:this.color,backColor:this.backcolor,edges:this.edges,model:this.model}))}};a.OtherGeometry.prototype.changeGeometry=function(a,b,d,e,c){return this.oldWidth===a&&this.oldHeight===b&&this.oldLength===d&&this.oldNu===e&&this.oldNv===c};a.OtherGeometry.prototype.updateValues=function(a,b,d,e,c){this.oldWidth=a;this.oldHeight=b;this.oldLength=d;this.oldNv=c;this.oldNu=e};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;
var f=Math.max,h=Math.min,g=Math.PI,b=Math.cos,c=Math.sin,d=Math.abs,j,e,p,m,k,q,r,t,n,u,l,s,w,z,B,x,D,C;a.R2=function(a,b){this.x=a||0;this.y=b||0};a.R2.prototype.set=function(a,b){this.x=a||0;this.y=b||0};a.R2.prototype.copy=function(){return new a.R2(this.x,this.y)};a.R2.prototype.ix=function(){return Math.round(f(h(this.x,32E3),-32E3))};a.R2.prototype.iy=function(){return Math.round(f(h(this.y,32E3),-32E3))};a.R2.prototype.equals=function(a){return this.x==a.x&&this.y==a.y};a.R2.prototype.norm2=
function(){return this.x*this.x+this.y*this.y};a.R2.prototype.norm=function(){return Math.sqrt(this.norm2())};a.R2.prototype.distance=function(a){e=this.copy();e.sub(a);return e.norm()};a.R2.prototype.dot=function(a){return this.x*a.x+this.y*a.y};a.R2.prototype.det=function(a){return this.x*a.y-this.y*a.x};a.R2.prototype.mul=function(a){this.x*=a;this.y*=a};a.R2.prototype.div=function(a){this.x/=a;this.y/=a};a.R2.prototype.add=function(a){this.x+=a.x;this.y+=a.y};a.R2.prototype.sub=function(a){this.x-=
a.x;this.y-=a.y};a.R2.prototype.normalize=function(){j=this.norm();0!=j&&this.div(j)};a.R2.prototype.rotR90=function(){j=this.x;this.x=this.y;this.y=-j};a.R2.prototype.rotL90=function(){j=this.x;this.x=-this.y;this.y=j};a.R2.prototype.rot=function(a){p=this.copy();q=b(a);r=c(a);this.x=p.x*q-p.y*r;this.y=p.x*r+p.y*q};a.R2.prototype.rot=function(a){this.rot(a*g/180)};a.R2.prototype.intersection=function(b,e,c,g){t=e.x-b.x;n=c.x-g.x;u=c.x-b.x;l=e.y-b.y;s=c.y-g.y;w=c.y-b.y;C=t*s-n*l;return 1E-6<d(C)?
(m=(u*s-w*n)/C,k=(-u*l+w*t)/C,0<=m&&1>=m&&0<=k&&1>=k?new a.R2(b.x+t*m,b.y+l*m):null):(e.x-c.x)*w!=(e.y-c.y)*u?null:b.x!=e.x?(z=h(b.x,e.x),B=f(b.x,e.x),z<=c.x&&c.x<=B?c:z<=g.x&&g.x<=B?g:null):c.x!=g.x?(x=h(c.x,g.x),D=f(c.x,g.x),x<=b.x&&b.x<=D?b:x<=e.x&&e.x<=D?e:null):b.y!=e.y?(z=h(b.y,e.y),B=f(b.y,e.y),z<=c.y&&c.y<=B?c:z<=g.y&&g.y<=B?g:null):c.y!=g.y?(x=h(c.y,g.y),D=f(c.y,g.y),x<=b.y&&b.y<=D?b:x<=e.y&&e.y<=D?e:null):b.x==c.x&&b.y==c.y?b:null};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;
var f,h,g,b,c,d,j,e;a.R2Newton=function(b,e){this.evaluator=b;this.constraint=e;if("=="==this.constraint.value||"<"==this.constraint.value||"<="==this.constraint.value||">"==this.constraint.value||">="==this.constraint.value)this.sign="<"==this.constraint.value||"<="==this.constraint.value?"menor":">"==this.constraint.value||">="==this.constraint.value?"mayor":"igual",this.constraint=this.constraint.equalToMinus(),this.constraint=this.constraint.childs[0];d=new a.R2(0,0)};a.R2Newton.prototype.getUnitNormal=
function(){this.normal.normalize();return this.normal.copy()};a.R2Newton.prototype.gradient=function(a){f=this.evaluator;j=f.getVariable("x");e=f.getVariable("y");f.setVariable("x",a.x);f.setVariable("y",a.y);this.f0=f.evalExpression(this.constraint);f.setVariable("x",f.getVariable("x")+1E-12);h=f.evalExpression(this.constraint);d.x=(h-this.f0)/1E-12;d.x=!isNaN(d.x)?d.x:Infinity;f.setVariable("x",f.getVariable("x")-1E-12);f.setVariable("y",f.getVariable("y")+1E-12);h=f.evalExpression(this.constraint);
d.y=(h-this.f0)/1E-12;d.y=!isNaN(d.y)?d.y:Infinity;f.setVariable("x",j);f.setVariable("y",e);return d};a.R2Newton.prototype.findZero=function(a){f=this.evaluator;c=a.copy();j=f.getVariable("x");e=f.getVariable("y");f.setVariable("x",a.x);f.setVariable("y",a.y);this.f0=f.evalExpression(this.constraint);if("menor"===this.sign&&0>=this.f0||"mayor"===this.sign&&0<=this.f0)return c;f.setVariable("x",j);f.setVariable("y",e);for(var d=0;256>d;d++)if(g=c.x,b=c.y,this.normal=this.gradient(c),0!=this.normal.norm2()&&
this.normal.mul(-this.f0/this.normal.norm2()),c.x=g+this.normal.x,c.y=b+this.normal.y,1E-6>this.normal.norm()){0===this.normal.x&&0===this.normal.y&&(this.normal.x=c.x-a.x,this.normal.y=c.y-a.y);break}return c};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Vector2D=function(a,h){this.x=a;this.y=h};a.Vector2D.AXIS_X=new a.Vector2D(1,0);a.Vector2D.AXIS_Y=new a.Vector2D(0,1);a.Vector2D.prototype.vectorLength=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};a.Vector2D.prototype.dotProduct=
function(a){return this.x*a.x+this.y*a.y};a.Vector2D.prototype.angleBetweenVectors=function(a){return Math.acos(this.dotProduct(a)/(this.vectorLength()*a.vectorLength()))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.floor,h=Math.round,g,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s,w,z,B,x;a.Control=function(b,d){this.parent=b;this.evaluator=b.evaluator;var e=this.parser=b.evaluator.parser;this.id="graphic"!==d.type?"C":"G";this.gui=this.type="";this.region="south";this.y=
this.x=0;this.w="video"!==d.type?100:350;this.h="video"!==d.type?23:120;"graphic"!==d.type&&"audio"!==d.type&&"video"!==d.type?"text"!==d.type?this.expresion=e.parse("(0,0,100,23)"):(this.expresion=e.parse("(0,0,300,200)"),this.w=300,this.h=200):this.expresion=e.parse("(0,0)");this.fixed=2!=this.parent.version?!1:!0;this.visible=!0;this.color=4>this.parent.version?new a.Color("000000"):new a.Color("222222");this.colorInt="graphic"!==d.type?new a.Color("f0f8ff"):new a.Color("cc0022");this.underlined=
this.italics=this.bold="";this.font_size=4>this.parent.version?-1:e.parse("12");this.parameter=this.action="";this.parameterFont="Monospace 12px";this.drawif=e.parse("1");this.activeif=e.parse("1");this.tooltip="";this.tooltipFont="Monospace 12px";this.Explanation="";this.ExplanationFont="Monospace 12px";this.cID=this.msg_pos="";this.valueExpr=e.parse("0");this.decimals=e.parse("2");this.min=e.parse("-Infinity");this.max=e.parse("Infinity");this.incr=e.parse("0.1");this.exponentialif=this.discrete=
!1;this.zIndex=-1;for(var c in d)d.hasOwnProperty(c)&&(this[c]=d[c]);if(("video"===this.type||"audio"===this.type)&&"interior"!==this.region)this.region="interior";void 0==this.name&&(this.name=2==this.parent.version?this.id:"_nada_");this.name="_._"==this.name||"_nada_"==this.name||"_void_"==this.name?"":this.name;e=this.evaluator.evalExpression(this.expresion);this.x=h(e[0][0]);this.y=h(e[0][1]);4==e[0].length&&(this.w=h(e[0][2]),this.h=h(e[0][3]));this.actionExec=b.lessonParser.parseAction(this)};
a.Control.prototype.init=function(){};a.Control.prototype.update=function(){};a.Control.prototype.draw=function(){};a.Control.prototype.getContainer=function(){var a=this.parent.spaces,b;if("interior"===this.region)for(var d=0,e=a.length;d<e;d++){if(b=a[d],b.id===this.spaceID)return b.addCtr(this),this.zIndex=b.zIndex,b.numericalControlContainer}else{if("external"===this.region)return this.parent.externalSpace.container;if("scenario"===this.region)return this.cID?(this.expresion=this.evaluator.parser.parse("(0,-1000,"+
this.w+","+this.h+")"),this.parent.scenarioRegion.scenarioSpace.addCtr(this),this.zIndex=this.parent.scenarioRegion.scenarioSpace.zIndex,this.parent.scenarioRegion.scenarioSpace.numericalControlContainer):this.parent.externalSpace.container;if("north"===this.region)return this.parent.northSpace.controls.push(this),this.parent.northSpace.container;if("south"===this.region)return this.parent.southSpace.controls.push(this),this.parent.southSpace.container;if("east"===this.region)return this.parent.eastSpace.controls.push(this),
this.parent.eastSpace.container;if("west"===this.region)return this.parent.westSpace.controls.push(this),this.parent.westSpace.container;if("special"===this.region)return this.parent.specialSpace.controls.push(this),this.parent.specialSpace.container}a[0].addCtr(this);this.zIndex=a[0].zIndex;return a[0].numericalControlContainer};a.Control.prototype.addControlContainer=function(a){var b=this.getContainer();b.childNodes[0]?b.insertBefore(a,b.childNodes[0]):b.appendChild(a);b.childNodes[0]?b.insertBefore(a,
b.childNodes[0]):b.appendChild(a)};a.Control.prototype.updatePositionAndSize=function(){c=d=j=e=!1;p=this.evaluator.evalExpression(this.expresion);m=h(p[0][0]);c=h(this.x)!==m;this.x=m;m=h(p[0][1]);d=h(this.y)!==m;this.y=m;4===p[0].length&&(m=h(p[0][2]),j=h(this.w)!==m,this.w=m,m=h(p[0][3]),e=h(this.h)!==m,this.h=m);if(j||e||c||d)this.init(),this.draw()};a.Control.prototype.formatOutputValue=function(a){n=this.parent;k=a+"";q=this.evaluator.evalExpression(this.decimals);r=k.indexOf(".");-1!=r&&(t=
k.substring(r+1),t.length>q&&(k=parseFloat(k).toFixed(q)));if(this.fixed&&(2!==n.version||2===n.version&&!this.exponentialif))k=parseFloat(a).toFixed(q);this.exponentialif&&0!=parseFloat(k)&&(k=this.fixed&&2!==n.version?parseFloat(k).toExponential(q):parseFloat(k).toExponential(),k=k.toUpperCase(),k=k.replace("+",""));return k=k.replace(".",n.decimal_symbol)};a.Control.prototype.updateAndExecAction=function(){this.parent.updateControls();"init"===this.action&&(this.click=!1);this.actionExec.execute();
"animate"!==this.action&&this.parent.update()};a.Control.prototype.createGradient=function(a,d){this.linearGradient=this.ctx.createLinearGradient(0,0,0,d);g=d*d;for(var e=0;e<d;e++)b=f(e-35*d/100),this.linearGradient.addColorStop(e/d,"rgba(0,0,0,"+192*b*b/g/255+")")};a.Control.prototype.getScreenshot=function(){s=this;u=document.createElement("canvas");u.setAttribute("width",s.w);u.setAttribute("height",s.h);l=u.getContext("2d");l.font=s.fieldFontSize+"px Arial, Helvetica, 'Droid Sans', Sans-serif";
s.canvas&&(w=s.canvas.offsetLeft,z=s.canvas.offsetTop,l.drawImage(s.canvas,w,z));s.label&&(w=s.label.offsetLeft,z=s.label.offsetTop,B=s.label.offsetWidth,x=s.label.offsetHeight,l.fillStyle="#e0e4e8",l.fillRect(w,z,B,x),l.fillStyle="black",l.textAlign="center",l.textBaseline="middle",l.fillText(s.name,w+B/2,z+x/2));s.field&&(w=s.field.offsetLeft,z=s.field.offsetTop,B=s.field.offsetWidth,x=s.field.offsetHeight,l.fillStyle="white",l.strokeStyle="#666666",l.lineWidth=1,l.fillRect(w,0,B,x),l.strokeRect(w+
0.5,0.5,B-1,x-1),l.fillStyle="black",l.textAlign="center",l.textAlign="left",l.fillText(s.field.value,w+2,x/2));s.select&&(w=s.select.offsetLeft,z=s.select.offsetTop,B=s.select.offsetWidth,x=s.select.offsetHeight,l.fillStyle="#e0e4e8",l.strokeStyle="#666666",l.lineWidth=1,l.fillRect(w,0,B,x),l.strokeRect(w+0.5,0.5,B,x-1),l.fillStyle="black",l.textAlign="center",l.textAlign="left",l.fillText(s.select.value,w+2,x/2),l.fillStyle="#c0c0c0",l.fillRect(w+B-15+0.5,0.5,15,x-1),l.strokeRect(w+B-15+0.5,0.5,
15,x-1),l.fillStyle="black",l.beginPath(),l.moveTo(w+B-15+4.5,x/2-2.5),l.lineTo(w+B-15+8,x/2+2.5),l.lineTo(w+B-15+11.5,x/2-2.5),l.closePath(),l.fill());return u};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.floor,h,g,b,c,d,j,e,p,m,k,q,r,t=900;a.Button=function(b,d){this.imageSrc="";this.image=new Image;this.imageOver=new Image;this.imageDown=new Image;a.Control.call(this,b,d);-1===this.font_size&&(this.fontSizeNotSet=!0);this.name="["===this.name.charAt(0)&&
"]"===this.name.charAt(this.name.length-1)?this.parser.parse(this.name.substring(1,this.name.length-1)):this.parser.parse("'"+this.name+"'");var e;this.imageSrc.match("_COLORES_")&&(e=this.imageSrc.split("_"),this.colorInt=new a.Color(e[2]),this.color=new a.Color(e[3]),this.font_size=this.parser.parse(e[5]),this.imageSrc="");this.imageSrc=this.parser.parse("'"+this.imageSrc+"'");e=this.evaluator.evalExpression(this.imageSrc).trim();if(""!=e){var c=e.substr(0,e.lastIndexOf(".")),g=e.substr(e.lastIndexOf("."));
e.toLowerCase().match(/vacio.gif$/)?(this.imageSrc=this.parser.parse("'vacio.gif'"),this.image.ready=1,3===this.parent.version&&(this.name=this.parser.parse("")),this.emptyImage={ready:!0},this.parser.parse("'vacio.gif'")):(this.image=this.parent.getImage(e),this.imageOver=this.parent.getImage(c+"_over"+g),this.imageDown=this.parent.getImage(c+"_down"+g))}this.canvas=document.createElement("canvas");this.canvas.setAttribute("class","DescartesButton");this.canvas.setAttribute("id",this.id);this.canvas.setAttribute("width",
this.w+"px");this.canvas.setAttribute("height",this.h+"px");this.canvas.setAttribute("style","left: "+this.x+"px; top: "+this.y+"px; z-index: "+this.zIndex+";");this.ctx=this.canvas.getContext("2d");this.ctx.imageSmoothingEnabled=!1;this.ctx.mozImageSmoothingEnabled=!1;this.ctx.webkitImageSmoothingEnabled=!1;this.addControlContainer(this.canvas);this.registerMouseAndTouchEvents();this.init()};a.extend(a.Button,a.Control);a.Button.prototype.init=function(){h=this.evaluator;g=this.canvas;c=h.evalExpression(this.expresion);
this.x=c[0][0];this.y=c[0][1];4==c[0].length&&(this.w=parseInt(c[0][2]),this.h=parseInt(c[0][3]));g.setAttribute("width",this.w+"px");g.setAttribute("height",this.h+"px");g.setAttribute("style","left: "+this.x+"px; top: "+this.y+"px; z-index: "+this.zIndex+"; display: block;");this.fontSizeNotSet&&(this.font_size=h.parser.parse(a.getFieldFontSize(this.h)+""));this.createGradient(this.w,this.h);g.style.display=0<h.evalExpression(this.drawif)?"block":"none"};a.Button.prototype.update=function(){h=this.evaluator;
g=this.canvas;this.activeIfValue=0<h.evalExpression(this.activeif);(this.drawIfValue=0<h.evalExpression(this.drawif))?(g.style.display="block",this.draw()):(this.click=!1,g.style.display="none");this.updatePositionAndSize()};a.Button.prototype.draw=function(){h=this.evaluator;b=this.ctx;d=h.evalExpression(this.font_size);j=h.evalExpression(this.name);e=h.evalExpression(this.imageSrc);p="vacio.gif"===e?this.emptyImage:this.parent.getImage(e);b.clearRect(0,0,this.w,this.h);k=m=0;this.click&&(k=m=1);
p&&p.ready?p!==this.emptyImage&&p.complete&&b.drawImage(p,parseInt((this.w-p.width)/2)+m,parseInt((this.h-p.height)/2)+k):(b.fillStyle=this.colorInt.getColor(),b.fillRect(0,0,this.w,this.h),this.click||(a.drawLine(b,this.w-1,0,this.w-1,this.h,"rgba(0,0,0,"+128/255+")"),a.drawLine(b,0,0,0,this.h,"rgba(0,0,0,"+24/255+")"),a.drawLine(b,1,0,1,this.h,"rgba(0,0,0,"+8/255+")")),b.fillStyle=this.linearGradient,b.fillRect(0,0,this.w,this.h));""!=this.imageOver.src&&(this.imageOver.ready&&this.over)&&b.drawImage(this.imageOver,
parseInt((this.w-p.width)/2)+m,parseInt((this.h-p.height)/2)+k);""!=this.imageDown.src&&this.imageDown.ready&&this.click?b.drawImage(this.imageDown,parseInt((this.w-p.width)/2)+m,parseInt((this.h-p.height)/2)+k):this.click&&(a.drawLine(b,0,0,0,this.h-2,"gray"),a.drawLine(b,0,0,this.w-1,0,"gray"),b.fillStyle="rgba(0, 0, 0,"+24/255+")",b.fillRect(0,0,this.w,this.h));b.fillStyle=this.color.getColor();b.font=this.italics+" "+this.bold+" "+d+"px Arial";b.textAlign="center";b.textBaseline="middle";this.colorInt.getColor()!=
this.color.getColor()&&(b.lineJoin="round",b.lineWidth=parseInt(d/6),b.strokeStyle=this.colorInt.getColor(),b.strokeText(j,f(this.w/2+m)+0.5,f(this.h/2+k)+0.5));b.fillText(j,f(this.w/2+m)+0.5,f(this.h/2+k)+0.5);this.underlined&&(q=b.measureText(j).width,b.strokeStyle=this.color.getColor(),b.lineWidth=f(d/10)||2,b.lineCap="round",b.beginPath(),b.moveTo(parseInt((this.w-q)/2)+m,f((this.h+d)/2)+f(d/5)-1.5+k),b.lineTo(parseInt((this.w+q)/2)+m,f((this.h+d)/2)+f(d/5)-1.5+k),b.stroke());this.activeIfValue||
(b.fillStyle="rgba(240,240,240,"+160/255+")",b.fillRect(0,0,this.w,this.h))};a.Button.prototype.bottonPressed=function(){this.updateAndExecAction()};a.Button.prototype.registerMouseAndTouchEvents=function(){function b(a,d,e){clearInterval(f);j.click&&(d.call(j),a=e?a:30,f=setTimeout(function(){b(a,d)},a))}function d(c){c.preventDefault();document.activeElement.blur();j.whichButton=a.whichButton(c);"L"==j.whichButton&&j.activeIfValue&&(j.click=!0,j.draw(),j.evaluator.setVariable(j.id,j.evaluator.evalExpression(j.valueExpr)),
"calculate"==j.action&&b(t,j.bottonPressed,!0),r?window.addEventListener("touchend",e):window.addEventListener("mouseup",e))}function e(a){if(j.activeIfValue||j.click)j.click=!1,j.draw(),"calculate"!=j.action&&j.bottonPressed(),a.preventDefault(),r?window.removeEventListener("touchend",e,!1):window.removeEventListener("mouseup",e,!1)}function c(){j.over=!0;j.draw()}function g(){j.over=!1;j.click=!1;j.draw()}r=a.hasTouchSupport;var j=this,f;j.canvas.oncontextmenu=function(){return!1};this.over=this.click=
!1;r?this.canvas.addEventListener("touchstart",d):(this.canvas.addEventListener("mousedown",d),this.canvas.addEventListener("mouseover",c),this.canvas.addEventListener("mouseout",g))};a.Button.prototype.getScreenshot=function(){return this.canvas};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d,j,e,p,m,k,q,r,t,n,u,l;a.Spinner=function(b,d){a.Control.call(this,b,d);this.tabindex=++this.parent.tabindex;this.containerControl=document.createElement("div");this.canvas=
document.createElement("canvas");this.divUp=document.createElement("div");this.divDown=document.createElement("div");this.field=document.createElement("input");this.label=document.createElement("label");this.txtLabel=document.createTextNode(this.name);this.label.appendChild(this.txtLabel);""!=this.name.trim()&&this.containerControl.appendChild(this.label);this.containerControl.appendChild(this.field);this.containerControl.appendChild(this.canvas);this.containerControl.appendChild(this.divUp);this.containerControl.appendChild(this.divDown);
this.addControlContainer(this.containerControl);this.originalIncr=this.incr;if(0>=this.evaluator.evalExpression(this.decimals)){var e=this.evaluator.evalExpression(this.incr);0<e?this.originalIncr=this.incr=this.evaluator.parser.parse(parseInt(e).toString()):this.incr=this.evaluator.parser.parse("1")}this.registerMouseAndTouchEvents();this.init()};a.extend(a.Spinner,a.Control);a.Spinner.prototype.init=function(){f=this.evaluator;this.value=this.validateValue(f.evalExpression(this.valueExpr));var b=
this.formatOutputValue(this.value);this.fieldFontSize=2!==this.parent.version?a.getFieldFontSize(this.h):10;var d=2!==this.parent.version?"":"_____",e=a.getTextWidth(b+"_",this.fieldFontSize+"px Arial"),c=2+parseInt(this.h/2),g=parseInt(this.w/2-c/2),d=a.getTextWidth(this.name+d,this.fieldFontSize+"px Arial");this.visible||(g=this.w-c,e=0);g<d&&(g=d);""==this.name&&(g=0);this.w-g-c<e&&(g=this.w-c-e);0>g&&(g=0);d=this.w-(g+c);this.containerControl.setAttribute("class","DescartesSpinnerContainer");
this.containerControl.setAttribute("style","width: "+this.w+"px; height: "+this.h+"px; left: "+this.x+"px; top: "+this.y+"px; z-index: "+this.zIndex+";");this.canvas.setAttribute("width",c+"px");this.canvas.setAttribute("height",this.h+"px");this.canvas.setAttribute("style","position: absolute; left: "+g+"px; top: 0px;");this.ctx=this.canvas.getContext("2d");this.divUp.setAttribute("style","background-color: rgba(255, 255, 255, 0); cursor: pointer; position: absolute; width : "+c+"px; height : "+
this.h/2+"px; left: "+g+"px; top: 0px;");this.divDown.setAttribute("style","background-color: rgba(255, 255, 255, 0); cursor: pointer; position: absolute; width : "+c+"px; height : "+this.h/2+"px; left: "+g+"px; top: "+this.h/2+"px;");this.field.setAttribute("type","text");this.field.setAttribute("id",this.id+"_spinner");this.field.setAttribute("class","DescartesSpinnerField");this.field.setAttribute("style","font-family: Arial; font-size: "+this.fieldFontSize+"px; width : "+(d-2)+"px; height : "+
(this.h-2)+"px; left: "+(c+g)+"px;");this.field.setAttribute("tabindex",this.tabindex);this.field.value=b;this.label.setAttribute("class","DescartesSpinnerLabel");this.label.setAttribute("style","font-size:"+this.fieldFontSize+"px; width: "+g+"px; height: "+this.h+"px; line-height: "+this.h+"px;");f.setVariable(this.id,this.value);this.createGradient(this.h/2,this.h)};a.Spinner.prototype.update=function(){f=this.evaluator;0>=f.evalExpression(this.decimals)?(h=f.evalExpression(this.incr),0<h?this.originalIncr=
this.incr=f.parser.parse(parseInt(h).toString()):this.incr=f.parser.parse("1")):this.incr=this.originalIncr;this.activeIfValue=0<f.evalExpression(this.activeif);this.drawIfValue=0<f.evalExpression(this.drawif);this.field.disabled=!this.activeIfValue;this.drawIfValue?(this.containerControl.style.display="block",this.draw()):(this.click=!1,this.containerControl.style.display="none");this.updatePositionAndSize();g=this.field.value;b=this.value;this.value=this.validateValue(f.getVariable(this.id));this.field.value=
this.formatOutputValue(this.value);this.value==b&&this.field.value!=g&&(this.value=this.validateValue(g),this.field.value=this.formatOutputValue(this.value));f.setVariable(this.id,this.value)};a.Spinner.prototype.draw=function(){c=this.ctx;d=this.canvas.width;j=this.canvas.height;c.fillStyle="#f0f8ff";c.fillRect(0,0,d,j);c.fillStyle=this.linearGradient;c.fillRect(0,0,d,j);this.up?(e="gray",p="#f0f8ff"):(e="#f0f8ff",p="gray");a.drawLine(c,0,0,d,0,e);a.drawLine(c,0,0,0,j/2,e);a.drawLine(c,0,j/2,d,j/
2,p);this.down?(e="gray",p="#f0f8ff"):(e="#f0f8ff",p="gray");a.drawLine(c,0,j/2+1,d,j/2+1,e);a.drawLine(c,0,j/2+1,0,j,e);a.drawLine(c,0,j-1,d,j-1,p);m=[parseInt(d/2+1),parseInt(d/5+1),parseInt(d-d/5+1)];k=[parseInt(j/8+1),parseInt(j/8+1+j/4),parseInt(j/8+1+j/4)];c.fillStyle=this.activeIfValue?"#2244cc":"#8888aa";c.beginPath();c.moveTo(m[0],k[0]);c.lineTo(m[1],k[1]);c.lineTo(m[2],k[2]);c.fill();k=[parseInt(j-j/8),parseInt(j-j/8-j/4),parseInt(j-j/8-j/4)];c.fillStyle=this.activeIfValue?"#d00018":"#aa8888";
c.beginPath();c.moveTo(m[0],k[0]);c.lineTo(m[1],k[1]);c.lineTo(m[2],k[2]);c.fill();c.fillStyle="rgba(0,0,0,"+24/255+")";this.up&&c.fillRect(0,0,d,j/2);this.down&&c.fillRect(0,j/2,d,j)};a.Spinner.prototype.validateValue=function(a){f=this.evaluator;isNaN(parseFloat(a))||a.toString().match("e")&&(a=parseFloat(a).toFixed(20));a=a.toString();q=parseFloat(f.evalExpression(f.parser.parse(a.replace(this.parent.decimal_symbol,"."))));isNaN(q)&&(q=0);n=f.evalExpression(this.min);u=f.evalExpression(this.max);
""===n&&(n=-Infinity);""===u&&(u=Infinity);q<n&&(q=n);q>u&&(q=u);this.discrete&&(r=f.evalExpression(this.incr),q=0==r?0:r*Math.round(q/r));t=f.evalExpression(this.decimals);0>=t&&(t=0);return q=parseFloat(parseFloat(q).toFixed(t))};a.Spinner.prototype.increase=function(){this.changeValue(parseFloat(this.value)+this.evaluator.evalExpression(this.incr))};a.Spinner.prototype.decrease=function(){this.changeValue(parseFloat(this.value)-this.evaluator.evalExpression(this.incr))};a.Spinner.prototype.changeValue=
function(a){this.activeIfValue&&(this.value=this.validateValue(a),this.field.value=this.formatOutputValue(this.value),this.evaluator.setVariable(this.id,this.value),this.updateAndExecAction())};a.Spinner.prototype.registerMouseAndTouchEvents=function(){function b(a,d,e){clearInterval(m);if(h.up||h.down)d.call(h),a=e?a:30,m=setTimeout(function(){b(a,d)},a)}function d(e){e.preventDefault();h.whichButton=a.whichButton(e);"L"==h.whichButton&&h.activeIfValue&&(h.up=!0,b(k,h.increase,!0),h.draw())}function e(d){d.preventDefault();
h.whichButton=a.whichButton(d);"L"==h.whichButton&&h.activeIfValue&&(h.down=!0,b(k,h.decrease,!0),h.draw())}function c(a){h.up=!1;clearInterval(m);h.draw();a.preventDefault()}function g(a){h.down=!1;clearInterval(m);h.draw();a.preventDefault()}function j(a){h.up=!1;clearInterval(m);h.draw();a.preventDefault()}function f(a){h.down=!1;clearInterval(m);h.draw();a.preventDefault()}l=a.hasTouchSupport;var h=this,k=l?500:200,m;h.divUp.oncontextmenu=h.divDown.oncontextmenu=h.field.oncontextmenu=h.label.oncontextmenu=
function(){return!1};l?this.label.addEventListener("touchstart",function(a){a.preventDefault();return!1}):this.label.addEventListener("mousedown",function(a){a.preventDefault();return!1});this.field.addEventListener("keydown",function(a){13==a.keyCode&&h.changeValue(h.field.value)});l?this.divUp.addEventListener("touchstart",d):this.divUp.addEventListener("mousedown",d);l?this.divDown.addEventListener("touchstart",e):this.divDown.addEventListener("mousedown",e);l||this.divUp.addEventListener("mouseout",
c);l||this.divDown.addEventListener("mouseout",g);l?(this.divUp.addEventListener("touchend",j),window.addEventListener("touchend",j)):(this.divUp.addEventListener("mouseup",j),window.addEventListener("mouseup",j));l?(this.divDown.addEventListener("touchend",f),window.addEventListener("touchend",f)):(this.divDown.addEventListener("mouseup",f),window.addEventListener("mouseup",f))};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d,j;a.TextField=function(b,d){a.Control.call(this,
b,d);void 0===this.valueExprString&&(this.valueExprString=this.onlyText?"0":"");this.emptyString=!1;this.ok=0;this.tabindex=++this.parent.tabindex;if(this.answer)if(this.answer.match("krypto_")&&(this.answer=(new a.Krypto).decode(this.answer.substring(7))),this.answerPattern=this.answer,this.answer=a.buildRegularExpresionsPatterns(this.answer,this.evaluator),this.onlyText){var c=this.answerPattern.indexOf("|");this.firstAnswer=-1==c?this.answerPattern:this.answerPattern.substring(0,c)}else this.firstAnswer=
this.parser.parse(this.answerPattern.substring(1,this.answerPattern.indexOf(",")));if(this.onlyText){if(!this.valueExprString.match(/^'/)||!this.valueExprString.match(/'$/))this.valueExpr=this.evaluator.parser.parse("'"+this.valueExprString+"'");this.validateValue=function(a){return"''"==a||"'"==a?"":a.match(/^'/)&&a.match(/'$/)?a.substring(1,a.length-1):a};this.formatOutputValue=function(a){return a.toString()}}""==this.name.trim()&&(this.name="");this.containerControl=document.createElement("div");
this.field=document.createElement("input");this.label=document.createElement("label");this.txtLabel=document.createTextNode(this.name);this.label.appendChild(this.txtLabel);this.containerControl.appendChild(this.label);this.containerControl.appendChild(this.field);this.addControlContainer(this.containerControl);this.registerMouseAndTouchEvents();this.init()};a.extend(a.TextField,a.Control);a.TextField.prototype.init=function(){f=this.evaluator;this.value=this.validateValue(f.evalExpression(this.valueExpr));
var b=this.formatOutputValue(this.value);this.fieldFontSize=a.getFieldFontSize(this.h);var d=a.getTextWidth(b+"_",this.fieldFontSize+"px Arial"),c=parseInt(this.w/2),g=a.getTextWidth(this.name,this.fieldFontSize+"px Arial");c<g&&(c=g);""==this.name&&(c=0);this.w-c<d&&(c=this.w-d);0>c&&(c=0);d=this.w-c;this.containerControl.setAttribute("class","DescartesTextFieldContainer");this.containerControl.setAttribute("style","width: "+this.w+"px; height: "+this.h+"px; left: "+this.x+"px; top: "+this.y+"px; z-index: "+
this.zIndex+";");this.field.setAttribute("type","text");this.field.setAttribute("id",this.id+"TextField");this.field.setAttribute("class","DescartesTextFieldField");this.field.setAttribute("style","font-size: "+this.fieldFontSize+"px; width : "+(d-2)+"px; height : "+(this.h-2)+"px; left: "+c+"px;");this.field.setAttribute("tabindex",this.tabindex);this.field.value=b;this.label.setAttribute("class","DescartesTextFieldLabel");this.label.setAttribute("style","font-size:"+this.fieldFontSize+"px; width: "+
c+"px; height: "+this.h+"px; line-height: "+this.h+"px;");this.evaluate&&(this.ok=this.evaluateAnswer());this.evaluator.setVariable(this.id,this.value);this.evaluator.setVariable(this.id+".ok",this.ok);this.oldValue=this.value;this.update()};a.TextField.prototype.update=function(){f=this.evaluator;this.activeIfValue=0<f.evalExpression(this.activeif);this.drawIfValue=0<f.evalExpression(this.drawif);this.field.disabled=!this.activeIfValue;this.containerControl.style.display=this.drawIfValue?"block":
"none";this.updatePositionAndSize();h=this.field.value;g=this.value;this.value=this.validateValue(f.getVariable(this.id));this.field.value=this.formatOutputValue(this.value);this.value===g&&this.field.value!=h&&(this.value=this.validateValue(h),this.field.value=this.formatOutputValue(this.value));f.setVariable(this.id,this.value)};a.TextField.prototype.validateValue=function(a){if(""===a||"''"==a)return"";f=this.evaluator;b=parseFloat(f.evalExpression(f.parser.parse(a.toString().replace(this.parent.decimal_symbol,
"."))));isNaN(b)&&(b=0);c=f.evalExpression(this.min);""==c&&(c=-Math.Infinity);d=f.evalExpression(this.max);""==d&&(d=Math.Infinity);this.discrete&&(a=f.evalExpression(this.incr),b=0==a?0:a*Math.round(b/a));return b=parseFloat(parseFloat(b).toFixed(f.evalExpression(this.decimals)))};a.TextField.prototype.formatOutputValue=function(a){return""===a?"":this.uber.formatOutputValue.call(this,a)};a.TextField.prototype.changeValue=function(a){this.activeIfValue&&(this.value=this.validateValue(a),this.field.value=
this.formatOutputValue(this.value),this.evaluate&&(this.ok=this.evaluateAnswer()),this.evaluator.setVariable(this.id,this.value),this.evaluator.setVariable(this.id+".ok",this.ok),this.updateAndExecAction())};a.TextField.prototype.evaluateAnswer=function(){return a.esCorrecto(this.answer,this.value,this.evaluator,this.answer)};a.TextField.prototype.getFirstAnswer=function(){return this.answer?this.onlyText?this.firstAnswer:this.evaluator.evalExpression(this.firstAnswer):""};a.TextField.prototype.registerMouseAndTouchEvents=
function(){j=a.hasTouchSupport;var b=this;b.label.oncontextmenu=function(){return!1};j?b.label.addEventListener("touchstart",function(a){a.preventDefault();return!1}):b.label.addEventListener("mousedown",function(a){a.preventDefault();return!1});this.field.addEventListener("blur",function(){b.changeValue(b.field.value,!0)});this.field.addEventListener("keydown",function(a){b.activeIfValue&&13==a.keyCode&&b.changeValue(b.field.value,!0)})};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;
var f=Math.abs,h,g,b,c;a.Menu=function(b,d){this.options="";a.Control.call(this,b,d);var c=this.parser;this.options=this.options.split(",");this.menuOptions=[];this.strValue=[];for(var g,f=0,h=this.options.length;f<h;f++)g=this.options[f].split(/[\[\]]/,2),1==g.length?(this.menuOptions.push(g[0]),this.strValue.push(f.toString())):2==g.length&&(this.menuOptions.push(g[0]),""==g[1]?this.strValue.push(f.toString()):this.strValue.push(g[1]));f=0;for(h=this.strValue.length;f<h;f++)this.strValue[f]=c.parse(this.strValue[f]);
this.containerControl=document.createElement("div");this.label=document.createElement("label");this.txtLabel=document.createTextNode(this.name);this.label.appendChild(this.txtLabel);this.select=document.createElement("select");f=0;for(h=this.menuOptions.length;f<h;f++)c=document.createElement("option"),c.innerHTML=this.menuOptions[f],this.select.appendChild(c);this.field=document.createElement("input");this.containerControl.appendChild(this.label);this.containerControl.appendChild(this.select);this.visible&&
this.containerControl.appendChild(this.field);this.addControlContainer(this.containerControl);this.registerMouseAndTouchEvents();this.init()};a.extend(a.Menu,a.Control);var d;a.Menu.prototype.init=function(){d=this.evaluator;this.fieldFontSize=2!=this.parent.version?a.getFieldFontSize(this.h):10;var b=0,e=0,c=0;this.value=d.evalExpression(this.valueExpr);this.indexValue=this.getIndex(this.value);for(var g=0,f=this.menuOptions.length;g<f;g++)c=a.getTextWidth(this.menuOptions[g],this.fieldFontSize+
"px Arial"),c>b&&(b=c,e=g);b+=25;c=a.getTextWidth(this.formatOutputValue(d.evalExpression(this.strValue[e])),this.fieldFontSize+"px Arial")+7;e=a.getTextWidth(this.name,this.fieldFontSize+"px Arial")+10;""==this.name&&(e=0);this.visible||(c=0);for(g=this.w-c-e;g<b&&0<e;)e--,g++;for(;g<b&&0<c;)c--,g++;for(;e+g+c+1<this.w;)g++,c++;var b=e,f=b+g,c=this.w-f,h=this.formatOutputValue(d.evalExpression(this.strValue[this.indexValue]));this.containerControl.setAttribute("class","DescartesSpinnerContainer");
this.containerControl.setAttribute("style","width: "+this.w+"px; height: "+this.h+"px; left: "+this.x+"px; top: "+this.y+"px; z-index: "+this.zIndex+";");this.label.setAttribute("class","DescartesMenuLabel");this.label.setAttribute("style","font-size:"+this.fieldFontSize+"px; width: "+e+"px; height: "+this.h+"px; line-height: "+this.h+"px;");this.field.setAttribute("type","text");this.field.setAttribute("id",this.id+"menu");this.field.value=h;this.field.setAttribute("class","DescartesMenuField");
this.field.setAttribute("style","font-size: "+this.fieldFontSize+"px; width : "+(c-2)+"px; height : "+(this.h-2)+"px; left: "+f+"px;");this.select.setAttribute("id",this.id+"menuSelect");this.select.setAttribute("class","DescartesMenuSelect");this.select.setAttribute("style","text-align: left; font-size: "+this.fieldFontSize+"px; width : "+g+"px; height : "+this.h+"px; left: "+b+"px; border-color: #7a8a99; border-width: 1.5px; border-style: solid; background-color: #eeeeee;");this.select.selectedIndex=
this.indexValue;d.setVariable(this.id,parseFloat(h));this.update()};a.Menu.prototype.update=function(){d=this.evaluator;this.activeIfValue=0<d.evalExpression(this.activeif);this.drawIfValue=0<d.evalExpression(this.drawif);this.field.disabled=this.activeIfValue?!1:!0;this.select.disabled=this.activeIfValue?!1:!0;this.drawIfValue?this.containerControl.style.display="block":(this.click=!1,this.containerControl.style.display="none");this.updatePositionAndSize();this.value=d.getVariable(this.id);this.field.value=
this.formatOutputValue(this.value);d.setVariable(this.id,parseFloat(this.value));this.select.selectedIndex=parseFloat(this.getIndex(this.value))};a.Menu.prototype.getIndex=function(a){a=parseFloat(a.toString().replace(this.parent.decimal_symbol,"."));h=-1;g=Infinity;for(var d=0,c=this.strValue.length;d<c;d++)b=f(a-parseFloat(this.evaluator.evalExpression(this.strValue[d]))),b<=g&&(g=b,h=d);return h};a.Menu.prototype.changeValue=function(){this.activeIfValue&&(this.evaluator.setVariable(this.id,this.value),
this.updateAndExecAction())};a.Menu.prototype.registerMouseAndTouchEvents=function(){c=a.hasTouchSupport;var b=this;b.select.oncontextmenu=b.label.oncontextmenu=b.field.oncontextmenu=function(){return!1};c?b.label.addEventListener("touchstart",function(a){a.preventDefault();return!1}):b.label.addEventListener("mousedown",function(a){a.preventDefault();return!1});this.select.addEventListener("change",function(a){b.value=b.evaluator.evalExpression(b.strValue[this.selectedIndex]);b.field.value=b.formatOutputValue(b.value);
b.evaluator.setVariable(b.id,b.field.value);b.changeValue();a.preventDefault()});this.field.addEventListener("keydown",function(a){13==a.keyCode&&(b.indexValue=b.getIndex(b.field.value),b.value=b.evaluator.evalExpression(b.strValue[b.indexValue]),b.field.value=b.formatOutputValue(b.indexValue),b.select.selectedIndex=b.indexValue,b.changeValue())})};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.floor,h="h",g,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s,w,z,B,x,D;a.Scrollbar=
function(b,d){a.Control.call(this,b,d);this.orientation=this.w>=this.h?h:"v";this.containerControl=document.createElement("div");this.canvas=document.createElement("canvas");this.divUp=document.createElement("div");this.divDown=document.createElement("div");this.field=document.createElement("input");this.scrollManipulator=document.createElement("div");this.label=document.createElement("label");this.txtLabel=document.createTextNode(this.name);this.label.appendChild(this.txtLabel);this.containerControl.appendChild(this.canvas);
this.containerControl.appendChild(this.label);this.containerControl.appendChild(this.divUp);this.containerControl.appendChild(this.divDown);this.containerControl.appendChild(this.field);this.containerControl.appendChild(this.scrollManipulator);this.addControlContainer(this.containerControl);this.registerMouseAndTouchEvents();this.init()};a.extend(a.Scrollbar,a.Control);a.Scrollbar.prototype.init=function(){g=this.evaluator;this.findOffset();this.incr=0==g.evalExpression(this.decimals)?1:(g.evalExpression(this.max)-
g.evalExpression(this.min))/100;this.value=this.validateValue(g.evalExpression(this.valueExpr));c=this.formatOutputValue(this.value);d=this.evaluator.evalExpression(this.expresion);this.x=d[0][0];this.y=d[0][1];4==d[0].length&&(this.w=d[0][2],this.h=d[0][3]);this.orientation=this.w>=this.h?h:"v";this.initScroll(c);this.changeScrollPositionFromValue();this.prePos=this.pos;g.setVariable(this.id,this.value)};a.Scrollbar.prototype.initScroll=function(d){b=this;g=b.evaluator;var c="v"===b.orientation?
parseInt(19+5*(b.h-100)/100):b.h;b.fieldFontSize="v"===b.orientation?c-parseInt(b.h/20)-1:2!==b.parent.version?a.getFieldFontSize(c):10;var e=a.getTextWidth(d+"_",b.fieldFontSize+"px Arial"),j=b.parent.getSpaceById(b.spaceID).h;b.labelHeight=""==b.name?0:c;b.fieldHeight=""==b.visible?0:c;if("v"===b.orientation)b.canvasWidth=b.w,b.canvasHeight=b.h-b.labelHeight-b.fieldHeight,18<=b.canvasHeight+b.y-j&&(b.canvasHeight=j),e=0,e=b.fieldHeight,c=e+b.canvasHeight,b.canvasX=0,b.canvasY=b.fieldHeight,b.labelWidth=
b.w,b.labelY=c,b.upWidth=b.downW=b.w,b.upHeight=b.downH=15,b.upX=0,b.upY=b.fieldHeight,b.downX=0,b.downY=c-b.downH,b.fieldWidth=b.w,b.fieldX=0,b.scrollManipulatorW=b.w,b.scrollManipulatorH=parseInt((b.canvasHeight-b.upHeight-b.downH-b.labelHeight-b.fieldHeight)/10),b.scrollManipulatorH=15>b.scrollManipulatorH?15:b.scrollManipulatorH,b.scrollManipulatorLimInf=c-b.downH-b.scrollManipulatorH,b.scrollManipulatorLimSup=e+b.downH;else{c=a.getTextWidth(b.name,b.fieldFontSize+"px Arial")+10;b.labelWidth=
c;b.fieldWidth=e;""==b.name&&(b.labelWidth=0);b.visible||(b.fieldWidth=0);for(c=b.w-b.fieldWidth-b.labelWidth;58>c&&0<b.labelWidth;)b.labelWidth--,c++;for(;58>c&&0<b.fieldWidth;)b.fieldWidth--,c++;e=b.labelWidth;j=e+c;b.fieldWidth=b.w-j;b.canvasWidth=c;b.canvasHeight=b.h;b.canvasX=b.labelWidth;b.canvasY=0;b.fieldX=b.canvasWidth+b.labelWidth;b.labelHeight=b.h;b.labelY=0;b.upWidth=b.downW=15;b.upHeight=b.downH=b.h;b.upX=j-b.downW;b.upY=0;b.downX=b.labelWidth;b.downY=0;b.scrollManipulatorW=parseInt((b.canvasWidth-
b.upWidth-b.downW)/10);b.scrollManipulatorW=15>b.scrollManipulatorW?15:b.scrollManipulatorW;b.scrollManipulatorH=b.h;b.scrollManipulatorLimInf=e+b.downW;b.scrollManipulatorLimSup=e+b.canvasWidth-b.downW-b.scrollManipulatorW}b.containerControl.setAttribute("class","DescartesScrollbarContainer");b.containerControl.setAttribute("style","width: "+b.w+"px; height: "+b.h+"px; left: "+b.x+"px; top: "+b.y+"px; z-index: "+b.zIndex+";");b.canvas.setAttribute("width",b.w+"px");b.canvas.setAttribute("height",
b.h+"px");b.canvas.setAttribute("style","position: absolute; left: 0px; top: 0px;");b.ctx=b.canvas.getContext("2d");b.divUp.setAttribute("class","DescartesCatcher");b.divUp.setAttribute("style","width : "+b.upWidth+"px; height : "+b.upHeight+"px; left: "+b.upX+"px; top: "+b.upY+"px;");b.divDown.setAttribute("class","DescartesCatcher");b.divDown.setAttribute("style","width : "+b.downW+"px; height : "+b.downH+"px; left: "+b.downX+"px; top: "+b.downY+"px;");b.scrollManipulator.setAttribute("class","DescartesCatcher");
b.scrollManipulator.setAttribute("style","width : "+b.scrollManipulatorW+"px; height : "+b.scrollManipulatorH+"px;");b.scrollManipulator.style.top=("v"===b.orientation?b.scrollManipulatorLimInf:0)+"px";b.scrollManipulator.style.left=("v"===b.orientation?0:b.scrollManipulatorLimInf)+"px";b.field.setAttribute("type","text");b.field.setAttribute("id",b.id+"scrollbar");b.field.setAttribute("class","DescartesScrollbarField");b.field.setAttribute("style","font-size: "+b.fieldFontSize+"px; width : "+(b.fieldWidth-
2)+"px; height : "+(b.fieldHeight-2)+"px; left: "+b.fieldX+"px; top: 0px;");b.field.value=d;0===b.fieldHeight&&(b.field.style.display="none");b.label.setAttribute("class","DescartesScrollbarLabel");b.label.setAttribute("style","font-size:"+b.fieldFontSize+"px; width: "+b.labelWidth+"px; height: "+b.labelHeight+"px; line-height: "+b.labelHeight+"px; left: 0px; top:"+b.labelY+"px;");b.txtLabel=document.createTextNode(b.name)};a.Scrollbar.prototype.update=function(){g=this.evaluator;this.incr=0==g.evalExpression(this.decimals)?
1:(g.evalExpression(this.max)-g.evalExpression(this.min))/100;this.activeIfValue=0<g.evalExpression(this.activeif);this.drawIfValue=0<g.evalExpression(this.drawif);this.field.disabled=!this.activeIfValue;this.drawIfValue?(this.containerControl.style.display="block",this.draw()):this.containerControl.style.display="none";this.updatePositionAndSize();this.value=this.validateValue(g.getVariable(this.id));this.field.value=this.formatOutputValue(this.value);g.setVariable(this.id,this.value)};a.Scrollbar.prototype.draw=
function(){b=this;j=b.ctx;p=f(this.w);e=f(this.h);j.fillStyle="#e0e4e8";j.fillRect(0,0,p,e);j.strokeStyle="#7a8a99";b.down&&(j.fillStyle="#ccdcec",j.fillRect(b.downX+0.5,b.downY+0.5,b.downW,b.downH-1));j.strokeRect(b.downX+0.5,b.downY+0.5,b.downW,b.downH-1);b.up&&(j.fillStyle="#ccdcec",j.fillRect(b.upX+0.5,b.upY-0.5,b.upWidth,b.upHeight+1));j.strokeRect(b.upX+0.5,b.upY-0.5,b.upWidth,b.upHeight+1);m=4;j.fillStyle="black";j.beginPath();b.orientation===h?(j.moveTo(b.downX+m,b.downH/2),j.lineTo(b.downX+
b.downW-m,m),j.lineTo(b.downX+b.downW-m,b.downH-m),j.moveTo(b.upX+b.upWidth-m,b.downH/2),j.lineTo(b.upX+m,m),j.lineTo(b.upX+m,b.downH-m),j.fill(),b.activeIfValue&&(k=f(b.pos),j.fillStyle="#ccdcec",j.fillRect(k+0.5,0,f(b.scrollManipulatorW),e),j.strokeStyle="#6382bf",j.strokeRect(k+0.5,0,f(b.scrollManipulatorW),e),q=f(b.scrollManipulatorW/2),j.beginPath(),j.moveTo(k+q+0.5-2,3),j.lineTo(k+q+0.5-2,e-3),j.moveTo(k+q+0.5,3),j.lineTo(k+q+0.5,e-3),j.moveTo(k+q+0.5+2,3),j.lineTo(k+q+0.5+2,e-3),j.stroke())):
(j.moveTo(b.downX+b.downW/2,b.downY+b.downH-m),j.lineTo(b.downX+m,b.downY+m),j.lineTo(b.downX+b.downW-m,b.downY+m),j.moveTo(b.upX+b.upWidth/2,b.upY+m),j.lineTo(b.upX+m,b.upY+b.upHeight-m),j.lineTo(b.upX+b.upWidth-m,b.upY+b.upHeight-m),j.fill(),b.activeIfValue&&(k=f(b.pos),j.fillStyle="#ccdcec",j.fillRect(0,k+0.5,p,f(b.scrollManipulatorH)),j.strokeStyle="#6382bf",j.strokeRect(0,k+0.5,p,f(b.scrollManipulatorH)),q=f(b.scrollManipulatorH/2),j.beginPath(),j.moveTo(3,k+q+0.5-2),j.lineTo(p-3,k+q+0.5-2),
j.moveTo(3,k+q+0.5),j.lineTo(p-3,k+q+0.5),j.moveTo(3,k+q+0.5+2),j.lineTo(p-3,k+q+0.5+2),j.stroke()));j.strokeRect(0.5,0.5,p-1,e-1);b.activeIfValue||(j.fillStyle="rgba(240,240,240,"+160/255+")",j.fillRect(0,0,p,e.h))};a.Scrollbar.prototype.validateValue=function(a){g=this.evaluator;r=a.toString();r=parseFloat(r.replace(this.parent.decimal_symbol,"."));isNaN(r)&&(r=0);this.minimo=g.evalExpression(this.min);r<this.minimo&&(this.value=null,r=this.minimo);this.maximo=g.evalExpression(this.max);r>this.maximo&&
(this.value=null,r=this.maximo);t=this.incr;r=0!=t?r*t/t:0;this.fixed&&(r=parseFloat(parseFloat(r).toFixed(g.evalExpression(this.decimals))));return r};a.Scrollbar.prototype.increase=function(){this.changeValue(parseFloat(this.value)+this.incr)};a.Scrollbar.prototype.decrease=function(){this.changeValue(parseFloat(this.value)-this.incr)};a.Scrollbar.prototype.increase10=function(){m=(this.evaluator.evalExpression(this.max)-this.evaluator.evalExpression(this.min))/10;this.orientation==h?this.clickPos.x>
this.prePos&&this.changeValue(parseFloat(this.value)+m):this.clickPos.y<this.prePos&&this.changeValue(parseFloat(this.value)+m)};a.Scrollbar.prototype.decrease10=function(){m=(this.evaluator.evalExpression(this.max)-this.evaluator.evalExpression(this.min))/10;this.orientation==h?this.clickPos.x<this.prePos&&this.changeValue(parseFloat(this.value)-m):this.clickPos.y>this.prePos&&this.changeValue(parseFloat(this.value)-m)};a.Scrollbar.prototype.changeValue=function(a){this.activeIfValue&&(n=this.validateValue(a),
n!=this.value&&(this.value=n,this.field.value=this.formatOutputValue(n),this.changeScrollPositionFromValue(),this.prePos=this.pos,this.evaluator.setVariable(this.id,this.value),this.updateAndExecAction()))};a.Scrollbar.prototype.changeValueForScrollMovement=function(){g=this.evaluator;u=this.scrollManipulatorLimInf;l=this.scrollManipulatorLimSup;s=g.evalExpression(this.min);w=g.evalExpression(this.max);t=this.incr;n=f((this.pos-u)*(w-s)/(l-u)/t)*t+s;n!=this.value&&(this.value=n,this.field.value=this.formatOutputValue(n),
g.setVariable(this.id,this.value),this.parent.updateControls(),this.actionExec.execute(),this.parent.update())};a.Scrollbar.prototype.changeScrollPositionFromValue=function(){g=this.evaluator;u=this.scrollManipulatorLimInf;l=this.scrollManipulatorLimSup;s=g.evalExpression(this.min);w=g.evalExpression(this.max);t=this.incr;this.pos=(this.value-s)*(l-u)/(w-s)+u;this.orientation==h?this.scrollManipulator.style.left=this.pos+"px":this.scrollManipulator.style.top=this.pos+"px"};a.Scrollbar.prototype.registerMouseAndTouchEvents=
function(){function b(a,d,c,e){clearInterval(w);if((s.up||s.down||s.canvasClick)&&1E-7<Math.abs(s.value-e))d.call(s),a=c?a:30,w=setTimeout(function(){b(a,d,!1,e)},a)}function d(c){c.preventDefault();s.whichButton=a.whichButton(c);"L"==s.whichButton&&s.activeIfValue&&(s.clickPos=s.getCursorPosition(c),s.canvasClick=!0,s.orientation==h?s.clickPos.x<s.prePos?b(u,s.decrease10,!0,s.minimo):b(u,s.increase10,!0,s.maximo):s.clickPos.y<s.prePos?b(u,s.increase10,!0,s.maximo):b(u,s.decrease10,!0,s.minimo))}
function c(a){s.canvasClick=!1;clearInterval(w);a.preventDefault()}function e(a){!0==s.canvasClick&&(s.clickPos=s.getCursorPosition(a),a.preventDefault())}function g(a){s.activeIfValue&&(s.scrollClick=!0,s.initPos=s.getCursorPosition(a),window.addEventListener("mouseup",f),window.addEventListener("mousemove",k),a.preventDefault())}function j(a){s.activeIfValue&&(s.scrollClick=!0,s.initPos=s.getCursorPosition(a),window.addEventListener("touchend",l),window.addEventListener("touchmove",onToucheMove_scrollManipulator),
a.preventDefault())}function f(a){s.scrollClick=!1;s.prePos=s.pos;window.removeEventListener("mouseup",f,!1);window.removeEventListener("mousemove",k,!1);a.preventDefault()}function l(a){s.scrollClick=!1;s.prePos=s.pos;window.removeEventListener("touchend",l,!1);window.removeEventListener("touchmove",k,!1);a.preventDefault()}function k(a){var b=s.getCursorPosition(a);s.orientation==h?(s.pos=s.prePos-(s.initPos.x-b.x),s.pos<s.scrollManipulatorLimInf&&(s.pos=s.scrollManipulatorLimInf),s.pos>s.scrollManipulatorLimSup&&
(s.pos=s.scrollManipulatorLimSup),s.scrollManipulator.setAttribute("style","background-color: rgba(255, 255, 255, 0); cursor: pointer; position: absolute; width : "+s.scrollManipulatorW+"px; height : "+s.h+"px; left: "+s.pos+"px; top: 0px;")):(s.pos=s.prePos-(s.initPos.y-b.y),s.pos>s.scrollManipulatorLimInf&&(s.pos=s.scrollManipulatorLimInf),s.pos<s.scrollManipulatorLimSup&&(s.pos=s.scrollManipulatorLimSup),s.scrollManipulator.setAttribute("style","background-color: rgba(255, 255, 255, 0); cursor: pointer; position: absolute; width : "+
s.w+"px; height : "+s.scrollManipulatorH+"px; left: 0px; top: "+s.pos+"px;"));s.changeValueForScrollMovement();a.preventDefault()}function m(d){d.preventDefault();s.whichButton=a.whichButton(d);"L"==s.whichButton&&s.activeIfValue&&(s.up=!0,b(u,s.increase,!0,s.maximo))}function p(d){d.preventDefault();s.whichButton=a.whichButton(d);"L"==s.whichButton&&s.activeIfValue&&(s.down=!0,b(u,s.decrease,!0,s.minimo))}function n(a){s.up=!1;clearInterval(w);a.preventDefault()}function r(a){s.down=!1;clearInterval(w);
a.preventDefault()}function q(a){s.up=!1;clearInterval(w);a.preventDefault();s.draw()}function t(a){s.down=!1;clearInterval(w);a.preventDefault();s.draw()}z=a.hasTouchSupport;var s=this,u=z?500:200,w;s.canvas.oncontextmenu=s.divUp.oncontextmenu=s.divDown.oncontextmenu=s.label.oncontextmenu=s.field.oncontextmenu=s.scrollManipulator.oncontextmenu=function(){return!1};this.field.addEventListener("keydown",function(a){13==a.keyCode&&s.changeValue(s.field.value)});z?this.canvas.addEventListener("touchstart",
d):this.canvas.addEventListener("mousedown",d);z||this.divDown.addEventListener("mouseout",r);z?window.addEventListener("touchend",c):window.addEventListener("mouseup",c);z?this.canvas.addEventListener("touchmove",e):this.canvas.addEventListener("mousemove",e);z?this.scrollManipulator.addEventListener("touchstart",j):this.scrollManipulator.addEventListener("mousedown",g);z?this.divUp.addEventListener("touchstart",m):this.divUp.addEventListener("mousedown",m);z?this.divDown.addEventListener("touchstart",
p):this.divDown.addEventListener("mousedown",p);z||this.divUp.addEventListener("mouseout",n);z||this.divDown.addEventListener("mouseout",r);z?window.addEventListener("touchend",q):window.addEventListener("mouseup",q);z?window.addEventListener("touchend",t):window.addEventListener("mouseup",t)};a.Scrollbar.prototype.findOffset=function(){B=this.containerControl;this.offsetTop=this.offsetLeft=0;x=this.containerControl.style.display;for(this.containerControl.style.display="block";B;)this.offsetLeft+=
B.offsetLeft||0,this.offsetTop+=B.offsetTop||0,B=B.parentNode;this.containerControl.style.display=x};a.Scrollbar.prototype.getCursorPosition=function(b){D=a.getCursorPosition(b);return{x:D.x-this.offsetLeft,y:D.y-this.offsetTop}};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f;a.Audio=function(g,b){this.controls=!0;this.file="";this.oldDrawIf=0;a.Control.call(this,g,b);var c=this,d=c.evaluator.evalExpression(c.expresion);4==d[0].length?(c.w=d[0][2],c.h=d[0][3]):(c.w=
200,c.h=28);c.audio=c.parent.getAudio(c.file);c.autoplay&&(c.audio.setAttribute("autoplay","autoplay"),c.audio.play());c.loop&&c.audio.setAttribute("loop","loop");c.controls&&c.audio.setAttribute("controls","controls");c.audio.setAttribute("style","position: absolute; width: "+c.w+"px; left: "+c.x+"px; top: "+c.y+"px; z-index: "+c.zIndex+";");c.addControlContainer(c.audio);c.evaluator.setFunction(c.id+".play",function(){c.audio.play()});c.evaluator.setFunction(c.id+".pause",function(){c.audio.pause()});
c.evaluator.setFunction(c.id+".stop",function(){c.audio.pause();c.audio.currentTime=0});c.audio.addEventListener("timeupdate",function(){c.evaluator.setVariable(c.id+".currentTime",c.audio.currentTime)})};a.extend(a.Audio,a.Control);a.Audio.prototype.init=function(){this.audio.style.left=this.x+"px";this.audio.style.top=this.y+"px";this.update()};var h;a.Audio.prototype.update=function(){f=this.evaluator;(h=0<f.evalExpression(this.drawif))?this.audio.style.display="block":(this.audio.style.display=
"none",h!==this.oldDrawIf&&this.audio.pause());this.oldDrawIf=h;this.updatePositionAndSize()};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f;a.Video=function(g,b){this.controls=!0;this.file="";this.oldDrawIf=0;a.Control.call(this,g,b);var c=this;f=c.evaluator;var d=c.evaluator.evalExpression(c.expresion);4==d[0].length?(c.w=d[0][2],c.h=d[0][3]):(c.w=null,c.h=null);c.video=document.createElement("video");c.autoplay&&c.video.setAttribute("autoplay","autoplay");c.loop&&
c.video.setAttribute("loop","loop");c.controls&&c.video.setAttribute("controls","controls");c.poster&&c.video.setAttribute("poster",c.poster);c.w&&(c.video.setAttribute("width",c.w),c.video.setAttribute("height",c.h));c.video.setAttribute("style","position: absolute; overflow: hidden; left: "+c.x+"px; top: "+c.y+"px;");var d=c.file,j=d.lastIndexOf(".");-1!=j&&(d=c.file.substring(0,j));c.video.canPlayType("video/mp4")&&(j=document.createElement("source"),j.setAttribute("src",d+".mp4"),j.setAttribute("type",
"video/mp4"),c.video.appendChild(j));c.video.canPlayType("video/ogg")&&(j=document.createElement("source"),j.setAttribute("src",d+".ogg"),j.setAttribute("type","video/ogg"),c.video.appendChild(j),j=document.createElement("source"),j.setAttribute("src",d+".ogv"),j.setAttribute("type","video/ogg"),c.video.appendChild(j));c.video.canPlayType("video/webm")&&(j=document.createElement("source"),j.setAttribute("src",d+".webm"),j.setAttribute("type","video/webm"),c.video.appendChild(j));c.addControlContainer(c.video);
c.evaluator.setFunction(c.id+".play",function(){c.video.play()});c.evaluator.setFunction(c.id+".pause",function(){c.video.pause()});c.evaluator.setFunction(c.id+".stop",function(){c.video.pause();c.video.currentTime=0});c.video.addEventListener("timeupdate",function(){c.evaluator.setVariable(c.id+".currentTime",c.video.currentTime)})};a.extend(a.Video,a.Control);a.Video.prototype.init=function(){this.video.style.left=this.x+"px";this.video.style.top=this.y+"px";this.update()};var h;a.Video.prototype.update=
function(){f=this.evaluator;h=0<f.evalExpression(this.drawif);0<f.evalExpression(this.drawif)?this.video.style.display="block":(this.video.style.display="none",h!==this.oldDrawIf&&this.video.pause());this.oldDrawIf=h;this.updatePositionAndSize()};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h;a.TextArea=function(g,b){this.font="Monospaced,PLAIN,12";a.Control.call(this,g,b);this.region="interior";this.tabindex=++this.parent.tabindex;if(this.answer){this.answer.match("krypto_")&&
(this.answer=(new a.Krypto).decode(this.answer.substring(7)));var c=this.parent.lessonParser.parseText(this.answer)}this.containerControl=document.createElement("div");this.textArea=document.createElement("div");this.textAreaAnswer=document.createElement("div");this.showButton=document.createElement("div");this.activeCover=document.createElement("div");this.containerControl.appendChild(this.textArea);this.containerControl.appendChild(this.textAreaAnswer);this.containerControl.appendChild(this.showButton);
this.containerControl.appendChild(this.activeCover);this.addControlContainer(this.containerControl);this.showAnswer=!1;this.text=void 0==this.text||"simpleText"==this.text.type?this.rawText||"":this.text.hasFormula?this.rawText:this.text.toHTML();c&&"simpleText"!=c.type&&(this.answer=this.text.hasFormula?"":c.toHTML());this.evaluator.setVariable(this.id,this.text);this.drawButton();this.registerMouseAndTouchEvents();this.init()};a.extend(a.TextArea,a.Control);a.TextArea.prototype.init=function(){h=
this.answer?28:8;f=this.evaluator;var g;g=this.text.match(/<span/)?this.text:this.text.replace(/\\n/g,"<br/>");this.containerControl.setAttribute("class","DescartesTextAreaContainer");this.containerControl.setAttribute("style","width: "+this.w+"px; height: "+this.h+"px; left: "+this.x+"px; top: "+this.y+"px; z-index: "+this.zIndex+";");this.containerControl.style.display=0<f.evalExpression(this.drawif)?"block":"none";this.containerControl.setAttribute("spellcheck","false");this.textArea.setAttribute("class",
"DescartesTextAreaContainer");this.textArea.setAttribute("style","width: "+(this.w-8)+"px; height: "+(this.h-h)+"px; left: 4px; top: 4px; background-color: white; text-align: left; font: "+a.convertFont(this.font)+";");this.textArea.setAttribute("contenteditable","true");this.textArea.innerHTML="<span style='position: relative; top: 10px; left: 10px; white-space: nowrap;' >"+g+"</span>";this.textAreaAnswer.setAttribute("class","DescartesTextAreaContainer");this.textAreaAnswer.setAttribute("style",
"width: "+(this.w-8)+"px; height: "+(this.h-h)+"px; left: 4px; top: 4px; background-color: white; text-align: left; font: "+a.convertFont(this.font)+";");this.textAreaAnswer.style.display=this.showAnswer?"block":"none";this.textAreaAnswer.innerHTML="<span style='position: relative; top: 10px; left: 10px; white-space: nowrap;'>"+this.answer+"</span>";this.showButton.setAttribute("style","width: 20px; height: 16px; position: absolute; bottom: 4px; right: 4px; cursor: pointer;");this.showButton.style.backgroundImage=
"url("+this.imageUnPush+")";this.showButton.style.display=this.answer?"block":"none";this.showButton.innerHTML="<span style='position: relative; top: 2px; text-align: center; font: 9px Arial'> S </span>";this.activeCover.setAttribute("style","position: absolute; width: "+this.w+"px; height: "+this.h+"px; left: "+this.x+"px; top: "+this.y+"px;");this.update()};a.TextArea.prototype.drawButton=function(){var g=document.createElement("canvas");g.setAttribute("width",20);g.setAttribute("height",16);var b=
g.getContext("2d");this.canvas=g;this.ctx=b;this.createGradient(20,16);b.lineWidth=1;b.fillStyle="white";b.fillRect(0,0,20,16);b.fillStyle=this.linearGradient;b.fillRect(0,0,20,16);a.drawLine(b,19,0,19,16,"rgba(0,0,0,"+128/255+")");a.drawLine(b,0,0,0,16,"rgba(0,0,0,"+24/255+")");a.drawLine(b,1,0,1,16,"rgba(0,0,0,"+8/255+")");this.imageUnPush=g.toDataURL();b.fillStyle="white";b.fillRect(0,0,20,16);b.fillStyle=this.linearGradient;b.fillRect(0,0,20,16);a.drawLine(b,0,0,0,14,"gray");a.drawLine(b,0,0,
19,0,"gray");b.fillStyle="rgba(0, 0, 0,"+24/255+")";b.fillRect(0,0,this.w,this.h);this.imagePush=g.toDataURL()};a.TextArea.prototype.update=function(){f=this.evaluator;this.activeIfValue=0<f.evalExpression(this.activeif);this.drawIfValue=0<f.evalExpression(this.drawif);var a;a=this.text.match(/<span/)?this.rawText:this.text;f.setVariable(this.id,a);this.activeCover.style.display=this.activeIfValue?"none":"block";this.containerControl.style.display=this.drawIfValue?"block":"none";this.updatePositionAndSize()};
a.TextArea.prototype.registerMouseAndTouchEvents=function(){function a(c){c.preventDefault();b.showButton.style.backgroundImage="url("+b.imageUnPush+")"}var b=this;this.showButton.addEventListener("mousedown",function(a){a.preventDefault();b.showAnswer=!b.showAnswer;b.textAreaAnswer.style.display=b.showAnswer?"block":"none";b.showButton.childNodes[0].childNodes[0].textContent=b.showAnswer?"T":"S";b.showButton.style.backgroundImage="url("+b.imagePush+")"});this.showButton.addEventListener("mouseup",
a);this.showButton.addEventListener("mouseout",a)};a.TextArea.prototype.getScreenshot=function(){var a=document.createElement("canvas");a.setAttribute("width",this.w);a.setAttribute("height",this.h);var b=a.getContext("2d");b.fillStyle="white";b.strokeStyle="black";b.lineWidth=1;b.fillRect(0,0,this.w,this.h);b.strokeRect(0,0,this.w,this.h);return a};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=2*Math.PI,h,g,b,c,d,j,e,p,m;a.GraphicControl=function(b,d){g=b.evaluator.parser;
this.spaceID="E0";this.text="";this.size=g.parse("4");this.font="Monospaced,PLAIN,12";this.image=new Image;this.image.onload=function(){this.ready=1};this.imageSrc="";a.Control.call(this,b,d);this.touchId=null;this.font=a.convertFont(this.font);this.constraintExpr&&(this.constraint=g.parse(this.constraintExpr),"(expr)"==this.constraint.type&&(this.constraint=g.parse(this.constraintExpr.substring(1,this.constraintExpr.length-1))),"compOperator"==this.constraint.type?this.newt=new a.R2Newton(this.evaluator,
this.constraint):this.constraint=null,p=new a.R2(0,0));this.container=this.getContainer();this.mouseCacher=document.createElement("div");this.mouseCacher.setAttribute("class","DescartesGraphicControl");this.mouseCacher.setAttribute("id",this.id);this.mouseCacher.setAttribute("dragged",!0);this.mouseCacher.setAttribute("tabindex","-1");this.ctx=this.space.ctx;this.container.appendChild(this.mouseCacher);this.registerMouseAndTouchEvents();this.xString=this.id+".x";this.yString=this.id+".y";this.activoString=
this.id+".activo";""!==this.space.id&&2!==b.version?(this.mxString=this.space.id+".mouse_x",this.myString=this.space.id+".mouse_y",this.mclickedString=this.space.id+".mouse_clicked",this.mclicizquierdoString=this.space.id+".clic_izquierdo"):(this.mxString="mouse_x",this.myString="mouse_y",this.mclickedString="mouse_clicked",this.mclicizquierdoString="clic_izquierdo");this.init()};a.extend(a.GraphicControl,a.Control);a.GraphicControl.prototype.init=function(){h=this.evaluator;m=a.hasTouchSupport;var b=
h.evalExpression(this.expresion);this.x=b[0][0];this.y=b[0][1];h.setVariable(this.xString,this.x);h.setVariable(this.yString,this.y);""!=this.imageSrc&&!this.imageSrc.toLowerCase().match(/vacio.gif$/)?(this.image=this.parent.getImage(this.imageSrc),this.width=this.image.width,this.height=this.image.height):(this.width=2*h.evalExpression(this.size),this.height=2*h.evalExpression(this.size));this._w=m&&70>this.width?70:this.width;this._h=m&&70>this.height?70:this.height;this.mouseCacher.setAttribute("style",
"cursor: pointer; background-color: rgba(255, 255, 255, 0); width: "+this._w+"px; height: "+this._h+"px; z-index: "+this.zIndex+";");this.mouseCacher.style.left=parseInt(this.space.getAbsoluteX(this.x)-this._w/2)+"px";this.mouseCacher.style.top=parseInt(this.space.getAbsoluteY(this.y)-this._h/2)+"px";h.setVariable(this.activoString,0);this.update()};a.GraphicControl.prototype.update=function(){h=this.evaluator;this.activeIfValue=0<h.evalExpression(this.activeif);this.drawIfValue=0<h.evalExpression(this.drawif);
this.x=h.getVariable(this.xString);this.y=h.getVariable(this.yString);b=this.space.getAbsoluteX(this.x);c=this.space.getAbsoluteY(this.y);this.activeIfValue?this.mouseCacher.style.display="block":(this.mouseCacher.style.display="none",this.mouseCacher.style.left=parseInt(b-this._w/2)+"px",this.mouseCacher.style.top=parseInt(c-this._h/2)+"px");this.constraint&&this.evalConstraint();this.draw()};a.GraphicControl.prototype.draw=function(){h=this.evaluator;this.drawIfValue&&(j=this.ctx,e=this.space.backgroundCtx,
b=parseInt(this.space.getAbsoluteX(this.x))+0.5,c=parseInt(this.space.getAbsoluteY(this.y))+0.5,""!=this.text&&this.drawText(b,c),this.image.ready?(this.image.complete&&j.drawImage(this.image,parseInt(b-this.image.width/2),parseInt(c-this.image.height/2)),this.trace&&(e.save(),e.translate(b,c),e.scale(parseInt(this.image.width/2),parseInt(this.image.height/2)),e.beginPath(),e.arc(0,0,1,0,f,!1),e.restore(),e.lineWidth=1,e.strokeStyle=this.trace.getColor(),e.stroke())):(j.beginPath(),j.arc(b,c,parseInt(this.width/
2),0,f,!1),j.fillStyle=this.colorInt.getColor(),j.fill(),j.lineWidth=1,j.strokeStyle=this.color.getColor(),j.stroke(),this.active&&(j.beginPath(),j.arc(b,c,parseInt(this.width/2)-2,0,f,!1),j.strokeStyle=this.colorInt.borderColor(),j.stroke()),this.trace&&(e.lineWidth=1,e.strokeStyle=this.trace.getColor(),e.beginPath(),e.arc(b,c,parseInt(this.width/2),0,f,!1),e.stroke())))};a.GraphicControl.prototype.evalConstraint=function(){p.set(this.x,this.y);d=this.newt.findZero(p);this.x=d.x;this.y=d.y;this.evaluator.setVariable(this.xString,
this.x);this.evaluator.setVariable(this.yString,this.y)};a.GraphicControl.prototype.drawText=function(a,b){j=this.ctx;h=this.evaluator;j.fillStyle=this.color.getColor();j.font=this.font;j.textBaseline="alphabetic";j.fillText(h.evalExpression(this.text[0],h.evalExpression(this.decimals),this.fixed),parseInt(a+1+this.width/2),parseInt(b-1-this.height/2))};a.GraphicControl.prototype.getContainer=function(){for(var a=this.parent.spaces,b,d=0,c=a.length;d<c;d++)if(b=a[d],b.id==this.spaceID)return b.addCtr(this),
this.zIndex=b.zIndex,this.space=b,b.graphicControlContainer;a[0].addCtr(this);this.zIndex=a[0].zIndex;this.space=a[0];return a[0].graphicControlContainer};a.GraphicControl.prototype.deactivate=function(){this.active=!1;this.evaluator.setVariable(this.activoString,0)};a.GraphicControl.prototype.registerMouseAndTouchEvents=function(){function b(d){d.preventDefault();f.whichButton=a.whichButton(d);"L"==f.whichButton&&(f.activeIfValue&&f.over)&&(f.parent.deactivateGraphiControls(),f.click=!0,f.active=
!0,f.evaluator.setVariable(f.activoString,1),f.evaluator.setVariable(f.mclickedString,0),f.evaluator.setVariable(f.mclicizquierdoString,0),f.posAnte=f.getCursorPosition(d),f.prePos={x:f.space.getAbsoluteX(f.x),y:f.space.getAbsoluteY(f.y)},f.evaluator.setVariable(f.mxString,f.space.getRelativeX(f.posAnte.x)),f.evaluator.setVariable(f.myString,f.space.getRelativeY(f.posAnte.y)),f.parent.update(),window.addEventListener("mouseup",c),window.addEventListener("mousemove",e))}function d(a){a.preventDefault();
f.activeIfValue&&(f.parent.deactivateGraphiControls(),f.click=!0,f.active=!0,f.evaluator.setVariable(f.activoString,1),f.evaluator.setVariable(f.mclickedString,0),f.evaluator.setVariable(f.mclicizquierdoString,0),f.posAnte=f.getCursorPosition(a),f.prePos={x:f.space.getAbsoluteX(f.x),y:f.space.getAbsoluteY(f.y)},f.evaluator.setVariable(f.mxString,f.space.getRelativeX(f.posAnte.x)),f.evaluator.setVariable(f.myString,f.space.getRelativeY(f.posAnte.y)),f.parent.update(),window.addEventListener("touchmove",
e),window.addEventListener("touchend",c))}function c(b){b.preventDefault();f.touchId=null;f.evaluator.setVariable(f.mclickedString,1);f.evaluator.setVariable(f.mclicizquierdoString,1);if(f.activeIfValue||f.active)f.click=!1,a.hasTouchSupport?(window.removeEventListener("touchmove",e,!1),window.removeEventListener("touchend",c,!1)):(window.removeEventListener("mouseup",c,!1),window.removeEventListener("mousemove",e,!1)),f.evaluator.setVariable(f.mxString,f.space.getRelativeX(f.posAnte.x)+f.x),f.evaluator.setVariable(f.myString,
f.space.getRelativeY(f.posAnte.y)+f.y),f.parent.update(),f.mouseCacher.style.left=f.space.getAbsoluteX(f.x)-f._w/2+"px",f.mouseCacher.style.top=f.space.getAbsoluteY(f.y)-f._h/2+"px"}function e(a){a.preventDefault();a.touchId=f.touchId;f.evaluator.setVariable(f.mclickedString,0);f.evaluator.setVariable(f.mclicizquierdoString,0);h=f.getCursorPosition(a);f.posX=f.prePos.x-(f.posAnte.x-h.x);f.posY=f.prePos.y-(f.posAnte.y-h.y);f.evaluator.setVariable(f.xString,f.space.getRelativeX(f.posX));f.evaluator.setVariable(f.yString,
f.space.getRelativeY(f.posY));f.evaluator.setVariable(f.mxString,f.space.getRelativeX(f.posAnte.x)+f.space.getRelativeX(f.posX));f.evaluator.setVariable(f.myString,f.space.getRelativeY(f.posAnte.y)+f.space.getRelativeY(f.posY));f.parent.updateControls();f.parent.update()}function g(){f.over=!0}function j(){f.over=!1;f.click=!1}var f=this;this.active=this.over=this.click=!1;this.mouseCacher.oncontextmenu=function(){return!1};a.hasTouchSupport?this.mouseCacher.addEventListener("touchstart",d):(this.mouseCacher.addEventListener("mousedown",
b),this.mouseCacher.addEventListener("mouseover",g),this.mouseCacher.addEventListener("mouseout",j));var h};a.GraphicControl.prototype.getCursorPosition=function(a){if(a.touches){var b;if(a.touchId){d=0;for(c=a.touches.length;d<c;d++)if(a.touches[d].identifier==a.touchId){b=a.touches[d];break}}else for(var d=0,c=a.touches.length;d<c;d++)if(a.target==a.touches[d].target){b=a.touches[d];this.touchId=b.identifier;break}mouseX=b.pageX;mouseY=b.pageY}else void 0!=a.pageX&&void 0!=a.pageY?(mouseX=a.pageX,
mouseY=a.pageY):(mouseX=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,mouseY=a.clientY+document.body.scrollTop+document.documentElement.scrollTop);return{x:mouseX-(this.space.container.offsetLeft+this.space.container.parentNode.offsetLeft),y:mouseY-(this.space.container.offsetTop+this.space.container.parentNode.offsetTop)}};return a}(descartesJS||{}),descartesJS=function(a,f){var h,g,b,c,d,j,e,p,m,k;if(a.loadLib)return a;var q,r,t,n,u,l,s,w,z=/[\w-//]*(\.png|\.jpg|\.gif|\.svg|\.PNG|\.JPG|\.GIF|\.SVG)/g,
B,x,D,C,A,y,G,F,H,J,v,I,E,O,P,L,Q,R,M,N,K;a.LessonParser=function(b){this.parent=b;this.parser=b.evaluator.parser;this.RTFparser=new a.RTFParser(b.evaluator)};a.LessonParser.prototype.parseButtonsConfig=function(a){var b={rowsNorth:0,rowsSouth:0,widthEast:125,widthWest:125,height:23};a=this.split(a);for(var d=0,c=a.length;d<c;d++)switch(t=a[d][0],n=a[d][1],r=f[t],r){case "rowsNorth":case "rowsSouth":case "widthEast":case "widthWest":case "height":b[r]=parseInt(n);break;case "about":case "config":case "init":case "clear":b[r]=
"true"===f[n];break;default:console.log("----- attributo de space no identificado: <"+t+"> valor: <"+n+"> -----")}return b};a.LessonParser.prototype.parseSpace=function(b){u={};b=this.split(b);for(var d=0,c=b.length;d<c;d++)switch(t=b[d][0],n=b[d][1],r=f[t],r){case "type":case "id":case "cID":case "file":u[r]=n;break;case "fixed":case "numbers":case "sensitive_to_mouse_movements":case "R3":case "split":u[r]="true"===f[n];break;case "bg_display":case "render":u[r]=f[n];break;case "net":case "net10":case "axes":case "text":u[r]=
"false"===f[n]?"":new a.Color(n,this.parent.evaluator);break;case "x_axis":case "y_axis":u[r]="false"===f[n]?"":n;break;case "O.x":u.OxExpr=n;break;case "O.y":u.OyExpr=n;break;case "image":u.imageSrc=n;break;case "x":q=n;q="%"===q[q.length-1]?(this.parent.container.width*parseFloat(q)/100).toString():n;u.xExpr=this.parser.parse(q);break;case "y":q=n;q="%"===q[q.length-1]?(this.parent.container.height*parseFloat(q)/100).toString():n;u.yExpr=this.parser.parse(q);break;case "width":q=n;"%"===q[q.length-
1]?(u.wExpr=q,q=this.parent.container.width*parseFloat(q)/100):(q=parseFloat(n),q!=n&&(q=this.parent.container.width));u.w=q;break;case "height":q=n;"%"===q[q.length-1]?(u.hExpr=q,q=this.parent.container.height*parseFloat(q)/100):(q=parseFloat(n),q!=n&&(q=this.parent.container.height));u.h=q;break;case "drawif":u.drawif=this.parser.parse(n);break;case "scale":q=parseFloat(n);q.toString()!=n&&(q=48);u.scale=q;break;case "background":u.background=new a.Color(n,this.parent.evaluator);break;default:console.log("----- attributo de space no identificado: <"+
t+"> valor: <"+n+"> -----")}switch(u.type){case "R2":return new a.Space2D(this.parent,u);case "R3":return new a.Space3D(this.parent,u);case "AP":return new a.SpaceAP(this.parent,u);case "HTMLIFrame":return new a.SpaceHTML_IFrame(this.parent,u);default:return new a.Space2D(this.parent,u)}};a.LessonParser.prototype.parseControl=function(b){l={};b=this.split(b);for(var d=0,c=b.length;d<c;d++)switch(t=b[d][0],n=b[d][1],r=f[t],r){case "id":case "name":case "parameter":case "tooltip":case "tooltipFont":case "Explanation":case "ExplanationFont":case "cID":case "options":case "font":case "file":case "answer":l[r]=
n;break;case "gui":case "region":case "action":case "msg_pos":case "poster":l[r]=f[n];break;case "fixed":case "visible":case "discrete":case "onlyText":case "evaluate":case "autoplay":case "loop":case "controls":l[r]="true"===f[n];break;case "color":case "colorInt":case "trace":l[r]=new a.Color(n,this.parent.evaluator);break;case "font_size":case "drawif":case "activeif":case "decimals":case "min":case "max":case "size":l[r]=this.parser.parse(n);break;case "constraint":l.constraintExpr=n;break;case "image":l.imageSrc=
n;break;case "space":l.spaceID=n;break;case "type":l.type=f[n.trim()];break;case "expresion":l.expresion=this.parser.parse(n.replace(")(",","));break;case "bold":"false"!=f[n]&&(l.bold="bold");break;case "italics":"false"!=f[n]&&(l.italics="italic");break;case "underlined":"false"!=f[n]&&(l.underlined=!0);break;case "value":var e=n.replace(/&squot;/g,"'");e.match(/^\|/)&&(e="'"+e.substring(1),e.match(/\|$/)&&(e=e.substring(0,e.length-1)+"'"));l.valueExpr=this.parser.parse(e);l.valueExprString=e;break;
case "incr":0!=n&&(l.incr=this.parser.parse(n));break;case "exponentialif":l.exponentialif=parseFloat(n);break;case "text":l.rawText=n;for(var e=this.parseText(n),g=0,j=e.length;g<j;g++)e[g]=this.parser.parse(e[g],!1);l.text=e;break;default:g=t.indexOf(".");e=f[t.substring(0,g)];g=f[t.substring(g+1)];if("parameter"===e&&"font"===g){l.parameterFont=n;break}else if("Explanation"===e&&"font"===g){l.ExplanationFont=n;break}else if("tooltip"===e&&"font"===g){l.tooltipFont=n;break}console.log("----- attributo de control no identificado: <"+
t+"> valor: <"+n+"> -----")}if("numeric"===l.type)switch(l.gui){case "spinner":return new a.Spinner(this.parent,l);case "button":return new a.Button(this.parent,l);case "textfield":return new a.TextField(this.parent,l);case "menu":return new a.Menu(this.parent,l);case "scrollbar":return new a.Scrollbar(this.parent,l);default:return new a.Spinner(this.parent,l)}else{if("video"===l.type)return new a.Video(this.parent,l);if("audio"===l.type)return new a.Audio(this.parent,l);if("graphic"===l.type)return new a.GraphicControl(this.parent,
l);if("text"===l.type)return new a.TextArea(this.parent,l)}};a.LessonParser.prototype.parseGraphic=function(b,d,c,e){s={rotateExp:e,parameter:"t"};b=this.split(b);e=0;for(var g=b.length;e<g;e++)switch(t=b[e][0],n=b[e][1],r=f[t],r){case "type":case "align":s[r]=f[n];break;case "background":case "abs_coord":case "visible":case "editable":case "fixed":case "vectors":s[r]="true"===f[n];break;case "color":case "fill":case "fillP":case "fillM":case "arrow":case "trace":s[r]="false"===f[n]?"":new a.Color(n,
this.parent.evaluator);break;case "family":case "parameter":case "info":case "font":case "name":s[r]=n;break;case "drawif":case "width":case "decimals":case "size":case "spear":case "center":case "radius":case "init":case "end":case "opacity":case "inirot":case "inipos":case "range":s[r]=this.parser.parse(n);break;case "space":s.spaceID=n;break;case "expresion":"macro"!=s.type?(s.expresion=this.parser.parse(n),s.expresionString=n):s.expresion=n;break;case "text":s.text=this.parseText(n);break;case "file":var j=
n.replace(/&squot;/g,"'");"["===j.charAt(0)&&"]"===j.charAt(j.length-1)&&(j=j.substring(1,j.length-1));j.match(z)&&(j="'"+j+"'");s.file=this.parser.parse(j);break;case "border":"false"!=f[n]&&(s.border=new a.Color(n,this.parent.evaluator));break;default:if(void 0!=s.family&&t.substring(0,s.family.length+1)===s.family+"."){switch(f[t.substring(s.family.length+1)]){case "interval":s.family_interval=this.parser.parse(n);break;case "steps":s.family_steps=this.parser.parse(n)}break}if(void 0!=s.parameter&&
t.substring(0,s.parameter.length+1)===s.parameter+"."){switch(f[t.substring(s.parameter.length+1)]){case "interval":s.parameter_interval=this.parser.parse(n);break;case "steps":s.parameter_steps=this.parser.parse(n)}break}console.log("----- attributo del graphic no identificado: <"+t+"> valor: <"+n+"> -----")}d&&(s.abs_coord=d);c&&(s.background=c);switch(s.type){case "text":return new a.Text(this.parent,s);case "image":return new a.Image(this.parent,s);case "point":return new a.Point(this.parent,
s);case "polygon":return new a.Polygon(this.parent,s);case "arc":return new a.Arc(this.parent,s);case "segment":return new a.Segment(this.parent,s);case "arrow":return new a.Arrow(this.parent,s);case "macro":return new a.Macro(this.parent,s);case "curve":return new a.Curve(this.parent,s);case "equation":return new a.Equation(this.parent,s);case "sequence":return new a.Sequence(this.parent,s);case "fill":return new a.Fill(this.parent,s)}};a.LessonParser.prototype.parse3DGraphic=function(b,d,c,e){s=
{rotateExp:e,parameter:"t"};b=this.split(b);d=0;for(c=b.length;d<c;d++)switch(t=b[d][0],n=b[d][1],r=f[t],r){case "type":case "model":s[r]=f[n];break;case "background":case "fixed":case "edges":s[r]="true"===f[n];break;case "color":case "backcolor":s[r]=new a.Color(n,this.parent.evaluator);break;case "type":case "model":s[r]=f[n];break;case "background":case "fixed":case "edges":case "split":s[r]="true"===f[n];break;case "color":case "backcolor":s[r]=new a.Color(n,this.parent.evaluator);break;case "drawif":case "width":case "length":case "height":case "decimals":case "Nu":case "Nv":case "inipos":case "endpos":s[r]=
this.parser.parse(n);break;case "family":case "parameter":case "font":case "name":case "inirot":case "endrot":s[r]=n;break;case "space":s.spaceID=n;break;case "expresion":"macro"!=s.type&&"curve"!=s.type&&"surface"!=s.type?(s.expresion=this.parser.parse(n),s.expresionString=n):s.expresion=n.replace(/\\n/g,"");break;case "text":e=this.parseText(n);for(var g=0,j=e.length;g<j;g++)e[g]=this.parser.parse(e[g],!1);s.text=e;break;case "file":e=n.replace(/&squot;/g,"'");"["===e.charAt(0)&&"]"===e.charAt(e.length-
1)&&(e=e.substring(1,e.length-1));e.match(/./)&&(e="'"+e+"'");s.file=this.parser.parse(e);break;case "drawif":case "width":case "length":case "decimals":case "Nu":case "Nv":case "inirot":case "endrot":case "inipos":case "endpos":s[r]=this.parser.parse(n);break;case "family":case "parameter":case "font":case "name":s[r]=n;break;case "space":s.spaceID=n;break;case "expresion":"macro"!=s.type&&"curve"!=s.type&&"surface"!=s.type?(s.expresion=this.parser.parse(n),s.expresionString=n):s.expresion=n;break;
case "text":e=this.parseText(n);g=0;for(j=e.length;g<j;g++)e[g]=this.parser.parse(e[g],!1);s.text=e;break;case "file":e=n.replace(/&squot;/g,"'");"["===e.charAt(0)&&"]"===e.charAt(e.length-1)&&(e=e.substring(1,e.length-1));e.match(/./)&&(e="'"+e+"'");s.file=this.parser.parse(e);break;default:if(void 0!==s.family&&t.substring(0,s.family.length+1)===s.family+"."){"interval"===f[t.substring(s.family.length+1)]?s.family_interval=this.parser.parse(n):s.family_steps=this.parser.parse(n);break}console.log("----- attributo del graphic3D no identificado: <"+
t+"> valor: <"+n+"> -----")}switch(s.type){case "point":return new a.Point3D(this.parent,s);case "segment":return new a.Segment3D(this.parent,s);case "polygon":return new a.Polygon3D(this.parent,s);case "curve":return new a.Curve3D(this.parent,s);case "triangle":return new a.Triangle3D(this.parent,s);case "face":return new a.Face3D(this.parent,s);case "polireg":return new a.Polireg3D(this.parent,s);case "surface":return new a.Surface3D(this.parent,s);case "text":return new a.Text3D(this.parent,s);
case "cube":case "box":case "tetrahedron":case "octahedron":case "sphere":case "dodecahedron":case "icosahedron":case "ellipsoid":case "cone":case "cylinder":case "mesh":return new a.OtherGeometry(this.parent,s);default:console.log(s.type)}};a.LessonParser.prototype.parseAuxiliar=function(b){w={};b=this.split(b);for(var d=0,e=b.length;d<e;d++)b[d][1]=b[d][1].replace(/&squot;/g,"'");d=0;for(e=b.length;d<e;d++)switch(t=b[d][0],n=b[d][1],r=f[t],r){case "id":case "file":case "init":case "doExpr":case "whileExpr":case "range":case "local":case "expresion":case "condition":case "parameter":w[r]=
n;break;case "editable":case "constant":case "array":case "matrix":case "algorithm":case "sequence":w[r]="true"===f[n];break;case "size":case "rows":case "columns":w[r]=this.parser.parse(n);break;case "evaluate":case "event":case "execution":case "msg_pos":case "action":w[r]=f[n];break;default:var c=t.indexOf("."),g=f[t.substring(0,c)],c=f[t.substring(c+1)];if("parameter"===g&&"font"===c){w.parameterFont=n;break}console.log("----- attributo de auxiliar no identificado: <"+t+"> valor: <"+n+"> -----")}w.sequence?
new a.Function(this.parent,w):w.constant?(b=new a.Constant(this.parent,w),w.evaluate&&"always"===w.evaluate&&this.parent.auxiliaries.push(b)):w.algorithm&&w.evaluate?(b=new a.Algorithm(this.parent,w),this.parent.auxiliaries.push(b)):w.array&&!w.matrix&&")"!=w.id.charAt(w.id.length-1)?(b=new a.Vector(this.parent,w),w.evaluate&&"always"===w.evaluate&&this.parent.auxiliaries.push(b)):w.matrix&&")"!=w.id.charAt(w.id.length-1)?(b=new a.Matrix(this.parent,w),w.evaluate&&"always"===w.evaluate&&this.parent.auxiliaries.push(b)):
w.event&&")"!=w.id.charAt(w.id.length-1)?this.parent.events.push(new a.Event(this.parent,w)):")"===w.id.charAt(w.id.length-1)?new a.Function(this.parent,w):new a.Variable(this.parent,w)};a.LessonParser.prototype.parseAction=function(b){B=b.action;x=b.parent;D=b.parameter;if(B)switch(B){case "message":return new a.Message(x,D);case "calculate":return new a.Calculate(x,D);case "openURL":return new a.OpenURL(x,D);case "openScene":return new a.OpenScene(x,D);case "about":return new a.About(x,D);case "config":return new a.Config(x,
D);case "init":return new a.Init(x,D);case "clear":return new a.Clear(x,D);case "animate":return new a.Animate(x,D);case "initAnimation":return new a.InitAnimation(x,D);case "playAudio":return new a.PlayAudio(x,D);default:console.log("----- Accion no soportada aun: <"+B+"> -----")}else return{execute:function(){}}};a.LessonParser.prototype.parseAnimation=function(b){var d={};b=this.split(b);for(var e=0,c=b.length;e<c;e++)switch(t=b[e][0],n=b[e][1],r=f[t],r){case "id":case "delay":case "init":case "doExpr":case "whileExpr":d[r]=
n;break;case "controls":case "auto":case "loop":case "algorithm":case "evaluate":d[r]="true"===f[n];break;default:console.log("----- attributo de la animacion no identificado: <"+t+">  <"+n+"> -----")}return new a.Animation(this.parent,d)};a.LessonParser.prototype.parsePleca=function(f,l){f=this.split(f);g=h="";b=0;c="#536891";d="white";j="left";e="";p="SansSerif,BOLD,20";m="SansSerif,PLAIN,18";k=void 0;for(var r=0,s=f.length;r<s;r++)switch(t=f[r][0],n=f[r][1],t){case "title":h=n;break;case "subtitle":g=
n;break;case "subtitlines":b=n;break;case "bgcolor":""!=n&&(c=(new a.Color(n,this.parent.evaluator)).getColor());break;case "fgcolor":""!=n&&(d=(new a.Color(n,this.parent.evaluator)).getColor());break;case "align":""!=n&&(j=n);break;case "titleimage":e=n;break;case "titlefont":p=""!=n?a.convertFont(n):a.convertFont(p);break;case "subtitlefont":m=""!=n?a.convertFont(n):a.convertFont(m);break;default:console.log("----- attributo de la pleca no identificado: <"+t+">  <"+n+"> -----")}if(""===h&&""===
g)return document.createElement("div");J=m.substring(0,m.indexOf("px"));J=J.substring(J.lastIndexOf(" "));""!=e&&(v=this.parent.getImage(e),I=v.height);k=document.createElement("div");k.setAttribute("id","descartesPleca");I?(k.setAttribute("style","position: absolute; left: 0px; top: 0px; text-align: "+j+"; width: "+(l-30)+"px; height: "+(I-16)+"px; background: "+c+"; color: "+d+"; padding-top: 8px; padding-bottom: 8px; padding-left: 15px; padding-right: 15px; margin: 0px; overflow: hidden; z-index: 100;"),
v.setAttribute("style","position: absolute; left: 0px; top: 0px; z-index: -1; width: 100%; height: 100%"),k.appendChild(v)):k.setAttribute("style","position: absolute; left: 0px; top: 0px; text-align: "+j+"; width: "+(l-30)+"px; background: "+c+"; color: "+d+"; padding-top: 8px; padding-bottom: 8px; padding-left: 15px; padding-right: 15px; margin: 0px; z-index: 100;");E=document.createElement("div");E.setAttribute("style","padding: 0px; margin: 0px; font: "+p+"; overflow: hidden; white-space: nowrap;");
E.innerHTML=h;O=document.createElement("div");if(1===parseInt(b)){M=0;P=document.createElement("div");P.innerHTML=g;document.body.appendChild(P);Q=J;do Q-=M,P.setAttribute("style","padding: 0px; margin: 0px; font: "+m+"; font-size: "+Q+"px; width: "+(l-30)+"px; line-height: "+Q+"px;"),L=P.offsetHeight,R=L/Q,M=1;while(1<R&&8<Q);document.body.removeChild(P);O.setAttribute("style","padding: 0px; margin: 0px; font: "+m+"; font-size: "+Q+"px; line-height: 110%; overflow: hidden; white-space: nowrap;")}else O.setAttribute("style",
"padding: 0px; margin: 0px; font: "+m+"; line-height: 110%;");O.innerHTML=g;k.appendChild(E);k.appendChild(O);k.imageHeight=I;return k};a.LessonParser.prototype.split=function(a){if("string"!=typeof a)return[];a=(a||"").replace(/\\'/g,"\u2019");C=[];y=A=0;G=!1;F=0;for(H=!1;A<a.length;)" "===a.charAt(A)&&!G&&A++," "!==a.charAt(A)&&!G&&(G=!0,F=A),"="===a.charAt(A)&&("'"===a.charAt(A+1)&&!H)&&(H=!0,C[y]=[a.substring(F,A)],F=A+2,A+=2),H&&"'"===a.charAt(A)&&(G=H=!1,C[y].push(a.substring(F,A)),y++),"="===
a.charAt(A)&&("'"!==a.charAt(A+1)&&!H)&&(C[y]=[a.substring(F,A)],F=A+1,A++,N=a.substring(A).indexOf("="),-1===N?K=N=a.length:(N+=A,K=a.substring(A,N).lastIndexOf(" "),K=-1===K?a.length:K+A),C[y].push(a.substring(F,K)),y++,G=!1,A=K),A++;return C};a.LessonParser.prototype.parseText=function(b){return b.match(/^\{\\rtf1/)?this.RTFparser.parse(b.substring(10)):new a.SimpleText(this.parent,b)};return a}(descartesJS||{},babel),descartesJS=function(a){function f(a,b){q=[];q.type="matrix";q.rows=a;q.cols=
b;var d;t=0;for(n=b;t<n;t++){d=[];r=0;for(u=a;r<u;r++)d.push(0);q[t]=d}return q}function h(a,b){m=a.rows;k=a.cols;q=f(m,k);var d;for(t=0;t<m;t++)for(r=0;r<k;r++){for(n=d=0;n<k;n++)d+=a[n][t]*b[r][n];q[r][t]=d}return q}function g(a,b,d){for(var e=f(d.length-1,d.length-1),c=0,g=e.length;c<g;c++)for(var j=0;j<g;j++)e[c][j]=c<a?j<b?d[c][j]:d[c][j+1]:c<b?d[c+1][j]:d[c+1][j+1];return e}function b(a){if(1<a.cols){for(var d=0,e=1,c=0,f=a.cols;c<f;c++)d+=e*a[0][c]*b(g(0,c,a)),e=-e;return d}return a[0][0]}
if(a.loadLib)return a;var c=Math.floor,d,j,e,p;a.Node=function(a,b){this.sep="";this.type=a;this.value=b;this.parent=null;this.childs=[]};a.Node.prototype.getRoot=function(){return null===this.parent?this:this.parent.getRoot()};a.Node.prototype.addChild=function(a){a.parent=this;this.childs.push(a)};a.Node.prototype.replaceLastChild=function(a){d=this.childs.length-1;lastChild=this.childs[d];lastChild.parent=null;this.childs[d]=a;a.parent=this;return a};a.Node.prototype.contains=function(a){if(this.value===
a)return!0;for(var b=0,d=this.childs.length;b<d;b++)if(this.childs[b].contains(a))return!0;return!1};a.Node.prototype.equalToMinus=function(){return"compOperator"===this.type?(this.type="operator",this.value="-",e=new a.Node("compOperator","=="),p=new a.Node("number","0"),e.addChild(this),e.addChild(p),j=this.getRoot(),j.setAllEvaluateFunction(),j):this};a.Node.prototype.setAllEvaluateFunction=function(){this.setEvaluateFunction();for(var a=0,b=this.childs.length;a<b;a++)this.childs[a].setAllEvaluateFunction()};
a.Node.prototype.setEvaluateFunction=function(){if("number"===this.type)this.evaluate=function(){return parseFloat(this.value)};else if("string"===this.type)this.evaluate=function(){return this.value};else if("identifier"===this.type&&0===this.childs.length)if("rnd"==this.value)this.evaluate=function(){return Math.random()};else{var a;this.evaluate=function(b,d){a=b.variables[this.value];if("object"===typeof a)return a.evaluate(b);if(void 0==a&&(d||b.matrices[this.value]))a=b.matrices[this.value];
return void 0!==a?a:0}}else if("identifier"===this.type&&"square_bracket"===this.childs[0].type&&1===this.childs[0].childs.length){var d,e;this.evaluate=function(a){d=this.childs[0].childs[0].evaluate(a);try{return e=a.vectors[this.value][0>d?0:c(d)],void 0!==e?e:0}catch(b){return 0}}}else if("identifier"===this.type&&"square_bracket"===this.childs[0].type&&1<this.childs[0].childs.length){var j,p;this.evaluate=function(a){j=this.childs[0].childs[0].evaluate(a);p=this.childs[0].childs[1].evaluate(a);
try{return e=a.matrices[this.value][0>j?0:c(j)][0>p?0:c(p)],void 0!==e?e:0}catch(b){return 0}}}else if("identifier"===this.type&&"parentheses"===this.childs[0].type){var n;this.evaluate=function(a){n=[];for(var b=0,d=this.childs[0].childs.length;b<d;b++)n.push(this.childs[0].childs[b].evaluate(a));return"_Eval_"===this.value?a.evalExpression(a.parser.parse(n[0].replace(a.parent.decimal_symbol_regexp,".")||"")):a.functions[this.value].apply(a,n)}}else if("operator"===this.type){var u,C,A;"+"===this.value?
this.evaluate=function(a){u=this.childs[0].evaluate(a,!0);C=this.childs[1].evaluate(a,!0);if("matrix"!==u.type||"matrix"!==C.type)return u+C;a=u;var b=C;m=a.rows;k=a.cols;q=f(m,k);for(t=0;t<m;t++)for(r=0;r<k;r++)q[r][t]=a[r][t]+b[r][t];return q}:"-"===this.value?this.evaluate=function(a){u=this.childs[0].evaluate(a,!0);C=this.childs[1].evaluate(a,!0);if("matrix"!==u.type||"matrix"!==C.type)return u-C;a=u;var b=C;m=a.rows;k=a.cols;q=f(m,k);for(t=0;t<m;t++)for(r=0;r<k;r++)q[r][t]=a[r][t]-b[r][t];return q}:
"*"===this.value?this.evaluate=function(a){u=this.childs[0].evaluate(a,!0);C=this.childs[1].evaluate(a,!0);return"matrix"!==u.type||"matrix"!==C.type?u*C:h(u,C)}:"/"===this.value?this.evaluate=function(a){u=this.childs[0].evaluate(a,!0);C=this.childs[1].evaluate(a,!0);if("matrix"!==u.type||"matrix"!==C.type)return u/C;a=u;var d;d=C;var e=f(d.length,d.length),c=b(d);if(0===c)d=0;else{var c=1/c,j;if(1<d.length)for(var k=0,l=d.length;k<l;k++){j=c;for(var m=0;m<l;m++)e[m][k]=j*b(g(k,m,d)),j=-j;c=-c}else e[0][0]=
c;d=e}a=0===d?f(a.rows,a.cols):h(a,d);return a}:"%"===this.value?this.evaluate=function(a){u=this.childs[0].evaluate(a);C=this.childs[1].evaluate(a);return u-c(u/C)*C}:"^"===this.value&&(this.evaluate=function(a){return Math.pow(this.childs[0].evaluate(a),this.childs[1].evaluate(a))})}else if("compOperator"===this.type)"<"===this.value?this.evaluate=function(a){return(this.childs[0].evaluate(a)<this.childs[1].evaluate(a))+0}:"<="===this.value?this.evaluate=function(a){return(this.childs[0].evaluate(a)<=
this.childs[1].evaluate(a))+0}:">"===this.value?this.evaluate=function(a){return(this.childs[0].evaluate(a)>this.childs[1].evaluate(a))+0}:">="===this.value?this.evaluate=function(a){return(this.childs[0].evaluate(a)>=this.childs[1].evaluate(a))+0}:"=="===this.value?this.evaluate=function(a){return(this.childs[0].evaluate(a)===this.childs[1].evaluate(a))+0}:"!="===this.value&&(this.evaluate=function(a){return(this.childs[0].evaluate(a)!=this.childs[1].evaluate(a))+0});else if("boolOperator"===this.type)"&"===
this.value?this.evaluate=function(a){return(u=this.childs[0].evaluate(a)?1:0)?this.childs[1].evaluate(a)?1:0:0}:"|"===this.value?this.evaluate=function(a){return(u=this.childs[0].evaluate(a)?1:0)?1:this.childs[1].evaluate(a)?1:0}:"!"===this.value&&(this.evaluate=function(a){u=this.childs[0].evaluate(a)?1:0;return!u+0});else if("conditional"===this.type)this.evaluate=function(a){u=this.childs[0].evaluate(a);return 0<u?this.childs[1].evaluate(a):this.childs[2].evaluate(a)};else if("sign"===this.type)this.evaluate=
"sign+"===this.value?function(a){return this.childs[0].evaluate(a)}:function(a){return-this.childs[0].evaluate(a)};else if("parentheses"===this.type)this.evaluate=function(a,b){return this.childs[0].evaluate(a,b)};else if("(expr)"===this.type||"[expr]"===this.type){var y,G;this.evaluate=function(a){y=this.childs.length;A=[];if(1===y&&1===this.childs[0].childs.length&&"(expr)"===this.type)A=this.childs[0].childs[0].evaluate(a);else for(var b=0;b<y;b++){G=[];for(var d=0,e=this.childs[b].childs.length;d<
e;d++)G.push(this.childs[b].childs[d].evaluate(a));A[b]=G}return A}}else if("asign"===this.type){var F,H,J,v,I,E;this.evaluate=function(a){F=this.childs[0];H=this.childs[1];1===F.childs.length&&"square_bracket"===F.childs[0].type?(d=F.childs[0].childs,1===d.length?(J=d[0].evaluate(a),J=0>J?0:c(J),a.vectors[F.value][J]=H.evaluate(a)):2===d.length&&(v=d[0].evaluate(a),I=d[1].evaluate(a),v=0>v?0:c(v),I=0>I?0:c(I),a.matrices[F.value][v]||(a.matrices[F.value][v]=[]),a.matrices[F.value][v][I]=H.evaluate(a))):
(E=H.evaluate(a),E.type?a.matrices[F.value]=E:"object"!==typeof a.variables[F.value]&&(a.variables[F.value]=E))}}};var m,k,q,r,t,n,u;a.Node.prototype.toString=function(){var a="tipo: "+this.type+", valor: "+this.value+"\n";this.sep="   "+(this.parent?this.parent.sep:"");for(var b=0,d=this.childs.length;b<d;b++)a+=this.sep+this.childs[b].toString();return a};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d,j,e,p,m=/^\s+/,k=/^[a-zA-Z_\u00C0-\u021B]+[a-zA-Z_0-9\u00C0-\u021B]*([.]*[0-9a-zA-Z_\u00C0-\u021B]+[0-9]*)*/,
q=/^[0-9]+[.][0-9]+|^[.][0-9]+|^[0-9]+/,r=/^==|^!=|^<=|^<|^>=|^>|^#/,t=/^\!|^\~|^\&\&|^\&|^\|\||^\|/,n=/^=/,u=/^[\?\:]/,l=/^[\+\-\*\/\%\^]/,s=/^\[|^\]/,w=/^\(|^\)/,z=/^,/,B=/^;/;a.Tokenizer=function(){};a.Tokenizer.prototype.tokenize=function(a){function x(a,c,g){h.push({type:a,value:c});d=d.slice(g);b+=g;e++;p=a}if(f=a)a=a.replace(/\\u(\S+) /g,function(a,b){return String.fromCharCode(parseInt(b,16))}),a=a.replace(/\&sup(.+);/g,"^ $1 "),a=a.replace(/&squot;/g,"'"),a.match(/\=\|\*/g)&&(a=a.replace("|*",
"'","g").replace("*|","'","g")),a.match(/\=\|/g)&&(a=a.replace("|","'","g"));h=[];g=!1;b=0;d=a;e=0;for(p="";a&&b<a.length;)if(g=b,"'"==d[0]){for(j=1;"'"!=d[j];)if(j<d.length)j++;else{console.log(">Error, unknown symbol: ["+d+"], in the string <<"+f+">>");return}c=d.substring(1,j);x("string",c,c.length+2)}else if(c=d.match(m))d=d.slice(c[0].length),b+=c[0].length,e++;else if(c=d.match(k))"number"===p&&h.push({type:"operator",value:"*"}),x("identifier",c[0],c[0].length);else if(c=d.match(q))x("number",
c[0],c[0].length);else if(c=d.match(r)){var y=c[0];"#"==y&&(y="!=");x("compOperator",y,c[0].length)}else if(c=d.match(t))y=c[0],"||"==y?y="|":"&&"==y?y="&":"~"==y&&(y="!"),x("boolOperator",y,c[0].length);else if((c=d.match(n))&&!d.match(/^==/))x("asign",c[0],c[0].length);else if(c=d.match(u))x("conditional",c[0],c[0].length);else if(c=d.match(l))x("operator",c[0],c[0].length);else if(c=d.match(s))x("square_bracket",c[0],c[0].length);else if(c=d.match(w))"("==c&&"number"===p&&h.push({type:"operator",
value:"*"}),x("parentheses",c[0],c[0].length);else if(c=d.match(z))x("separator",c[0],c[0].length);else if(178===d.charCodeAt(0))h.push({type:"operator",value:"^"}),x("number",2,1);else if(179===d.charCodeAt(0))h.push({type:"operator",value:"^"}),x("number",3,1);else if(c=d.match(B))x("final_of_expresion",c[0],c[0].length);else if(g==b){console.log("Error, simbolo no conocido: ["+d+"], en la cadena <<"+f+">>");return}return h};var x,D=/rnd|pi|e|Infinity|-Infinity|sqr|sqrt|ra\u00edz|exp|log|log10|abs|ent|sgn|ind|sin|sen|cos|tan|cot|sec|csc|sinh|senh|cosh|tanh|coth|sech|csch|asin|asen|acos|atan|min|max/;
a.Tokenizer.prototype.flatTokens=function(a,b){a=a||[];b=b||"";x="";for(var d=0,e=a.length;d<e;d++)x="string"==a[d].type?x+"&squot;"+a[d].value+"&squot;":"identifier"==a[d].type&&!a[d].value.match(D)?x+b+a[d].value:x+a[d].value;return x};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;a.Parser=function(b){this.evaluator=b;this.tokenizer=new a.Tokenizer;this.vectors={};this.matrices={};this.variables={};this.functions={};this.registerDefaultValues()};a.Parser.prototype.setVariable=
function(a,b){this.variables[a]=b};a.Parser.prototype.getVariable=function(a){return this.variables[a]};a.Parser.prototype.setVector=function(a,b,d){this.vectors[a][b]=d};a.Parser.prototype.getVector=function(a){this.vectors.hasOwnProperty(a)||(this.vectors[a]=[0,0,0]);return this.vectors[a]};a.Parser.prototype.setMatrix=function(a,b,d,e){this.matrices[a][b][d]=e};a.Parser.prototype.getMatrix=function(a){this.matrices.hasOwnProperty(a)||(this.matrices[a]=[[0,0,0],[0,0,0],[0,0,0]]);return this.matrices[a]};
a.Parser.prototype.setFunction=function(a,b){this.functions[a]=b};a.Parser.prototype.getFunction=function(a){this.functions.hasOwnProperty(a)||(this.functions[a]=function(){return 0});return this.functions[a]};var f,h,g,b,c,d,j,e,p,m,k,q;a.Parser.prototype.parse=function(r,t){(g=this.tokenizer.tokenize(r))||(g=[]);b=null;t=!t||!1;f=e=j=d=0;for(h=g.length;f<h;f++)if(p=g[f],m=p.value,k=p.type,"identifier"===k&&(f+1<h&&"parentheses"===g[f+1].type&&"("===g[f+1].value?this.getFunction(m):f+1<h&&"square_bracket"===
g[f+1].type&&"["===g[f+1].value?g[f+3]&&"square_bracket"===g[f+3].type&&"]"===g[f+3].value?this.getVector(m):this.getMatrix(m):this.getVariable(m)),"asign"===k&&t&&(k="compOperator",m="=="),"asign"===k)if(c=new a.Node(k,m),null!=b)if("identifier"===b.type)b.parent&&b.parent.replaceLastChild(c),c.addChild(b),b=c,t=!0;else if("square_bracket"===b.type)c.addChild(b.parent),b=c,t=!0;else{c.type="compOperator";c.value="==";for(t=!0;b.parent&&this.getPrecedence(b.parent.value)>=this.getPrecedence(c.value);)b=
b.parent;b.parent&&b.parent.replaceLastChild(c);c.addChild(b);b=c}else{console.log("Error1: en la expresion <<"+r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}else if("parentheses"===k&&"("===m||"square_bracket"===k&&"["===m)if(c=new a.Node(k,m),"("===m&&d++,"["===m&&j++,null===b)"("===m&&(new a.Node("(expr)","(expr)")).addChild(c),"["===m&&(new a.Node("[expr]","[expr]")).addChild(c),b=c;else if("operator"===b.type||"boolOperator"===b.type||"compOperator"===b.type||"conditional"===b.type||
"asign"===b.type)b.addChild(c),b=c;else if("sign"===b.type)b.addChild(c),b=c;else if("parentheses"===b.type&&"("===b.value)b.addChild(c),b=c;else if("square_bracket"===b.type&&"["===b.value)b.addChild(c),b=c;else if("parentheses"===b.type&&"()"===b.value)b.parent.addChild(c),b=c;else if("square_bracket"===b.type&&"[]"===b.value)b.parent.addChild(c),b=c;else if("identifier"===b.type)b.addChild(c),b=c;else{console.log("Error2: en la expresion <<"+r+">>, en el token ["+f+"] {valor: "+m+", tipo: "+k+
"}");break}else if("parentheses"===k&&")"===m)if(d--,null===b)console.log("Error3: en la expresion <<"+r+">>, en el token (valor:"+m+", tipo:"+k);else{for(;b&&b.parent&&"("!=b.value;)b=b.parent;if(b&&"("===b.value)b.value="()";else{console.log("Error4: en la expresion <<"+r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}}else if("square_bracket"===k&&"]"===m)if(j--,null===b)console.log("Error5: en la expresion <<"+r+">>, en el token (valor:"+m+", tipo:"+k);else{for(;b&&b.parent&&"["!=b.value;)b=
b.parent;if(b&&"["===b.value)b.value="[]";else{console.log("Error6: en la expresion <<"+r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}}else if("number"===k||"string"===k||"identifier"===k)if(c=new a.Node(k,m),null===b)b=c;else if("operator"===b.type||"compOperator"===b.type||"boolOperator"===b.type||"parentheses"===b.type&&"("===b.value||"square_bracket"===b.type&&"["===b.value||"sign"===b.type||"conditional"===b.type||"asign"===b.type)b.addChild(c),b=c;else{console.log("Error7: en la expresion <<"+
r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}else if("operator"===k||"compOperator"===k||"boolOperator"===k)if(c=new a.Node(k,m),null===b)if("-"===m||"+"===m)c.type="sign",c.value="sign"+m,b=c;else if("!"===m)b=c;else{console.log("Error8: en la expresion <<"+r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}else if("operator"===b.type||"compOperator"===b.type||"boolOperator"===b.type||"asign"===b.type||"conditional"===b.type||"square_bracket"===b.type&&"["===b.value&&("-"===m||"+"===
m||"!"===m)||"parentheses"===b.type&&"("===b.value&&("-"===m||"+"===m||"!"===m)){if("-"===m||"+"===m)c.type="sign",c.value="sign"+m;b.addChild(c);b=c}else if("number"===b.type||"parentheses"===b.type&&"()"===b.value||"square_bracket"===b.type&&"[]"===b.value||"string"===b.type||"identifier"===b.type||"conditional"===b.type||"asign"===b.type){for(;b.parent&&this.getPrecedence(b.parent.value)>=this.getPrecedence(c.value);)b=b.parent;b.parent&&b.parent.replaceLastChild(c);c.addChild(b);b=c}else{console.log("Error9: en la expresion <<"+
r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}else if("conditional"===k)if(c=new a.Node(k,m),null!=b)if("?"===c.value){for(e++;b.parent&&this.getPrecedence(b.parent.value)>this.getPrecedence(c.value);)b=b.parent;b.parent&&b.parent.replaceLastChild(c);c.addChild(b);b=c}else{for(e--;b&&b.parent&&"?"!=b.value;)b=b.parent;if(b&&"?"===b.value)b.value="?:";else{console.log("Error10: en la expresion <<"+r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}}else{console.log("Error11: en la expresion <<"+
r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}else if("separator"===k)if(null!=b)for(;b.parent&&"("!=b.value&&"["!=b.value;)b=b.parent;else{console.log("Error12: en la expresion <<"+r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}else{console.log("Error13: en la expresion <<"+r+">>, en el token {valor: "+m+", tipo: "+k+"}");break}0<d&&alert("Error, faltan parentesis por cerrar: "+r);0>d&&alert("Error, faltan parentesis por abrir: "+r);0<j&&alert("Error, faltan square bracketss por cerrar: "+
r);0>j&&alert("Error, faltan square bracketss por abrir: "+r);0!=e&&alert("Error, condicional incompleta: "+r);(q=b?b.getRoot():null)&&q.setAllEvaluateFunction();return q};a.Parser.prototype.getPrecedence=function(a){switch(a){case "=":return 1;case "(":return 2;case "[":return 2;case "?":return 2;case ":":return 3;case "?:":return 3;case "|":return 6;case "&":return 7;case "<":return 5;case "<=":return 5;case ">":return 5;case ">=":return 5;case "==":return 5;case "!=":return 5;case "+":return 6;
case "-":return 6;case "/":return 7;case "*":return 7;case "sign-":return 7;case "sign+":return 7;case "!":return 8;case "%":return 8;case "^":return 9;default:return 9}};a.Parser.prototype.registerDefaultValues=function(){this.variables.rnd=Math.random;this.variables.pi=Math.PI;this.variables.e=Math.E;this.variables.Infinity=Infinity;this.variables["-Infinity"]=-Infinity;this.functions.sqr=function(a){return a*a};this.functions.sqrt=this.functions["ra\u00edz"]=Math.sqrt;this.functions.exp=Math.exp;
this.functions.log=Math.log;this.functions.log10=function(a){return Math.log(a)/Math.log(10)};this.functions.abs=Math.abs;this.functions.ent=Math.floor;this.functions.sgn=function(a){return 0<a?1:0>a?-1:0};this.functions.ind=function(a){return a?1:0};this.functions.sin=this.functions.sen=Math.sin;this.functions.cos=Math.cos;this.functions.tan=Math.tan;this.functions.cot=function(a){return 1/Math.tan(a)};this.functions.sec=function(a){return 1/Math.cos(a)};this.functions.csc=function(a){return 1/Math.sin(a)};
this.functions.sinh=this.functions.senh=function(a){return(Math.exp(a)-Math.exp(-a))/2};this.functions.cosh=function(a){return(Math.exp(a)+Math.exp(-a))/2};this.functions.tanh=function(a){return(Math.exp(a)-Math.exp(-a))/(Math.exp(a)+Math.exp(-a))};this.functions.coth=function(a){return 1/this.functions.tanh(a)};this.functions.sech=function(a){return 1/this.functions.cosh(a)};this.functions.csch=function(a){return 1/this.functions.sinh(a)};this.functions.asin=this.functions.asen=Math.asin;this.functions.acos=
Math.acos;this.functions.atan=Math.atan;this.functions.min=Math.min;this.functions.max=Math.max;var b=this;this.functions._Trace_=function(a){console.log(a)};this.functions._Stop_Audios_=function(){b.evaluator.parent.stopAudios()};this.functions.esCorrecto=function(d,e,c){return a.esCorrecto(d,e,b.evaluator,c)};this.functions.escorrecto=function(d,e,c){return a.escorrecto(d,e,b.evaluator,c)};window.parent!==window&&(this.functions["parent.set"]=function(a,b){window.parent.postMessage({type:"set",
name:a,value:b},"*")},this.functions["parent.update"]=function(){window.parent.postMessage({type:"update"},"*")},this.functions["parent.exec"]=function(a,b){window.parent.postMessage({type:"exec",name:a,value:b},"*")})};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=Math.floor;a.Evaluator=function(f){this.parent=f;this.parser=new a.Parser(this);this.variables=this.parser.variables;this.functions=this.parser.functions;this.vectors=this.parser.vectors;this.matrices=this.parser.matrices};
a.Evaluator.prototype.setVariable=function(a,g){this.variables[a]=g};a.Evaluator.prototype.getVariable=function(a){return this.variables[a]};a.Evaluator.prototype.setVector=function(a,g,b){g=0>g?0:f(g);this.vectors[a][g]=b};a.Evaluator.prototype.getVector=function(a,g){g=0>g?0:f(g);return this.vectors[a][g]};a.Evaluator.prototype.setMatrix=function(a,g,b,c){g=0>g?0:f(g);b=0>b?0:f(b);this.matrices[a][g][b]=c};a.Evaluator.prototype.getMatrix=function(a,g,b){g=0>g?0:f(g);b=0>b?0:f(b);return this.matrices[a][g][b]};
a.Evaluator.prototype.setFunction=function(a,g){this.functions[a]=g};a.Evaluator.prototype.getFunction=function(a){return this.functions[a]};a.Evaluator.prototype.evalExpression=function(a){return a?a.evaluate(this):0};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=2,h=!1;a.RTFNode=function(a,b,e,c){this.evaluator=a;this.type="rtfNode";this.value=b;this.nodeType=e;this.style=c;this.styleString=c.toString();this.color=c.textColor;this.underline=c.textUnderline;this.overline=
c.textOverline;this.parent=null;this.children=[];switch(this.nodeType){case "textBlock":this.draw=this.drawTextBlock;break;case "textLineBlock":this.draw=this.drawTextLineBlock;break;case "formula":this.draw=this.drawFormula;break;case "superIndex":this.draw=this.drawSuperIndex;break;case "subIndex":this.draw=this.drawSubIndex;break;case "dynamicText":this.draw=this.drawDynamicText;this.decimal_symbol=this.evaluator.parent.decimal_symbol;break;case "fraction":this.draw=this.drawFraction;break;case "numerator":case "denominator":this.draw=
this.drawNumDen;break;case "radical":this.draw=this.drawRadical;break;case "limit":this.draw=this.drawLimit;break;case "integral":this.draw=this.drawIntegral;break;case "sum":this.draw=this.drawSum;break;case "matrix":this.draw=this.drawMatrix;break;case "defparts":this.draw=this.drawDefparts;break;case "text":case "newLine":this.draw=this.drawText;break;case "hyperlink":this.draw=this.drawHyperlink;break;case "mathSymbol":this.draw=this.drawMathSymbol;break;case "index":case "radicand":case "from":case "to":case "what":case "element":this.draw=
this.drawGenericBlock;break;case "componentNumCtrl":this.draw=this.drawComponentNumCtrl;break;case "componentSpace":this.draw=this.drawComponentSpace}};a.RTFNode.prototype.getRoot=function(){return null==this.parent?this:this.parent.getRoot()};a.RTFNode.prototype.addChild=function(a){a.parent=this;this.children.push(a)};var g=0,b=0,c=0;a.RTFNode.prototype.getTextMetrics=function(){if("textBlock"==this.nodeType){this.spaceWidth=a.getTextWidth(" ",this.styleString);for(var d=0,j=this.children.length;d<
j;d++)this.children[d].getTextMetrics()}else if("textLineBlock"==this.nodeType)this.spaceWidth=a.getTextWidth(" ",this.styleString),this.getBlockMetric();else if("newLine"==this.nodeType){this.spaceWidth=a.getTextWidth(" ",this.styleString);var e=a.getFontMetrics(this.styleString);this.baseline=e.baseline;this.descent=e.descent;this.ascent=e.ascent;this.w=e.w;this.h=e.h}else if("text"==this.nodeType||"dynamicText"==this.nodeType){this.spaceWidth=a.getTextWidth(" ",this.styleString);e=a.getFontMetrics(this.styleString);
this.baseline=e.baseline;this.descent=e.descent;this.ascent=e.ascent;var d=this.value,p;"string"!=typeof this.value&&(j=void 0==this.decimals?f:this.evaluator.evalExpression(this.decimals),p=void 0==this.fixed?h:this.fixed,d=this.evaluator.evalExpression(this.value,j,p),parseFloat(d)==d&&(d=parseFloat(d).toFixed(j),d=p?d:parseFloat(d),d=d.toString().replace(".",this.decimal_symbol)),d+=" ");this.w=a.getTextWidth(d,this.styleString);this.h=e.h}else if("formula"==this.nodeType)this.spaceWidth=a.getTextWidth(" ",
this.styleString),this.getBlockMetric();else if("hyperlink"===this.nodeType){d=a.getFontMetrics(this.styleString);this.baseline=d.baseline;this.descent=d.descent;this.ascent=d.ascent;this.w=a.getTextWidth(this.value,this.styleString);this.h=d.h;this.clickCacher=document.createElement("div");this.clickCacher.setAttribute("style","position: absolute; width: "+this.w+"px; height: "+this.h+"px; cursor: pointer;");var m=this;this.clickCacher.addEventListener("click",function(){m.click=!0;window.open(m.URL,
m.URL)})}else if("superIndex"==this.nodeType)this.spaceWidth=a.getTextWidth(" ",this.styleString),p=g,e=b,j=c,d=a.getFontMetrics(this.styleString),this.getBlockMetric(),0>this.h&&(this.ascent=d.ascent,this.descent=d.descent,this.h=this.ascent+this.descent,this.w=1.5*this.spaceWidth),d=j/2-e+this.h,this.superIndexPos=d-this.ascent,this.ascent=d,this.descent=e,this.baseline=this.ascent,this.h=this.ascent+this.descent;else if("subIndex"==this.nodeType)this.spaceWidth=a.getTextWidth(" ",this.styleString),
p=g,e=b,j=c,d=a.getFontMetrics(this.styleString),this.getBlockMetric(),0>this.h&&(this.ascent=d.ascent,this.descent=d.descent,this.h=this.ascent+this.descent,this.w=1.5*this.spaceWidth),this.subIndexPos=e+1,this.ascent=p,this.descent=this.subIndexPos+this.descent,this.baseline=this.ascent,this.h=this.ascent+this.descent;else if("fraction"==this.nodeType){this.spaceWidth=a.getTextWidth(" ",this.styleString);p=g;e=b;j=c;p=this.children[0];var k=this.children[1],d=a.getFontMetrics(p.styleString);p.getBlockMetric();
k.getBlockMetric();0>p.h&&(p.h=d.h,p.w=this.spaceWidth);0>k.h&&(k.h=d.h,k.w=this.spaceWidth);this.h=p.h+k.h-1;this.ascent=p.h+j/2-e;this.descent=this.h-this.ascent;this.baseline=this.ascent;this.w=Math.max(p.w,k.w)+this.spaceWidth+8}else if("radical"==this.nodeType){this.spaceWidth=a.getTextWidth(" ",this.styleString);e=this.children[0].style.clone();if(1===this.children.length)this.children[1]=new a.RTFNode(this.evaluator," ","radicand",e),this.children[1].addChild(this.children[0]),this.children[0]=
new a.RTFNode(this.evaluator," ","index",e);else if("index"!==this.children[0].nodeType||"radicand"!==this.children[1].nodeType){p=new a.RTFNode(this.evaluator,"","radicand",e);d=0;for(j=this.children.length;d<j;d++)p.addChild(this.children[d]);this.children=[];this.children[0]=new a.RTFNode(this.evaluator,"","index",e);this.children[1]=p}d=this.children[0];j=this.children[1];0>=d.children.length&&(e=this.style.clone(),e.fontSize=parseInt(e.fontSize-0.2*e.fontSize),d.addChild(new a.RTFNode(this.evaluator,
" ","text",e)));0>=j.children.length&&j.addChild(new a.RTFNode(this.evaluator," ","text",this.style.clone()));d.getBlockMetric();j.getBlockMetric();this.ascent=j.h/2<d.h?j.h/2+d.h+2-j.descent:j.ascent+4;this.descent=j.descent;this.baseline=this.ascent;this.h=this.ascent+this.descent;this.w=d.w+j.w+4*this.spaceWidth}else if("sum"==this.nodeType)this.spaceWidth=a.getTextWidth(" ",this.styleString),p=g,e=b,j=c,e=this.children[0],j=this.children[1],p=this.children[2],e.getBlockMetric(),j.getBlockMetric(),
p.getBlockMetric(),-1==e.ascent&&(k=a.getFontMetrics(e.styleString),e.ascent=k.ascent,e.descent=k.descent,e.h=k.h),-1==j.ascent&&(k=a.getFontMetrics(j.styleString),j.ascent=k.ascent,j.descent=k.descent,j.h=k.h),d=a.getFontMetrics(this.styleString),this.ascent=d.h+j.h>p.ascent?d.h-d.descent+j.h:p.ascent,this.descent=e.h>p.descent?e.h+d.descent:p.descent,this.baseline=this.ascent,this.h=this.ascent+this.descent,d=this.style.clone(),d.fontType="Times New Roman",d.Bold="bold",d=d.toString(),d=a.getTextWidth(String.fromCharCode(8721),
d),this.w=Math.max(e.w,j.w,d)+Math.max(p.w,this.spaceWidth)+this.spaceWidth;else if("integral"==this.nodeType)this.spaceWidth=a.getTextWidth(" ",this.styleString),p=g,e=b,j=c,e=this.children[0],j=this.children[1],p=this.children[2],e.getBlockMetric(),j.getBlockMetric(),p.getBlockMetric(),-1==e.ascent&&(k=a.getFontMetrics(e.styleString),e.ascent=k.ascent,e.descent=k.descent,e.h=k.h),-1==j.ascent&&(k=a.getFontMetrics(j.styleString),j.ascent=k.ascent,j.descent=k.descent,j.h=k.h),d=a.getFontMetrics(this.styleString),
this.ascent=d.h+j.h>p.ascent?d.h-d.descent+j.h:p.ascent,this.descent=e.h>p.descent?e.h+d.descent:p.descent,this.baseline=this.ascent,this.h=this.ascent+this.descent,d=this.style.clone(),d.fontSize*=1.5,d.fontType="Times New Roman",d.Bold="bold",d=d.toString(),d=a.getTextWidth(String.fromCharCode(8747),d),this.w=Math.max(e.w,j.w,d)+Math.max(p.w,this.spaceWidth)+2*this.spaceWidth;else if("limit"==this.nodeType)this.spaceWidth=a.getTextWidth(" ",this.styleString),p=g,e=b,j=c,e=this.children[0],j=this.children[1],
p=this.children[2],d=a.getFontMetrics(this.styleString),e.getBlockMetric(),j.getBlockMetric(),p.getBlockMetric(),-1==e.ascent&&(k=a.getFontMetrics(e.styleString),e.ascent=k.ascent,e.descent=k.descent,e.h=k.h),-1==j.ascent&&(k=a.getFontMetrics(j.styleString),j.ascent=k.ascent,j.descent=k.descent,j.h=k.h),-1==p.ascent&&(k=a.getFontMetrics(p.styleString),p.ascent=k.ascent,p.descent=k.descent,p.h=k.h),this.ascent=p.ascent,this.descent=Math.max(d.h,p.descent),this.baseline=this.ascent,this.h=this.ascent+
this.descent,d=a.getTextWidth(" "+String.fromCharCode(8594),this.styleString),0==e.w&&(e.w=this.spaceWidth),0==j.w&&(j.w=this.spaceWidth),0==p.w&&(p.w=this.spaceWidth),this.w=j.w+e.w+p.w+d+this.spaceWidth;else if("matrix"==this.nodeType){this.spaceWidth=a.getTextWidth(" ",this.styleString);d=a.getFontMetrics(this.styleString);p=g;e=b;j=c;p=d.ascent;for(var k=d.descent,q=d.h,r=this.spaceWidth,t,n,d=0,j=this.children.length;d<j;d++)this.children[d].getBlockMetric(),t=this.children[d].h,n=this.children[d].w,
q<t&&(q=t,p=this.children[d].ascent,k=this.children[d].descent),r<n&&(r=n);this.childWidth=r+2*this.spaceWidth;this.childh=q;this.childAscent=p;this.childDescent=k;this.h=this.rows*q;this.ascent=this.h/2+e;this.descent=this.h-this.ascent;this.w=this.columns*this.childWidth+this.spaceWidth}else if("defparts"==this.nodeType){this.spaceWidth=a.getTextWidth(" ",this.styleString);d=a.getFontMetrics(this.styleString);p=g;e=b;j=c;p=d.ascent;k=d.descent;q=d.h;r=this.spaceWidth;d=0;for(j=this.children.length;d<
j;d++)this.children[d].getBlockMetric(),t=this.children[d].h,n=this.children[d].w,q<t&&(q=t,p=this.children[d].ascent,k=this.children[d].descent),r<n&&(r=n);this.childWidth=r+2*this.spaceWidth;this.childh=q;this.childAscent=p;this.childDescent=k;this.h=this.parts*q;this.ascent=this.h/2+e;this.descent=this.h-this.ascent;this.w=r+this.spaceWidth/2}else"mathSymbol"==this.nodeType?(this.spaceWidth=a.getTextWidth(" ",this.styleString),e=a.getFontMetrics(this.styleString),this.baseline=e.baseline,this.descent=
e.descent,this.ascent=e.ascent,this.w=a.getTextWidth(this.value,this.styleString)+a.getTextWidth(" ",this.styleString),this.h=e.h):"componentNumCtrl"==this.nodeType?(this.spaceWidth=a.getTextWidth(" ",this.styleString),this.componentNumCtrl=this.evaluator.parent.getControlByCId(this.value),e=this.componentNumCtrl.h||0,this.baseline=Math.round(3*e/5),this.descent=Math.round(2*e/5),this.ascent=this.baseline,this.h=e,this.w=this.componentNumCtrl.w):"componentSpace"==this.nodeType?(this.spaceWidth=a.getTextWidth(" ",
this.styleString),this.componentSpace=this.evaluator.parent.getSpaceByCId(this.value),this.h=this.ascent=this.descent=this.baseline=0,this.w=this.componentSpace.w):console.log("Element i=unknown",this.nodeType)};a.RTFNode.prototype.getBlockMetric=function(){this.w=0;for(var a=-1,f=-1,e,h=0,m=this.children.length;h<m;h++){e=this.children[h];e.getTextMetrics();childAscent=e.ascent;childDescent=e.descent;this.w+=e.w;var k=childDescent;e=e.h;g=childAscent;b=k;c=e;f<childAscent&&(f=childAscent);a<childDescent&&
(a=childDescent)}this.ascent=f;this.descent=a;this.baseline=this.ascent;this.h=this.ascent+this.descent};a.RTFNode.prototype.drawTextBlock=function(a,b,e,c,g,k,q){this.stableWidth||(this.getTextMetrics(),f=c,h=g);q=q?-this.children[0].ascent:0;g=c=0;for(k=this.children.length;g<k;g++)0<g&&(c+=this.children[g-1].h),this.children[g].draw(a,b+0,e+q+c)};a.RTFNode.prototype.drawTextLineBlock=function(b,c,e){for(var g=0,f=0,h=this.children.length;f<h;f++)0<f&&(g+=this.children[f-1].w,"formula"==this.children[f-
1].nodeType&&(g+=2*a.getTextWidth(" ",this.children[f].styleString))),this.children[f].draw(b,c+g,e+this.baseline)};a.RTFNode.prototype.drawFormula=function(a,b,e){for(var c=0,g=0,f=this.children.length;g<f;g++)0<g&&(c+=this.children[g-1].w),this.children[g].draw(a,b+this.spaceWidth+c,e)};a.RTFNode.prototype.drawText=function(a,b,e){null!=this.color&&(a.fillStyle=this.color);a.font=this.styleString;a.textAlign="start";a.textBaseline="alphabetic";a.fillText(this.value,b-1,e);if(this.underline){var c=
"bold"==this.style.textBold,g=c?1:0.5;a.lineWidth=c?2:1;null!=this.color&&(a.strokeStyle=this.color);a.beginPath();a.moveTo(b-1,parseInt(e+this.descent/2)+g);a.lineTo(b-1+this.w,parseInt(e+this.descent/2)+g);a.stroke()}this.overline&&(g=(c="bold"==this.style.textBold)?2:1.5,a.lineWidth=c?2:1,null!=this.color&&(a.strokeStyle=this.color),a.beginPath(),a.moveTo(b-1,parseInt(e-this.ascent)+g),a.lineTo(b-1+this.w,parseInt(e-this.ascent)+g),a.stroke())};a.RTFNode.prototype.drawDynamicText=function(b,c,
e){var g=Math.floor(0.5*this.spaceWidth),m=void 0==this.decimals?f:this.evaluator.evalExpression(this.decimals),k=void 0==this.fixed?h:this.fixed,q=this.evaluator.evalExpression(this.value,m,k);parseFloat(q).toString()===q.toString()&&(q=k?parseFloat(q).toFixed(m):parseFloat(parseFloat(q).toFixed(m)),q=(""+q).replace(".",this.decimal_symbol));null!=this.color&&(b.fillStyle=this.color);b.font=this.styleString;b.textAlign="start";b.textBaseline="alphabetic";this.w=a.getTextWidth(q,this.styleString);
b.fillText(q,g+c,e);this.underline&&(k=(m="bold"==this.style.textBold)?1:0.5,b.lineWidth=m?2:1,null!=this.color&&(b.strokeStyle=this.color),b.beginPath(),b.moveTo(g+c-1,parseInt(e+this.descent/2)+k),b.lineTo(g+c-1+this.w,parseInt(e+this.descent/2)+k),b.stroke());this.overline&&(k=(m="bold"==this.style.textBold)?2:1.5,b.lineWidth=m?2:1,null!=this.color&&(b.strokeStyle=this.color),b.beginPath(),b.moveTo(g+c-1,parseInt(e-this.ascent)+k),b.lineTo(g+c-1+this.w,parseInt(e-this.ascent)+k),b.stroke());this.w+=
2*g};a.RTFNode.prototype.drawHyperlink=function(a,b,e){this.clickCacher.parentNode||(a.canvas.nextSibling.className?a.canvas.parentNode.insertBefore(this.clickCacher,a.canvas.nextSibling.nextSibling):a.canvas.parentNode.insertBefore(this.clickCacher,a.canvas.nextSibling),this.clickCacher.style.left=b-2+"px",this.clickCacher.style.top=e-this.ascent-2+"px");a.save();this.click?(a.fillStyle="red",a.strokeStyle="red"):(a.fillStyle="blue",a.strokeStyle="blue");a.font=this.styleStr;a.textAlign="start";
a.textBaseline="alphabetic";a.fillText(this.value,b-1,e);var c="bold"==this.style.textBold,g=c?1:0.5;a.lineWidth=c?2:1;a.beginPath();a.moveTo(b-1,Math.ceil(e+this.descent/2)+g-2);a.lineTo(b-1+this.w,Math.ceil(e+this.descent/2)+g-2);a.stroke();a.restore()};a.RTFNode.prototype.drawRadical=function(a,b,c){var g=Math.floor(this.spaceWidth);this.children[0].draw(a,b,Math.floor(c+this.children[1].descent-this.children[1].h/2-this.children[0].descent));this.children[1].draw(a,b+1.5*g+this.children[0].w,
c);a.lineWidth=1;null!=this.color&&(a.strokeStyle=this.color);a.beginPath();a.moveTo(b,Math.floor(c+this.children[1].descent-this.children[1].h/2));a.lineTo(b+this.children[0].w,Math.floor(c+this.children[1].descent-this.children[1].h/2));a.lineTo(b+this.children[0].w+0.5*g,c+this.children[1].descent);a.lineTo(b+this.children[0].w+1*g,c-this.children[1].ascent);a.lineTo(b+this.children[0].w+2*g+this.children[1].w,c-this.children[1].ascent);a.stroke()};a.RTFNode.prototype.drawFraction=function(a,b,
c){this.children[0].draw(a,b+(this.w-this.children[0].w)/2,c-this.ascent);this.children[1].draw(a,b+(this.w-this.children[1].w)/2,c-this.ascent+this.children[0].h-1);var g=Math.floor(0.5*this.spaceWidth);a.lineWidth=1;null!=this.color&&(a.strokeStyle=this.color);a.beginPath();a.moveTo(b+g,parseInt(c-this.ascent+this.children[0].h)-0.5);a.lineTo(b-g+this.w-1,parseInt(c-this.ascent+this.children[0].h)-0.5);a.stroke()};a.RTFNode.prototype.drawNumDen=function(a,b,c){for(var g=0,f=0,h=this.children.length;f<
h;f++)0<f&&(g+=this.children[f-1].w),this.children[f].draw(a,b+g,c+this.baseline)};a.RTFNode.prototype.drawSubIndex=function(a,b,c){for(var g=0,f=0,h=this.children.length;f<h;f++)0<f&&(g+=this.children[f-1].w),this.children[f].draw(a,b+g,c+this.subIndexPos)};a.RTFNode.prototype.drawSuperIndex=function(a,b,c){for(var g=0,f=0,h=this.children.length;f<h;f++)0<f&&(g+=this.children[f-1].w),this.children[f].draw(a,b+g,c-this.superIndexPos)};a.RTFNode.prototype.drawLimit=function(b,c,e){var g=a.getFontMetrics(this.styleString),
f=" "+String.fromCharCode(8594),h=a.getTextWidth(f,this.styleString);this.children[0].draw(b,c,e+g.descent+this.children[0].ascent);this.children[1].draw(b,c+this.children[0].w+h,e+g.descent+this.children[1].ascent);this.children[2].draw(b,c+h+this.children[0].w+this.children[1].w,e);null!=this.color&&(b.fillStyle=this.color);b.font=this.styleString;b.textAlign="start";b.textBaseline="alphabetic";b.fillText("l\u00edm",c+this.children[0].w,e);b.fillText(f,c+this.children[0].w,e+g.descent+this.children[0].ascent)};
a.RTFNode.prototype.drawIntegral=function(b,c,e){var g=this.style.clone();g.fontSize*=1.5;g.fontType="Times New Roman";g.Bold="bold";var g=g.toString(),f=a.getTextWidth(String.fromCharCode(8747),g),h=a.getFontMetrics(g),q=Math.max(this.children[0].w,this.children[1].w,Math.floor(1.5*f));this.children[0].draw(b,c+f,e+h.descent+this.children[0].ascent);this.children[1].draw(b,c+f+this.spaceWidth/2,e-this.ascent+this.children[1].ascent);this.children[2].draw(b,c+q+f,e);null!=this.color&&(b.fillStyle=
this.color);b.font=g;b.textAlign="start";b.textBaseline="alphabetic";b.fillText(String.fromCharCode(8747),c,e+h.descent/2)};a.RTFNode.prototype.drawSum=function(b,c,e){var g=this.style.clone();g.fontType="Times New Roman";g.Bold="bold";var g=g.toString(),f=a.getTextWidth(String.fromCharCode(8721),g),h=a.getFontMetrics(this.styleString),q=Math.max(this.children[0].w,this.children[1].w,f);this.children[0].draw(b,c+(q-this.children[0].w)/2,e+h.descent+this.children[0].ascent);this.children[1].draw(b,
c+(q-this.children[1].w)/2,e-h.ascent-this.children[1].descent);this.children[2].draw(b,c+q,e);null!=this.color&&(b.fillStyle=this.color);b.font=g;b.textAlign="start";b.textBaseline="alphabetic";b.fillText(String.fromCharCode(8721),c+Math.floor((q-f)/2),e-5)};a.RTFNode.prototype.drawMatrix=function(a,b,c){for(var g,f,h=0,q=this.children.length;h<q;h++)g=h%this.columns,f=Math.floor(h/this.columns),this.children[h].draw(a,2*this.spaceWidth+b+g*this.childWidth,c-this.ascent+this.childAscent+f*this.childh);
a.lineWidth=1;null!=this.color&&(a.strokeStyle=this.color);a.beginPath();a.moveTo(Math.floor(b+this.spaceWidth)+0.5,c-this.ascent+0.5);a.lineTo(Math.floor(b+this.spaceWidth/2)+0.5,c-this.ascent+0.5);a.lineTo(Math.floor(b+this.spaceWidth/2)+0.5,c+this.descent+0.5);a.lineTo(Math.floor(b+this.spaceWidth)+0.5,c+this.descent+0.5);a.moveTo(Math.floor(b+this.w-this.spaceWidth)-0.5,c-this.ascent+0.5);a.lineTo(Math.floor(b+this.w-this.spaceWidth/2)-0.5,c-this.ascent+0.5);a.lineTo(Math.floor(b+this.w-this.spaceWidth/
2)-0.5,c+this.descent+0.5);a.lineTo(Math.floor(b+this.w-this.spaceWidth)-0.5,c+this.descent+0.5);a.stroke()};a.RTFNode.prototype.drawDefparts=function(a,b,c){for(var g=0,f=this.children.length;g<f;g++)this.children[g].draw(a,b+3*this.spaceWidth,c-this.ascent+this.childAscent+g%this.parts*this.childh);a.lineWidth=1;null!=this.color&&(a.strokeStyle=this.color);a.beginPath();a.moveTo(parseInt(b+2*this.spaceWidth)+0.5,c-this.ascent+0.5);a.lineTo(parseInt(b+2*this.spaceWidth)-4.5,c-this.ascent+4.5);a.lineTo(parseInt(b+
2*this.spaceWidth)-4.5,c+this.descent-this.h/2-4.5);a.lineTo(b-0.5,c+this.descent-this.h/2);a.lineTo(parseInt(b+2*this.spaceWidth)-4.5,c+this.descent-this.h/2+4.5);a.lineTo(parseInt(b+2*this.spaceWidth)-4.5,c+this.descent-4.5);a.lineTo(parseInt(b+2*this.spaceWidth)+0.5,c+this.descent+0.5);a.stroke()};a.RTFNode.prototype.drawMathSymbol=function(a,b,c){a.lineWidth=1;null!=this.color&&(a.strokeStyle=this.color,a.fillStyle=this.color);a.beginPath();"("==this.value?(a.font=this.styleString,a.textAlign=
"start",a.textBaseline="alphabetic",a.fillText("(",b,c)):")"==this.value?(a.font=this.styleString,a.textAlign="start",a.textBaseline="alphabetic",a.fillText(")",b+this.spaceWidth,c)):(a.font=this.styleString,a.textAlign="center",a.textBaseline="alphabetic",a.fillText(this.value,b+this.w/2,c))};a.RTFNode.prototype.drawGenericBlock=function(a,b,c){for(var g=0,f=0,h=this.children.length;f<h;f++)0<f&&(g+=this.children[f-1].w),this.children[f].draw(a,b+g,c)};a.RTFNode.prototype.drawComponentNumCtrl=function(a,
b,c){this.parent.getTextMetrics();this.componentNumCtrl.expresion=this.evaluator.parser.parse("("+b+","+(c-this.ascent)+","+this.componentNumCtrl.w+","+this.componentNumCtrl.h+")")};a.RTFNode.prototype.drawComponentSpace=function(a,b,c){this.getTextMetrics();this.componentSpace.xExpr=this.evaluator.parser.parse(b+"");this.componentSpace.yExpr=this.evaluator.parser.parse(c-this.parent.ascent+"")};a.RTFNode.prototype.draw=function(){console.log(">>> Dibujo desconocido ",this.nodeType)};a.RTFNode.prototype.toHTML=
function(){var a="";if("textLineBlock"===this.nodeType||"textBlock"===this.nodeType)for(var b=0,c=this.children.length;b<c;b++)a+=this.children[b].toHTML();else"text"===this.nodeType?a="<span "+this.style.toCSS()+">"+this.value+"</span>":"newLine"===this.nodeType&&(a="<span "+this.style.toCSS()+">"+this.value+"<br /></span>");return a};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f=String.fromCharCode,h,g,b,c,d,j,e,p,m,k,q;a.RTFTokenizer=function(){};a.RTFTokenizer.prototype.tokenize=
function(a){if(a)a=a.replace(/\&gt;/g,">").replace(/\&lt;/g,"<").replace(/\&quote;/g,"''").replace(/\&squot;/g,"'").replace(/\\rquote /g,"'").replace(/\\endash /g,"-").replace(/\n/g," ").replace(/\r/g,"").replace(/\\uc(\d+) /g,"").replace(/\\uc(\d+)/g,"");else return[];h=[];g=a.length;h=[];b="";d=c=0;e=a.charAt(0);p=!1;for(m="text";c<g;)j=e,e=a.charAt(c+1),p?"\\"===e||"{"===e||"}"===e||" "===e||";"===e?(p=!1,b+=j," "===e&&(c++,e=a.charAt(c+1)),(k=b.match(/^\'([0-9a-f]{2})/))?(q="","text"===m&&(q=
h.pop().value),b=q+=f(parseInt(k[1],16))+b.substring(3)):(k=b.match(/^u[0-9]+/))?(q="","text"===m&&(q=h.pop().value),b=q+=f(k[0].substring(1))):("{"===b||"}"===b?(h.push({type:"text",value:b}),m="text"):(h.push({type:"controlWord",value:b}),m="controlWord"),b="")):b+=j:"\\"===j?(p=!0,""!==b&&(h.push({type:"text",value:b}),m="text"),b=""):"{"===j?(d++,""!==b&&h.push({type:"text",value:b}),b="",h.push({type:"openBlock",value:d}),m="openBlock"):"}"===j?(""!==b&&h.push({type:"text",value:b}),b="",h.push({type:"closeBlock",
value:d}),m="closeBlock",d--):b+=j,c++;""!==b&&h.push({type:"text",value:b});return h};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d,j,e,p,m,k,q,r,t,n,u,l,s,w,z,B,x,D,C,A,y,G,F,H,J;a.RTFParser=function(b){this.evaluator=b;this.tokenizer=new a.RTFTokenizer};a.RTFParser.prototype.parse=function(v){v=f=this.tokenizer.tokenize(v);for(var I=[],E=!1,O=!1,P=[],L=0,Q=v.length;L<Q;L++){"openBlock"==v[L].type&&P.push(v[L].value);"closeBlock"==v[L].type&&(P.pop(),0>=
P.length&&(E=!1));if("controlWord"==v[L].type&&("expr"==v[L].value||"decimals"==v[L].value))O=!0;"controlWord"==v[L].type&&"mjaformula"==v[L].value&&(E=!0);if("text"==v[L].type&&E&&!O){for(var R=0,M=v[L].value,N="",K=0,T=M.length;K<T;K++)if("("==M.charAt(K)||")"==M.charAt(K)||"+"==M.charAt(K)||"-"==M.charAt(K)||"*"==M.charAt(K)||"="==M.charAt(K))N=M.substring(R,K),""!=N&&I.push({type:"text",value:N}),I.push({type:M.charAt(K),value:M.charAt(K)}),R=K+1;N=M.substring(R,K);""!=N&&I.push({type:"text",
value:N})}else I.push(v[L]),"text"==v[L].type&&O&&(O=!1)}f=I;h={};b=2;if("openBlock"==f[0].type&&"fonttbl"==f[1].value){for(g=f[0].value;"closeBlock"!=f[b].type&&f[b].value!=g;)h[f[b].value]=f[b+2].value.substring(0,f[b+2].value.length-1),b+=3;b++}c={};d=0;if("openBlock"==f[b].type&&"colortbl"==f[b+1].value){g=f[b++].value;for(b++;"closeBlock"!=f[b].type&&f[b].value!=g;)j=parseInt(f[b++].value.substring(3)).toString(16),e=parseInt(f[b++].value.substring(5)).toString(16),p=parseInt(f[b++].value.substring(4)).toString(16),
";"===f[b].value&&b++,c[d++]="#"+(2>j.length?"0"+j:j)+(2>e.length?"0"+e:e)+(2>p.length?"0"+p:p);b++}m=new a.RTFNode(this.evaluator,"","textBlock","",!1,"");k=new a.RTFNode(this.evaluator,"","textLineBlock","",!1,"");m.addChild(k);t=r=q=null;z=w=s=l=u=n=!1;B=[new a.FontStyle(20,"Arial","","",!1,!1,null)];x=B[0];D=!0;A=C=-1;y=[];J=H=F=G=!1;v=b;for(I=f.length;v<I;v++)if("controlWord"==f[v].type&&h[f[v].value])x.fontType=h[f[v].value];else if("controlWord"==f[v].type&&f[v].value.match(/^fs(\d+)/))x.fontSize=
parseInt(f[v].value.match(/^fs(\d+)/)[1]/2);else if("controlWord"==f[v].type&&"b"==f[v].value)x.textBold="bold";else if("controlWord"==f[v].type&&"b0"==f[v].value)x.textBold="";else if("controlWord"==f[v].type&&"i"==f[v].value)x.textItalic="italic";else if("controlWord"==f[v].type&&"i0"==f[v].value)x.textItalic="";else if("controlWord"==f[v].type&&"ul"==f[v].value)x.textUnderline=!0;else if("controlWord"==f[v].type&&"ulnone"==f[v].value)x.textUnderline=!1;else if("controlWord"==f[v].type&&"ol"==f[v].value)x.textOverline=
!0;else if("controlWord"==f[v].type&&"olnone"==f[v].value)x.textOverline=!1;else if("controlWord"==f[v].type&&f[v].value.match(/^cf(\d+)/))x.textColor=c[parseInt(f[v].value.substring(2))];else if("openBlock"==f[v].type)C=f[v].value,x=x.clone(),B.push(x),y.push(null);else if("closeBlock"==f[v].type)f[v].value==A&&(A=-1,n=!1,k=k.parent),B.pop(),x=B[B.length-1],y.pop();else if("controlWord"==f[v].type&&"par"==f[v].value){k.addChild(new a.RTFNode(this.evaluator,"","newLine",x.clone()));m=new a.RTFNode(this.evaluator,
"","textLineBlock",x.clone());if("textBlock"!=k.nodeType)for(k=k.parent;"textBlock"!=k.nodeType;)k=k.parent;k.addChild(m);k=m}else if("controlWord"==f[v].type&&"mjaformula"==f[v].value)G=!0,A=C,n=!0,m=new a.RTFNode(this.evaluator,"","formula",x.clone()),k.addChild(m),k=m,y[y.length-1]=m;else if("controlWord"==f[v].type&&("fraction"==f[v].value||"radicand"==f[v].value||"radical"==f[v].value||"what"==f[v].value||"sum"==f[v].value||"integral"==f[v].value||"limit"==f[v].value))E=y[y.length-2].style.clone(),
m=new a.RTFNode(this.evaluator,"",f[v].value,E),y[y.length-2].addChild(m),y[y.length-1]=m;else if("controlWord"==f[v].type&&"index"==f[v].value||"to"==f[v].value||"from"==f[v].value)E=y[y.length-2].style.clone(),E.fontSize=parseInt(E.fontSize-0.2*E.fontSize),8>E.fontSize&&(E.fontSize=8),m=new a.RTFNode(this.evaluator,"",f[v].value,E),y[y.length-2].addChild(m),y[y.length-1]=m;else if("controlWord"==f[v].type&&("num"==f[v].value||"den"==f[v].value))E=y[y.length-2].style.clone(),E.fontSize=Math.round(E.fontSize-
0.1*E.fontSize),8>E.fontSize&&(E.fontSize=8),"num"==f[v].value?m=new a.RTFNode(this.evaluator,"","numerator",E):"den"==f[v].value&&(m=new a.RTFNode(this.evaluator,"","denominator",E)),y[y.length-2].addChild(m),y[y.length-1]=m;else if("controlWord"==f[v].type&&("subix"==f[v].value||"supix"==f[v].value))E=y[y.length-2].style.clone(),E.fontSize=Math.floor(E.fontSize-E.fontSize/3),8>E.fontSize&&(E.fontSize=8),"subix"==f[v].value?m=new a.RTFNode(this.evaluator,"","subIndex",E):"supix"==f[v].value&&(m=
new a.RTFNode(this.evaluator,"","superIndex",E)),m.originalStyle=y[y.length-2].style.clone(),y[y.length-2].addChild(m),y[y.length-1]=m;else if("controlWord"==f[v].type&&("defparts"==f[v].value||"matrix"==f[v].value||"element"==f[v].value))E=y[y.length-2].style.clone(),m=new a.RTFNode(this.evaluator,"",f[v].value,E),y[y.length-2].addChild(m),y[y.length-1]=m,"defparts"==f[v].value?t=m:"matrix"==f[v].value&&(r=m);else if("controlWord"==f[v].type&&"parts"==f[v].value)z=!0;else if("text"==f[v].type&&z)t.parts=
parseInt(f[v].value),z=!1;else if("controlWord"==f[v].type&&"rows"==f[v].value)s=!0;else if("text"==f[v].type&&s)r.rows=parseInt(f[v].value),s=!1;else if("controlWord"==f[v].type&&"columns"==f[v].value)w=!0;else if("text"==f[v].type&&w)r.columns=parseInt(f[v].value),w=!1;else if("controlWord"==f[v].type&&"expr"==f[v].value)D=!1,u=!0;else if("controlWord"==f[v].type&&"decimals"==f[v].value)l=!0;else if("text"==f[v].type&&l)q.decimals=this.evaluator.parser.parse(f[v].value+""),l=!1;else if("controlWord"==
f[v].type&&"fixed1"==f[v].value)q.fixed=!0;else if("controlWord"==f[v].type&&"fixed0"==f[v].value)q.fixed=!1;else if(!("controlWord"==f[v].type&&"component"==f[v].value))if("controlWord"==f[v].type&&"NumCtrl"==f[v].value)F=!0;else if("controlWord"==f[v].type&&"Space"==f[v].value)H=!0;else if("controlWord"==f[v].type&&"hyperlink"==f[v].value)J=!0;else if("text"==f[v].type&&J){textContent=f[v].value.split("|")[0];E=x.clone();m=new a.RTFNode(this.evaluator,textContent,"hyperlink",E);m.URL=f[v].value.split("|")[1];
if("textLineBlock"!=k.nodeType)for(k=k.parent;"textLineBlock"!=k.nodeType;)k=k.parent;k.addChild(m);J=!1}else if("text"==f[v].type&&F)m=new a.RTFNode(this.evaluator,f[v].value,"componentNumCtrl",x.clone()),k.addChild(m),F=!1;else if("text"==f[v].type&&H)m=new a.RTFNode(this.evaluator,f[v].value,"componentSpace",x.clone()),k.addChild(m),H=!1;else if("text"==f[v].type&&u)E=y[y.length-2].style.clone(),textContent=this.evaluator.parser.parse(f[v].value),m=new a.RTFNode(this.evaluator,textContent,"dynamicText",
E),y[y.length-2].addChild(m),q=y[y.length-1]=m,u=!1;else if("text"==f[v].type&&!u&&!n){textContent=f[v].value;m=new a.RTFNode(this.evaluator,textContent,"text",x.clone());if("textLineBlock"!=k.nodeType)for(k=k.parent;"textLineBlock"!=k.nodeType;)k=k.parent;k.addChild(m)}else if("text"==f[v].type&&!u&&n)textContent=f[v].value,m=new a.RTFNode(this.evaluator,textContent,"text",y[y.length-1].style.clone()),y[y.length-1].addChild(m);else if("("==f[v].type||")"==f[v].type)E=y[y.length-1].style.clone(),
E.textItalic="",m=new a.RTFNode(this.evaluator,f[v].type,"mathSymbol",E),y[y.length-1].addChild(m);else if("+"==f[v].type||"-"==f[v].type||"*"==f[v].type||"="==f[v].type)m=new a.RTFNode(this.evaluator,f[v].type,"mathSymbol",y[y.length-1].style.clone()),y[y.length-1].addChild(m);if(null!=k){var S=k.getRoot();S.stableWidth=D;S.getTextMetrics();S.hasFormula=G}return S};a.FontStyle=function(a,b,d,c,e,g,f){this.fontSize=a;this.fontType=b;this.textItalic=d;this.textBold=c;this.textUnderline=e;this.textOverline=
g;this.textColor=f};a.FontStyle.prototype.toString=function(){return(this.textBold+" "+this.textItalic+" "+this.fontSize+"px "+this.fontType).trim()};a.FontStyle.prototype.toCSS=function(){var a="style='font: "+this.fontSize+"px "+this.fontType+"; ";this.textUnderline&&!this.textOverline&&(a+="text-decoration: underline; ");!this.textUnderline&&this.textOverline&&(a+="text-decoration: overline; ");this.textUnderline&&this.textOverline&&(a+="text-decoration: underline overline; ");this.textBold&&!this.textItalic&&
(a+="font-style: normal; font-weight: bold; ");!this.textBold&&this.textItalic&&(a+="font-style: italic; font-weight: normal; ");this.textBold&&this.textItalic&&(a+="font-style: italic; font-weight: bold; ");!this.textBold&&!this.textItalic&&(a+="font-style: normal; font-weight: normal; ");this.textColor&&(a+="color: "+this.textColor+"; ");return a+"'"};a.FontStyle.prototype.clone=function(){return new a.FontStyle(this.fontSize,this.fontType,this.textItalic,this.textBold,this.textUnderline,this.textOverline,
this.textColor)};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b,c,d,j,e,p,m,k,q,r,t;a.Space=function(b,d){this.parent=b;h=this.evaluator=this.parent.evaluator;g=h.parser;this.id="";this.values=d;this.type="R2";this.xExpr=g.parse("0");this.yExpr=g.parse("0");this.w=parseInt(b.container.width);this.h=parseInt(b.container.height);this.drawif=g.parse("1");this.fixed=2!=b.version?!1:!0;this.scale=48;this.Oy=this.Ox=0;this.image=new Image;this.image.onload=function(){this.ready=
1};this.imageSrc="";this.bg_display="topleft";this.background="descinst.com.mja.descartes.DescartesJS.class"===b.code||b.arquimedes?new a.Color("f0f8fa"):new a.Color("ffffff");this.net=2!=b.version?new a.Color("c0c0c0"):"";this.net10=2!=b.version?new a.Color("808080"):"";this.axes=2!=b.version?new a.Color("808080"):"";this.text=new a.Color("ffafaf");this.numbers=!1;this.x_axis=2!=b.version?"":" ";this.y_axis=2!=b.version?"":" ";this.sensitive_to_mouse_movements=!1;this.cID="";this.mouse_y=this.mouse_x=
0;this.ctrs=[];this.graphicsCtr=[];this.graphics=[];this.backgroundGraphics=[];this.zIndex=b.zIndex;this.plecaHeight=b.plecaHeight||0;this.displaceRegionNorth=b.displaceRegionNorth||0;this.displaceRegionWest=b.displaceRegionWest||0;for(var c in d)d.hasOwnProperty(c)&&(this[c]=d[c]);this.init()};a.Space.prototype.init=function(){f=this.parent;h=this.evaluator;b=this.id;this.displaceRegionNorth=f.displaceRegionNorth||0;this.displaceRegionWest=f.displaceRegionWest||0;void 0!=this.wExpr&&(this.w=(parseInt(f.container.width)-
this.displaceRegionWest)*parseFloat(this.wExpr)/100);void 0!=this.hExpr&&(this.h=(parseInt(f.container.height)-this.displaceRegionNorth)*parseFloat(this.hExpr)/100);j=parseInt(f.container.height);e=parseInt(f.container.width);this.x=h.evalExpression(this.xExpr)+this.displaceRegionWest;this.y=h.evalExpression(this.yExpr)+this.plecaHeight+this.displaceRegionNorth;this.container&&(this.container.style.left=this.x+"px",this.container.style.top=this.y+"px");0<=this.y?(c=j-this.y,this.h>c&&(this.h=c)):
(c=this.h+this.y,this.h=c>=j?j:c);0<=this.x?(d=e-this.x,this.w>d&&(this.w=d)):(d=this.w+this.x,this.w=d>=e?e:d);if(""!=this.imageSrc||!this.imageSrc.trim().toLowerCase().match(/vacio.gif$/))this.image=f.getImage(this.imageSrc);this.OxExpr&&(m=this.OxExpr,"%"===m[m.length-1]?this.Ox=this.w*parseFloat(m)/100:(p=parseFloat(m),p!=m&&(p=0),this.Ox=p));this.OyExpr&&(k=this.OyExpr,"%"===k[k.length-1]?this.Oy=this.h*parseFloat(k)/100:(p=parseFloat(k),p!=k&&(p=0),this.Oy=p));""!==this.id&&2!==f.version?(h.setVariable(b+
"._w",this.w),h.setVariable(b+"._h",this.h),h.setVariable(b+".escala",this.scale),h.setVariable(b+".Ox",this.Ox),h.setVariable(b+".Oy",this.Oy),h.setVariable(b+".mouse_x",0),h.setVariable(b+".mouse_y",0),h.setVariable(b+".mouse_pressed",0),h.setVariable(b+".mouse_clicked",0),h.setVariable(b+".clic_izquierdo",0)):(p=h.getVariable("_w"),void 0===p&&(p=this.w),h.setVariable("_w",p),p=h.getVariable("_h"),void 0===p&&(p=this.h),h.setVariable("_h",p),p=h.getVariable("escala"),void 0===p&&(p=this.scale),
h.setVariable("escala",p),p=h.getVariable("Ox"),void 0===p&&(p=this.Ox),h.setVariable("Ox",p),p=h.getVariable("Oy"),void 0===p&&(p=this.Oy),h.setVariable("Oy",p),h.setVariable("mouse_x",0),h.setVariable("mouse_y",0),h.setVariable("mouse_pressed",0),h.setVariable("mouse_clicked",0),h.setVariable("clic_izquierdo",0),""===this.x_axis&&(""===this.y_axis&&2==f.version)&&(this.axes=""));this.w_2=this.w/2;this.h_2=this.h/2};a.Space.prototype.addCtr=function(a){"graphic"===a.type?this.graphicsCtr.push(a):
this.ctrs.push(a)};a.Space.prototype.addGraph=function(a){a.background&&"R3"!==this.type?this.backgroundGraphics.push(a):this.graphics.push(a)};a.Space.prototype.getRelativeX=function(a){return(parseInt(a)-this.w_2-this.Ox)/this.scale};a.Space.prototype.getRelativeY=function(a){return(-parseInt(a)+this.h_2+this.Oy)/this.scale};a.Space.prototype.getAbsoluteX=function(a){return a*this.scale+this.w_2+this.Ox};a.Space.prototype.getAbsoluteY=function(a){return-a*this.scale+this.h_2+this.Oy};a.Space.prototype.findOffset=
function(){q=this.container;this.offsetTop=this.offsetLeft=0;this.container&&this.container.style&&(r=this.container.style.display);this.container.style.display="block";if(q.getBoundingClientRect){var a=q.getBoundingClientRect();this.offsetLeft=a.left;this.offsetTop=a.top}else for(;q;)q.tagName&&"html"!==q.tagName.toLowerCase()?(this.offsetLeft+=q.offsetLeft||0,this.offsetTop+=q.offsetTop||0,q=q.parentNode):q=null;this.container&&this.container.style&&(this.container.style.display=r)};a.Space.prototype.getCursorPosition=
function(b){t=a.getCursorPosition(b);return{x:t.x-this.offsetLeft,y:t.y-this.offsetTop}};return a}(descartesJS||{}),descartesJS=function(a){var f,h;if(a.loadLib)return a;var g=Math.floor,b=Math.round,c=2*Math.PI,d=a.convertFont("SansSerif,PLAIN,12"),j=a.convertFont("Monospaced,PLAIN,12"),e,p,m,k,q,r,t,n,u,l,s,w,z,B,x,D,C,A,y,G,F,H,J,v,I,E,O,P,L;a.Space2D=function(b,d){a.Space.call(this,b,d);e=this;e.backgroundCanvas=document.createElement("canvas");e.backgroundCanvas.setAttribute("id",e.id+"_background");
e.backgroundCanvas.setAttribute("width",e.w+"px");e.backgroundCanvas.setAttribute("height",e.h+"px");e.backgroundCtx=e.backgroundCanvas.getContext("2d");e.backgroundCtx.imageSmoothingEnabled=!1;e.backgroundCtx.mozImageSmoothingEnabled=!1;e.backgroundCtx.webkitImageSmoothingEnabled=!1;e.canvas=document.createElement("canvas");e.canvas.setAttribute("id",e.id+"_canvas");e.canvas.setAttribute("width",e.w+"px");e.canvas.setAttribute("height",e.h+"px");e.canvas.setAttribute("class","DescartesSpace2DCanvas");
e.canvas.setAttribute("style","z-index: "+e.zIndex+";");e.ctx=e.canvas.getContext("2d");e.ctx.imageSmoothingEnabled=!1;e.ctx.mozImageSmoothingEnabled=!1;e.ctx.webkitImageSmoothingEnabled=!1;e.graphicControlContainer=document.createElement("div");e.graphicControlContainer.setAttribute("id",e.id+"_graphicControls");e.graphicControlContainer.setAttribute("style","position: absolute; left: 0px; top: 0px; z-index: "+e.zIndex+";");e.numericalControlContainer=document.createElement("div");e.numericalControlContainer.setAttribute("id",
e.id+"_numericalControls");e.numericalControlContainer.setAttribute("style","position: absolute; left: 0px; top: 0px; z-index: "+e.zIndex+";");e.container=document.createElement("div");e.container.setAttribute("id",e.id);e.container.setAttribute("class","DescartesSpace2DContainer");e.container.setAttribute("style","left: "+e.x+"px; top: "+e.y+"px; z-index: "+e.zIndex+";");e.parent.arquimedes&&"#f0f8fa"===e.background.getColor()&&(e.container.style.border="1px solid #b8c4c8");e.container.appendChild(e.backgroundCanvas);
e.container.appendChild(e.canvas);e.container.appendChild(e.graphicControlContainer);e.container.appendChild(e.numericalControlContainer);b.container.insertBefore(e.container,b.loader);e.parent.images[e.id+".image"]=e.canvas;e.parent.images[e.id+".image"].ready=1;e.parent.images[e.id+".image"].complete=!0;e.evaluator.setVariable(e.id+".image",e.id+".image");e.parent.images[e.id+".back"]=e.backgroundCanvas;e.parent.images[e.id+".back"].ready=1;e.parent.images[e.id+".back"].complete=!0;e.evaluator.setVariable(e.id+
".back",e.id+".back");""!==e.id&&2!==b.version?(e.OxString=e.id+".Ox",e.OyString=e.id+".Oy",e.scaleString=e.id+".escala",e.wString=e.id+"._w",e.hString=e.id+"._h",e.mxString=e.id+".mouse_x",e.myString=e.id+".mouse_y",e.mpressedString=e.id+".mouse_pressed",e.mclickedString=e.id+".mouse_clicked",e.mclicizquierdoString=e.id+".clic_izquierdo"):(e.OxString="Ox",e.OyString="Oy",e.scaleString="escala",e.wString="_w",e.hString="_h",e.mxString="mouse_x",e.myString="mouse_y",e.mpressedString="mouse_pressed",
e.mclickedString="mouse_clicked",e.mclicizquierdoString="clic_izquierdo");"descartesJS_scenario"!==e.id&&e.registerMouseAndTouchEvents()};a.extend(a.Space2D,a.Space);a.Space2D.prototype.init=function(){e=this;e.uber.init.call(e);e.canvas&&(e.backgroundCanvas.setAttribute("width",e.w+"px"),e.backgroundCanvas.setAttribute("height",e.h+"px"),e.canvas.setAttribute("width",e.w+"px"),e.canvas.setAttribute("height",e.h+"px"));e.container&&e.findOffset()};a.Space2D.prototype.update=function(a){e=this;p=e.evaluator;
m=e.parent;p.setVariable(e.wString,e.w);p.setVariable(e.hString,e.h);e.drawIfValue=0<p.evalExpression(e.drawif);if(e.drawIfValue){q=e.x!==p.evalExpression(e.xExpr)+e.displaceRegionWest;r=e.y!==p.evalExpression(e.yExpr)+m.plecaHeight+e.displaceRegionNorth;e.spaceChange=a||q||r||e.drawBefore!==e.drawIfValue||e.Ox!==p.getVariable(e.OxString)||e.Oy!==p.getVariable(e.OyString)||e.scale!==p.getVariable(e.scaleString);e.x=q?p.evalExpression(e.xExpr)+e.displaceRegionWest:e.x;e.y=r?p.evalExpression(e.yExpr)+
m.plecaHeight+e.displaceRegionNorth:e.y;e.Ox=p.getVariable(e.OxString);e.Oy=p.getVariable(e.OyString);e.scale=p.getVariable(e.scaleString);e.drawBefore=e.drawIfValue;1E-6>e.scale?(e.scale=1E-6,p.setVariable(e.scaleString,1E-6)):1E6<e.scale&&(e.scale=1E6,p.setVariable(e.scaleString,1E6));if(q||r)e.container.style.left=e.x+"px",e.container.style.top=e.y+"px",e.findOffset();e.container.style.display="block";e.drawTrace=!e.spaceChange&&!e.click;e.spaceChange&&e.drawBackground();e.draw()}else e.container.style.display=
"none"};a.Space2D.prototype.drawBackground=function(){p=this.evaluator;k=this.backgroundCtx;k.clearRect(0,0,this.backgroundCanvas.width,this.backgroundCanvas.height);k.fillStyle=this.background.getColor();k.fillRect(0,0,this.backgroundCanvas.width,this.backgroundCanvas.height);this.image&&(""!=this.image.src&&this.image.ready&&this.image.complete)&&("topleft"===this.bg_display?k.drawImage(this.image,0,0):"stretch"===this.bg_display?k.drawImage(this.image,0,0,this.w,this.h):"patch"===this.bg_display?
(k.fillStyle=k.createPattern(this.image,"repeat"),k.fillRect(0,0,this.canvas.width,this.canvas.height)):"center"===this.bg_display&&k.drawImage(this.image,(this.w-this.image.width)/2,(this.h-this.image.height)/2));n=this.scale;u=0;for(l=0>this.w+this.h?0:this.w+this.h;n>l;)n/=10,u++;for(;n<l/10;)n*=10;k.lineWidth=1;""!==this.net&&(k.strokeStyle=this.net.getColor(),this.drawMarks(k,n/10,-1));if(2!==this.parent.version&&""!==this.net10||2===this.parent.version&&""!==this.net&&""!==this.net10)k.strokeStyle=
this.net10.getColor(),this.drawMarks(k,n,-1);if(""!==this.axes){k.strokeStyle=this.axes.getColor();k.beginPath();if(""!==this.x_axis||2!==this.parent.version)k.moveTo(0,g(this.h/2+this.Oy)+0.5),k.lineTo(this.w,g(this.h/2+this.Oy)+0.5);if(""!==this.y_axis||2!==this.parent.version)k.moveTo(g(this.w/2+this.Ox)+0.5,0),k.lineTo(g(this.w/2+this.Ox)+0.5,this.h);k.stroke();this.drawMarks(k,n,4);this.drawMarks(k,n/2,2);this.drawMarks(k,n/10,1)}if(""!==this.x_axis||""!==this.y_axis)k.fillStyle=""!==this.axes?
this.axes.getColor():"black",k.font=d,k.textAlign="right",k.textBaseline="alphabetic",k.fillText(this.x_axis,g(this.w)-2,g(this.h/2+this.Oy)+12),k.fillText(this.y_axis,g(this.w/2+this.Ox)-2,12);this.numbers&&""!=this.axes&&(k.fillStyle=this.axes.getColor(),k.font=d,k.textAlign="start",k.textBaseline="bottom",n>(this.w+this.h)/2?this.drawNumbers(k,n/5,n<=this.scale?u+1:u):n>(this.w+this.h)/4?this.drawNumbers(k,n/2,n<=this.scale?u+1:u):this.drawNumbers(k,n,u));for(var a=0,b=this.backgroundGraphics.length;a<
b;a++)this.backgroundGraphics[a].draw()};a.Space2D.prototype.draw=function(){k=this.ctx;k.clearRect(0,0,this.canvas.width,this.canvas.height);for(var a=0,b=this.graphics.length;a<b;a++)t=this.graphics[a],""!==t.trace&&this.drawTrace&&t.drawTrace(),t.draw();a=0;for(b=this.graphicsCtr.length;a<b;a++)this.graphicsCtr[a].draw();""!=this.text&&(this.click&&"L"===this.whichButton)&&(k.fillStyle=this.text.getColor(),k.strokeStyle=k.fillStyle,k.lineWidth=1,k.font=j,k.textAlign="center",k.textBaseline="alphabetic",
F=1>=this.scale?this.mouse_x.toFixed(0):this.mouse_x.toFixed(this.scale.toString().length),H=1>=this.scale?this.mouse_y.toFixed(0):this.mouse_y.toFixed(this.scale.toString().length),J="("+F+","+H+")",v=g(k.measureText(J).width/2),I=this.getAbsoluteX(this.mouse_x),E=this.getAbsoluteY(this.mouse_y),O=g(I),P=g(E-10),O+v>this.w?O=this.w-v:0>O-v&&(O=v),P+1>this.h?P=this.h:0>P-14&&(P=15),k.fillText(J,O,P),k.beginPath(),k.arc(I,E,2.5,0,c,!0),k.stroke())};a.Space2D.prototype.drawMarks=function(a,d,c){s=this.w;
w=this.h;C=0;A=s;y=0;G=w;x=g(s/2+this.Ox);D=g(w/2+this.Oy);0<=c&&(C=x-c,A=x+c,y=D-c,G=D+c);a.beginPath();for(c=-b(x/d);(z=x+b(c*d))<s;c++)a.moveTo(z+0.5,y+0.5),a.lineTo(z+0.5,G+0.5);for(c=-b(D/d);(B=D+b(c*d))<w;c++)a.moveTo(C+0.5,B+0.5),a.lineTo(A+0.5,B+0.5);a.stroke()};a.Space2D.prototype.drawNumbers=function(a,d){s=this.w;w=this.h;x=g(s/2+this.Ox);D=g(w/2+this.Oy);for(var c=-b(x/d);(z=x+b(c*d))<s;c++)a.fillText(parseFloat((c*d/this.scale).toFixed(4)),z+1,D-2);for(c=-b(D/d);(B=D+b(c*d))<w;c++)0!==
parseFloat(-c*d/this.scale)&&a.fillText(parseFloat((-c*d/this.scale).toFixed(4)),x+5,B+5)};a.Space2D.prototype.registerMouseAndTouchEvents=function(){function b(a){m.click=1;m.evaluator.setVariable(m.mpressedString,1);m.evaluator.setVariable(m.mclickedString,0);m.evaluator.setVariable(m.mclicizquierdoString,0);m.parent.deactivateGraphiControls();j(a);window.addEventListener("touchmove",l);window.addEventListener("touchend",d);a.preventDefault()}function d(a){m.click=0;m.evaluator.setVariable(m.mpressedString,
0);m.evaluator.setVariable(m.mclickedString,1);m.evaluator.setVariable(m.mclicizquierdoString,1);window.removeEventListener("touchmove",l,!1);window.removeEventListener("touchend",d,!1);a.preventDefault();m.parent.update()}function c(b){m.click=1;m.parent.deactivateGraphiControls();m.whichButton=a.whichButton(b);"R"===m.whichButton&&(window.addEventListener("mouseup",e),m.fixed||(m.clickPosForZoom=m.getCursorPosition(b).y,m.tempScale=m.scale,window.addEventListener("mousemove",k)));"L"===m.whichButton&&
(m.evaluator.setVariable(m.mpressedString,1),m.evaluator.setVariable(m.mclickedString,0),m.evaluator.setVariable(m.mclicizquierdoString,0),j(b),window.addEventListener("mousemove",l),window.addEventListener("mouseup",e));b.preventDefault()}function e(a){m.click=0;m.evaluator.setVariable(m.mpressedString,0);m.evaluator.setVariable(m.mclickedString,1);m.evaluator.setVariable(m.mclicizquierdoString,1);a.preventDefault();"R"===m.whichButton&&window.removeEventListener("mousemove",k,!1);m.sensitive_to_mouse_movements||
window.removeEventListener("mousemove",l,!1);window.removeEventListener("mouseup",e,!1);m.parent.update()}function j(a){m.posAnte=m.getCursorPosition(a);m.mouse_x=m.getRelativeX(m.posAnte.x);m.mouse_y=m.getRelativeY(m.posAnte.y);m.evaluator.setVariable(m.mxString,m.mouse_x);m.evaluator.setVariable(m.myString,m.mouse_y);m.evaluator.setVariable(m.mclickedString,0);m.evaluator.setVariable(m.mclicizquierdoString,0);m.parent.update()}function k(a){a.preventDefault();m.clickPosForZoomNew=m.getCursorPosition(a).y;
m.evaluator.setVariable(m.scaleString,m.tempScale+m.tempScale/45*((m.clickPosForZoom-m.clickPosForZoomNew)/10));m.parent.update()}function l(a){m.fixed||(m.posNext=m.getCursorPosition(a),f=g(m.posAnte.x-m.posNext.x),h=g(m.posAnte.y-m.posNext.y),m.evaluator.setVariable(m.OxString,m.Ox-f),m.evaluator.setVariable(m.OyString,m.Oy-h),m.posAnte.x-=f,m.posAnte.y-=h);j(a);a.preventDefault()}var m=this;L=a.hasTouchSupport;m.canvas.oncontextmenu=function(){return!1};L&&(this.sensitive_to_mouse_movements&&this.canvas.addEventListener("touchmove",
j),this.canvas.addEventListener("touchstart",b));L||(this.sensitive_to_mouse_movements&&this.canvas.addEventListener("mousemove",j),this.canvas.addEventListener("mousedown",c))};return a}(descartesJS||{}),descartesJS=function(a){var f,h,g;function b(a,b){return b.depth-a.depth}function c(b,d){X=a.subtract3D(b,a.scalarProduct3D(d,a.dotProduct3D(b,d)));U=a.add3D(b,a.scalarProduct3D(X,-2));V=a.norm3D(U);return 0!==V?a.scalarProduct3D(U,1/V):a.scalarProduct3D(b,-1)}if(a.loadLib)return a;var d=Math.floor,
j=Math.round,e=Math.max,p=Math.cos,m=Math.sin,k=Math.sqrt,q=15*Math.PI/180,r=Math.cos(q),t=Math.sin(q),n,u,l,s,w,z,B,x,D,C,A,y,G,F,H,J,v,I,E,O,P,L,Q,R=[],M,N,K,T,S,W,X,U,V;a.Space3D=function(b,d){a.Space.call(this,b,d);l=this;l.backgroundCanvas=document.createElement("canvas");l.backgroundCanvas.setAttribute("id",l.id+"_background");l.backgroundCanvas.setAttribute("width",l.w+"px");l.backgroundCanvas.setAttribute("height",l.h+"px");l.canvas=document.createElement("canvas");l.canvas.setAttribute("id",
l.id+"_canvas");l.canvas.setAttribute("width",l.w+"px");l.canvas.setAttribute("height",l.h+"px");l.canvas.setAttribute("class","DescartesSpace3DCanvas");l.canvas.setAttribute("style","z-index: "+l.zIndex+";");l.ctx=l.canvas.getContext("2d");l.ctx.imageSmoothingEnabled=!1;l.ctx.mozImageSmoothingEnabled=!1;l.ctx.webkitImageSmoothingEnabled=!1;l.graphicControlContainer=document.createElement("div");l.graphicControlContainer.setAttribute("id",l.id+"_graphicControls");l.graphicControlContainer.setAttribute("style",
"position: absolute; left: 0px; top: 0px; z-index: "+l.zIndex+";");l.numericalControlContainer=document.createElement("div");l.numericalControlContainer.setAttribute("id",l.id+"_numericalControls");l.numericalControlContainer.setAttribute("style","position: absolute; left: 0px; top: 0px; z-index: "+l.zIndex+";");l.container=document.createElement("div");l.container.setAttribute("id",l.id);l.container.setAttribute("class","DescartesSpace3DContainer");l.container.setAttribute("style","left: "+l.x+"px; top: "+
l.y+"px; z-index: "+l.zIndex+";");l.container.appendChild(l.backgroundCanvas);l.container.appendChild(l.canvas);l.container.appendChild(l.graphicControlContainer);l.container.appendChild(l.numericalControlContainer);b.container.insertBefore(l.container,b.loader);l.eye={x:0,y:0,z:0};l.lights=[{x:50,y:50,z:70},{x:50,y:-50,z:30},{x:20,y:0,z:-80},{x:0,y:0,z:0}];for(var c=0,e=l.lights.length;c<e;c++)l.lights[c]=a.normalize3D(l.lights[c]);l.light3={x:0,y:0,z:0};l.intensity=[0.4,0.5,0.3,0];l.userIntensity=
0;l.dim=1;l.tmpIntensity=[];l.OxStr=l.id+".Ox";l.OyStr=l.id+".Oy";l.scaleStr=l.id+".escala";l.wStr=l.id+"._w";l.hStr=l.id+"._h";l.obsStr=l.id+".observador";l.rotZStr=l.id+".rot.z";l.rotYStr=l.id+".rot.y";l.userI_Dim_Str=l.id+".userIlum.dim";l.userI_I_Str=l.id+".userIlum.I";l.userI_x_Str=l.id+".userIlum.x";l.userI_y_Str=l.id+".userIlum.y";l.userI_z_Str=l.id+".userIlum.z";l.evaluator.setVariable(l.rotZStr,0);l.evaluator.setVariable(l.rotYStr,0);l.evaluator.setVariable(l.userI_Dim_Str,l.dim);l.evaluator.setVariable(l.userI_I_Str,
l.userIntensity);l.evaluator.setVariable(l.userI_x_Str,0);l.evaluator.setVariable(l.userI_y_Str,0);l.evaluator.setVariable(l.userI_z_Str,0);l.registerMouseAndTouchEvents()};a.extend(a.Space3D,a.Space);a.Space3D.prototype.init=function(){l=this;l.uber.init.call(l);l.canvas&&(l.canvas.setAttribute("width",l.w+"px"),l.canvas.setAttribute("height",l.h+"px"));l.container&&l.findOffset();l.w_2=l.w/2;l.h_2=l.h/2;l.oldMouse={x:0,y:0}};a.Space3D.prototype.update=function(a){l=this;n=l.evaluator;u=l.parent;
n.setVariable(l.wStr,l.w);n.setVariable(l.hStr,l.h);l.drawIfValue=0<n.evalExpression(l.drawif);if(l.drawIfValue){D=l.x!==n.evalExpression(l.xExpr)+l.displaceRegionWest;C=l.y!==n.evalExpression(l.yExpr)+u.plecaHeight+l.displaceRegionNorth;l.spaceChange=a||D||C||l.drawBefore!==l.drawIfValue||l.Ox!==n.getVariable(l.OxStr)||l.Oy!==n.getVariable(l.OyStr)||l.scale!==n.getVariable(l.scaleStr);l.x=D?n.evalExpression(l.xExpr)+l.displaceRegionWest:l.x;l.y=C?n.evalExpression(l.yExpr)+u.plecaHeight+l.displaceRegionNorth:
l.y;l.Ox=n.getVariable(l.OxStr);l.Oy=n.getVariable(l.OyStr);l.scale=n.getVariable(l.scaleStr);l.drawBefore=l.drawIfValue;if(a){var b;a=0;for(var d=l.parent.controls.length;a<d;a++)l.parent.controls[a].id===l.obsStr&&(b=!0);l.observer=b?n.getVariable(l.obsStr)||0.5*(l.w+l.h):2.5*(l.w+l.h);l.observer=e(l.observer,0.1*(l.w+l.h));n.setVariable(l.obsStr,l.observer);l.eye={x:l.observer/l.scale*r,y:0,z:l.observer/l.scale*t};l.D=l.scale*l.eye.x/r;l.XE=j(l.scale*l.eye.y+0.5);l.YE=j(l.scale*l.eye.z+0.5)}l.observer=
e(n.getVariable(l.obsStr),0.1*(l.w+l.h));n.setVariable(l.obsStr,l.observer);1E-6>l.scale?(l.scale=1E-6,n.setVariable(l.scaleStr,1E-6)):1E6<l.scale&&(l.scale=1E6,n.setVariable(l.scaleStr,1E6));if(D||C)l.container.style.left=l.x+"px",l.container.style.top=l.y+"px",l.findOffset();l.container.style.display="block";l.dim=n.getVariable(l.userI_Dim_Str);l.userIntensity=n.getVariable(l.userI_I_Str);l.light3={x:parseInt(n.getVariable(l.userI_x_Str)),y:parseInt(n.getVariable(l.userI_y_Str)),z:parseInt(n.getVariable(l.userI_z_Str))};
l.updateCamera();l.draw()}else l.container.style.display="none"};a.Space3D.prototype.draw=function(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);this.ctx.fillStyle=this.background.getColor();this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height);this.image&&(""!=this.image.src&&this.image.ready&&this.image.complete)&&("topleft"===this.bg_display?this.ctx.drawImage(this.image,0,0):"stretch"===this.bg_display?this.ctx.drawImage(this.image,0,0,this.w,this.h):"patch"===this.bg_display?
(this.ctx.fillStyle=ctx.createPattern(this.image,"repeat"),this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height)):"center"===this.bg_display&&this.ctx.drawImage(this.image,(this.w-this.image.width)/2,(this.h-this.image.height)/2));for(var a=0,d=this.graphics.length;a<d;a++)s=this.graphics[a],s.update();this.primitives=[];a=0;for(d=this.graphics.length;a<d;a++){s=this.graphics[a];if(s.split||this.split)for(var c=a+1;c<d;c++)w=this.graphics[c],(w.split||this.split)&&s.splitFace(w);this.primitives=
this.primitives.concat(s.primitives||[])}z=this.primitives;B=z.length;for(a=0;a<B;a++)z[a].computeDepth(this);z=z.sort(b);for(a=0;a<B;a++)z[a].draw(this.ctx,this);a=0;for(d=this.graphicsCtr.length;a<d;a++)this.graphicsCtr[a].draw()};a.Space3D.prototype.updateCamera=function(){l=this;l.D=l.observer;l.eye.x=l.D/l.scale;l.eye.y=l.XE/l.scale;l.eye.z=l.YE/l.scale};a.Space3D.prototype.rotateVertex=function(b){v=a.degToRad(l.evaluator.getVariable(l.rotZStr));I=p(v);E=m(v);f=b.x*I-b.y*E;h=b.x*E+b.y*I;g=b.z;
v=a.degToRad(l.evaluator.getVariable(l.rotYStr));I=p(v);E=m(v);return{x:g*E+f*I,y:h,z:g*I-f*E}};a.Space3D.prototype.project=function(a){l=this;G=l.eye.x-a.x;F=l.eye.y-a.y;H=l.eye.z-a.z;J=-a.x/k(G*G+F*F+H*H)||0;G=l.scale*(a.y+J*(l.eye.y-a.y));F=-l.scale*(a.z+J*(l.eye.z-a.z));return{x:parseInt(G+this.w_2+this.Ox),y:parseInt(F+this.h_2+this.Oy),z:J}};a.Space3D.prototype.computeColor=function(b,e,g){T=a.subtract3D(this.eye,e.average);S=a.norm3D(T);W=a.scalarProduct3D(T,1/S);this.lights[3]=a.subtract3D(this.light3,
e.average);Q=a.norm3D(this.lights[3]);for(var f=0,j=this.intensity.length-1;f<j;f++)R[f]=this.intensity[f]*this.dim;R[3]=this.userIntensity*this.userIntensity/Q||0;M=g?this.dim/2:this.dim/4;N=0;K=0<=e.direction?e.normal:a.scalarProduct3D(e.normal,-1);f=0;for(j=this.lights.length;f<j;f++)g?(N=Math.max(0,a.dotProduct3D(c(this.lights[f],K),W)),N*=N*N):N=Math.max(0,a.dotProduct3D(this.lights[f],K)),M+=R[f]*N;M=Math.min(M,1);O=d(b.r*M);P=d(b.g*M);L=d(b.b*M);return"rgba("+O+","+P+","+L+","+b.a+")"};a.Space3D.prototype.registerMouseAndTouchEvents=
function(){function b(a){k.click=1;k.evaluator.setVariable(k.id+".mouse_pressed",1);k.parent.deactivateGraphiControls();k.posAnte=k.getCursorPosition(a);k.oldMouse.x=k.getRelativeX(k.posAnte.x);k.oldMouse.y=k.getRelativeY(k.posAnte.y);g(a);window.addEventListener("touchmove",h);window.addEventListener("touchend",d);a.preventDefault()}function d(a){k.click=0;k.evaluator.setVariable(k.id+".mouse_pressed",0);window.removeEventListener("touchmove",h,!1);window.removeEventListener("touchend",d,!1);a.preventDefault()}
function c(b){k.click=1;k.parent.deactivateGraphiControls();k.whichButton=a.whichButton(b);"R"===k.whichButton?(window.addEventListener("mouseup",e),k.fixed||(k.clickPosForZoom=k.getCursorPosition(b).y,k.tempScale=k.scale,window.addEventListener("mousemove",f))):"L"==k.whichButton&&(k.evaluator.setVariable(k.id+".mouse_pressed",1),k.posAnte=k.getCursorPosition(b),k.oldMouse.x=k.getRelativeX(k.posAnte.x),k.oldMouse.y=k.getRelativeY(k.posAnte.y),g(b),window.addEventListener("mousemove",h),window.addEventListener("mouseup",
e));b.preventDefault()}function e(a){k.click=0;k.evaluator.setVariable(k.id+".mouse_pressed",0);a.preventDefault();"R"===k.whichButton&&window.removeEventListener("mousemove",f,!1);window.removeEventListener("mousemove",h,!1);window.removeEventListener("mouseup",e,!1)}function g(a){k.posAnte=k.getCursorPosition(a);k.mouse_x=k.getRelativeX(k.posAnte.x);k.mouse_y=k.getRelativeY(k.posAnte.y);k.evaluator.setVariable(k.id+".mouse_x",k.mouse_x);k.evaluator.setVariable(k.id+".mouse_y",k.mouse_y);k.parent.update()}
function f(a){a.preventDefault();k.clickPosForZoomNew=k.getCursorPosition(a).y;k.evaluator.setVariable(k.scaleStr,k.tempScale+k.tempScale/45*((k.clickPosForZoom-k.clickPosForZoomNew)/10));k.parent.update()}function h(b){if(!k.fixed&&k.click){A=parseInt(50*(k.oldMouse.x-k.mouse_x));y=parseInt(50*(k.oldMouse.y-k.mouse_y));if(A!==k.disp.x||y!==k.disp.y)k.alpha=a.degToRad(k.evaluator.getVariable(k.rotZStr)),k.beta=a.degToRad(-k.evaluator.getVariable(k.rotYStr)),k.alpha=j(a.radToDeg(k.alpha)-A),k.beta=
j(a.radToDeg(k.beta)-y),k.evaluator.setVariable(k.rotZStr,k.alpha),k.evaluator.setVariable(k.rotYStr,-k.beta),k.disp.x=A,k.disp.y=y,k.oldMouse.x=k.getRelativeX(k.posAnte.x),k.oldMouse.y=k.getRelativeY(k.posAnte.y);g(b);b.preventDefault()}}var k=this;x=a.hasTouchSupport;this.canvas.oncontextmenu=function(){return!1};x&&this.canvas.addEventListener("touchstart",b);x||this.canvas.addEventListener("mousedown",c);this.disp={x:0,y:0}};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;
var f;a.SpaceAP=function(h,g){a.Space.call(this,h,g);this.exportarVars=this.importarVars=null;f=h.evaluator;this.file=this.file.match(/^\[/)&&this.file.match(/\]$/)?f.parser.parse(this.file.substring(1,this.file.length-1)):this.file.match(/^\'/)&&this.file.match(/\'$/)?f.parser.parse(this.file):f.parser.parse("'"+this.file+"'");this.oldFile=f.evalExpression(this.file);this.initFile()};a.extend(a.SpaceAP,a.Space);a.SpaceAP.prototype.initFile=function(){this.firstUpdate=!0;var f;if(this.oldFile){var g=
document.getElementById(this.oldFile);f=g&&"descartes/spaceApFile"==g.type?g.text:a.openExternalFile(this.oldFile);null!=f&&(f=f.split("\n"))}if(f&&f.toString().match(/<applet/gi)){for(var g="",b=!1,c=0,d=f.length;c<d&&!(f[c].match("<applet")&&(b=!0),b&&(g+=f[c]),f[c].match("</applet"));c++);c=document.createElement("div");c.innerHTML=g;c.firstChild.setAttribute("width",this.w);c.firstChild.setAttribute("height",this.h);g=this.descApp?this.descApp.container:null;this.descApp=new a.DescartesApp(c.firstChild);
this.descApp.container.setAttribute("class","DescartesAppContainer");this.descApp.container.setAttribute("style","position: absolute; overflow: hidden; background-color: "+this.background+"; width: "+this.w+"px; height: "+this.h+"px; left: "+this.x+"px; top: "+this.y+"px; z-index: "+this.zIndex+";");g?this.parent.container.replaceChild(this.descApp.container,g):this.parent.container.insertBefore(this.descApp.container,this.parent.loader);g=this.descApp.spaces;c=0;for(d=g.length;c<d;c++)g[c].findOffset();
this.descApp.container.style.display=0<this.evaluator.evalExpression(this.drawif)?"block":"none";var j=this;this.descApp.update=function(){this.updateAuxiliaries();this.updateEvents();this.updateControls();this.updateSpaces();j.exportar()}}else g=this.descApp?this.descApp.container:null,this.descApp={},this.descApp.container=document.createElement("div"),this.descApp.container.setAttribute("class","DescartesAppContainer"),c="position: absolute; overflow: hidden; background-color: "+this.background+
"; width: "+this.w+"px; height: "+this.h+"px; left: "+this.x+"px; top: "+this.y+"px; z-index: "+this.zIndex+";",this.image&&("topleft"==this.bg_display?c+="background-image: url("+this.imageSrc+"); background-repeat:no-repeat;":"stretch"==this.bg_display?c+="background-image: url("+this.imageSrc+"); background-repeat:no-repeat; background-size: 100% 100%;":"patch"==this.bg_display?c+="background-image: url("+this.imageSrc+");":"center"==this.bg_display&&(c+="background-image: url("+this.imageSrc+
"); background-repeat:no-repeat; background-position: center center;")),this.descApp.container.setAttribute("style",c),g?this.parent.container.replaceChild(this.descApp.container,g):this.parent.container.insertBefore(this.descApp.container,this.parent.loader),this.descApp.container.style.display=0<this.evaluator.evalExpression(this.drawif)?"block":"none"};a.SpaceAP.prototype.update=function(){var a=this.evaluator.evalExpression(this.file);if(this.oldFile!=a)this.oldFile=a,this.initFile();else{var a=
this.x!=this.evaluator.evalExpression(this.xExpr),g=this.y!=this.evaluator.evalExpression(this.yExpr)+this.plecaHeight;this.x=a?this.evaluator.evalExpression(this.xExpr):this.x;this.y=g?this.evaluator.evalExpression(this.yExpr)+this.plecaHeight:this.y;a&&(this.descApp.container.style.left=this.x+"px");g&&(this.descApp.container.style.top=this.y+"px");if(a||g)for(var a=this.descApp.spaces,g=0,b=a.length;g<b;g++)a[g].findOffset();this.descApp.container.style.display=0<this.evaluator.evalExpression(this.drawif)?
"block":"none";if(this.firstUpdate&&(this.firstUpdate=!1,null==this.importarVars)){this.importarVars=[];for(var c in this.evaluator.variables)this.evaluator.variables.hasOwnProperty(c)&&c.match(/^public./)&&this.importarVars.push({varName:c,value:this.evaluator.getVariable(c)})}this.importar()}};a.SpaceAP.prototype.importar=function(){for(var a,g=!1,b=0,c=this.importarVars.length;b<c;b++)a=this.evaluator.getVariable(this.importarVars[b].varName),a!=this.importarVars[b].value&&(this.importarVars[b].value=
a,this.descApp.evaluator.setVariable(this.importarVars[b].varName,this.importarVars[b].value),g=!0);g&&this.descApp.update()};a.SpaceAP.prototype.exportar=function(){};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;var f,h,g,b;a.SpaceHTML_IFrame=function(b,d){a.Space.call(this,b,d);var g=this.parent.evaluator;window.navigator.userAgent.toLowerCase().match(/firefox/);this.file=this.file?this.file.trim():"";this.file=this.file.match(/^\[/)&&this.file.match(/\]$/)?g.parser.parse(this.file.substring(1,
this.file.length-1)):this.file.match(/^\'/)&&this.file.match(/\'$/)?g.parser.parse(this.file):g.parser.parse("'"+this.file+"'");this.oldFile=g.evalExpression(this.file);this.MyIFrame=document.createElement("iframe");this.MyIFrame.setAttribute("src",this.oldFile);this.MyIFrame.setAttribute("id",this.id);this.MyIFrame.setAttribute("marginheight",0);this.MyIFrame.setAttribute("marginwidth",0);this.MyIFrame.setAttribute("frameborder",0);this.MyIFrame.setAttribute("scrolling","auto");this.MyIFrame.setAttribute("style",
"position: absolute; width: "+this.w+"px; height: "+this.h+"px; left: "+this.x+"px; top: "+this.y+"px;");this.parent.container.insertBefore(this.MyIFrame,this.parent.loader);var e=this;this.MyIFrame.onload=function(){var a=this;e.evaluator.setFunction(e.id+".set",function(b,d){a.contentWindow.postMessage({type:"set",name:b,value:d},"*")});e.evaluator.setFunction(e.id+".update",function(){a.contentWindow.postMessage({type:"update"},"*")});e.evaluator.setFunction(e.id+".exec",function(b,d){a.contentWindow.postMessage({type:"exec",
name:b,value:d},"*")})};this.update=this.iframeUpdate;this.evaluator.setVariable(this.id+"._scroll",0)};a.extend(a.SpaceHTML_IFrame,a.Space);a.SpaceHTML_IFrame.prototype.init=function(){self=this;self.uber.init.call(self);self.MyIFrame&&(self.MyIFrame.style.width=self.w+"px",self.MyIFrame.style.height=self.h+"px",self.MyIFrame.style.left=self.x+"px",self.MyIFrame.style.top=self.y+"px")};a.SpaceHTML_IFrame.prototype.iframeUpdate=function(a){f=this.evaluator;this.drawIfValue=0<f.evalExpression(this.drawif);
if(this.drawif){this.MyIFrame.style.display=this.drawIfValue?"block":"none";a&&(this.y=this.x=Math.Infinity);h=this.x!==f.evalExpression(this.xExpr)+this.displaceRegionWest;g=this.y!==f.evalExpression(this.yExpr)+this.parent.plecaHeight+this.displaceRegionNorth;this.x=h?f.evalExpression(this.xExpr)+this.displaceRegionWest:this.x;this.y=g?f.evalExpression(this.yExpr)+this.parent.plecaHeight+this.displaceRegionNorth:this.y;if(h||g)this.MyIFrame.style.left=this.x+"px",this.MyIFrame.style.top=this.y+
"px";b=f.evalExpression(this.file);b!==this.oldFile&&(this.oldFile=b,this.MyIFrame.setAttribute("src",b));this.scrollVar=f.getVariable(this.id+"._scroll");1==this.scrollVar?(this.MyIFrame.setAttribute("scrolling","yes"),this.MyIFrame.style.overflow=""):-1==this.scrollVar?(this.MyIFrame.setAttribute("scrolling","no"),this.MyIFrame.style.overflow="hidden"):(this.MyIFrame.setAttribute("scrolling","auto"),this.MyIFrame.style.overflow="")}};return a}(descartesJS||{}),descartesJS=function(a){if(a.loadLib)return a;
var f;a.DescartesLoader=function(a){this.children=a.children;this.lessonParser=a.lessonParser;this.images=a.images;this.images.length=a.images.length;this.audios=a.audios;this.audios.length=a.audios.length;this.arquimedes=a.arquimedes;this.descartesApp=a;var b;if(a.image_loader)b=a.image_loader;else{b=a.loader.width;var c=a.loader.height,g=document.createElement("canvas");g.width=b;g.height=c;var h=g.getContext("2d");h.save();h.strokeStyle="#1f375d";h.fillStyle="#1f375d";h.lineCap="round";h.lineWidth=
2;h.beginPath();f=b<c?b/360:c/195;f=2.5<f?2.5:f;h.translate((b-120*f)/2,(c-65*f)/2);h.scale(f,f);h.moveTo(3,25);h.lineTo(3,1);h.lineTo(21,1);h.bezierCurveTo(33,1,41,15,41,25);h.stroke();h.beginPath();h.moveTo(1,63);h.lineTo(1,64);h.moveTo(5,62);h.lineTo(5,64);h.moveTo(9,61);h.lineTo(9,64);h.moveTo(13,60);h.lineTo(13,64);h.moveTo(17,58);h.lineTo(17,64);h.moveTo(21,56);h.lineTo(21,64);h.moveTo(25,53);h.lineTo(25,64);h.moveTo(29,50);h.lineTo(29,64);h.moveTo(33,46);h.lineTo(33,64);h.moveTo(37,41);h.lineTo(37,
64);h.moveTo(41,32);h.lineTo(41,64);h.stroke();h.font="20px Arial, Helvetica, 'Droid Sans', Sans-serif";h.fillText("escartes",45,33);h.fillText("JS",98,64);h.restore();b=g.toDataURL()}this.imageLoader=document.createElement("div");this.imageLoader.width=a.width;this.imageLoader.height=a.height;this.imageLoader.setAttribute("class","DescartesLoaderImage");this.imageLoader.setAttribute("style","background-image: url("+b+"); width: "+a.width+"px; height: "+a.height+"px;");a.loader.appendChild(this.imageLoader);
this.loaderBar=document.createElement("canvas");this.loaderBar.width=a.width;this.loaderBar.height=a.height;this.loaderBar.setAttribute("class","DescartesLoaderBar");this.loaderBar.setAttribute("style","width: "+a.width+"px; height:"+a.height+"px;");this.loaderBar.ctx=this.loaderBar.getContext("2d");a.loader.appendChild(this.loaderBar);this.barWidth=Math.floor(80);this.barHeight=Math.floor(a.loader.height/70);var k=this;this.timer=setInterval(function(){k.drawLoaderBar(k.loaderBar.ctx,a.width,a.height)},
10);a.firstRun=!1;this.initPreloader()};a.DescartesLoader.prototype.initPreloader=function(){var b=this.children,c=this.images,e=this.audios,g=/[\w\.\-//]*(\.png|\.jpg|\.gif|\.svg|\.PNG|\.JPG|\.GIF|\.SVG)/g,f=/[\w\.\-//]*(\.ogg|\.oga|\.mp3|\.wav|\.OGG|\.OGA\.MP3|\.WAV)/g,h=/vector|array|bektore|vecteur|matriz/g,q=/archivo|file|fitxer|artxibo|fichier|arquivo/g;this.arquimedes&&(c["lib/DescartesCCLicense.png"]=a.getCreativeCommonsLicenseImage(),c["lib/DescartesCCLicense.png"].addEventListener("load",
function(){this.ready=1}),c["lib/DescartesCCLicense.png"].addEventListener("error",function(){this.errorload=1}));var r,t,n,u,l,s;u=0;for(l=b.length;u<l;u++)if("rtf"!==b[u].name){if(r=b[u].value.match(g)){n=0;for(s=r.length;n<s;n++)t=r[n],!t.toLowerCase().match(/vacio.gif$/)&&""!=t.substring(0,t.length-4)&&(c[t]=new Image,c[t].addEventListener("load",function(){this.ready=1}),c[t].addEventListener("error",function(){this.errorload=1}),c[t].src=t)}if(r=b[u].value.match(f)){n=0;for(t=r.length;n<t;n++)this.initAudio(r[n])}(n=
b[u].value.match(h)&&b[u].value.match(q))&&this.lessonParser.parseAuxiliar(b[u].value)}for(var w in c)c.hasOwnProperty(w)&&this.images.length++;for(w in e)e.hasOwnProperty(w)&&this.audios.length++;var z=this,B=this.images.length+this.audios.length,x=function(){z.readys=0;for(var a in c)c.hasOwnProperty(a)&&(c[a].ready||c[a].errorload)&&z.readys++;for(a in z.audios)e.hasOwnProperty(a)&&(e[a].ready||e[a].errorload)&&z.readys++;z.readys!=B?setTimeout(x,30):(clearTimeout(z.timer),z.descartesApp.initBuildApp())};
x()};a.DescartesLoader.prototype.initAudio=function(b){var c=this.audios;c[b]=new Audio(b);c[b].filename=b;var e=function(){this.ready=1},g=function(){!this.canPlayType("audio/"+this.filename.substring(this.filename.length-3))&&"mp3"==this.filename.substring(this.filename.length-3)?(c[b]=new Audio(this.filename.replace("mp3","ogg")),c[b].filename=this.filename.replace("mp3","ogg"),c[b].addEventListener("canplaythrough",e),c[b].addEventListener("load",e),c[b].addEventListener("error",g),c[b].load()):
(console.log("El archivo '"+b+"' no puede ser reproducido"),this.errorload=1)};c[b].addEventListener("canplaythrough",e);c[b].addEventListener("load",e);c[b].addEventListener("error",g);a.hasTouchSupport?(c[b].load(),c[b].play(),c[b].ready=1):c[b].load()};var h,g,b,c;a.DescartesLoader.prototype.drawLoaderBar=function(a,j,e){h=this.barWidth;g=this.barHeight;b=this.images.length+this.audios.length;c=2*(h-2)/b;a.translate(j/2,(e-65*f)/2+90*f);a.scale(f,f);a.strokeRect(-h,-g,2*h,g);a.fillStyle="gray";
a.fillRect(-h+2,-g+2,2*(h-2),g-4);a.fillStyle="#1f375d";a.fillRect(-h+2,-g+2,this.readys*c,g-4);a.setTransform(1,0,0,1,0,0)};return a}(descartesJS||{}),descartesJS=function(a){function f(a){for(var b="[",c=0,d=a.length;c<d;c++){if(a[c]instanceof Array)b+=f(a[c]);else{h=a[c];if("undefined"==typeof h||!h)h=0;"string"==typeof h&&(h="'"+h+"'");b+=h}c<d-1&&(b+=",")}return b+"]"}if(a.loadLib)return a;a.DescartesApp=function(a){this.applet=a;this.parentContainer=a.parentNode;this.width=parseFloat(a.getAttribute("width"));
this.height=parseFloat(a.getAttribute("height"));this.decimal_symbol=".";this.decimal_symbol_regexp=RegExp("\\"+this.decimal_symbol,"g");this.children=a.getElementsByTagName("param");this.code=a.getAttribute("code");this.saveState=[];this.images={};this.images.length=-1;this.audios={};this.audios.length=-1;this.firstRun=!0;this.init()};a.DescartesApp.prototype.init=function(){this.evaluator=new a.Evaluator(this);this.lessonParser=new a.LessonParser(this);this.arquimedes=!!this.code.match("descinst.DescartesWeb2_0.class",
"i")||!!this.code.match("Arquimedes","i")||!!this.code.match("Discurso","i");this.licenseA="{\\rtf1\\uc0{\\fonttbl\\f0\\fcharset0 Arial;\\f1\\fcharset0 Arial;\\f2\\fcharset0 Arial;\\f3\\fcharset0 Arial;\\f4\\fcharset0 Arial;}{\\f0\\fs34 __________________________________________________________________________________ \\par \\fs22                                        Los contenidos de esta unidad did\u00e1ctica interactiva est\u00e1n bajo una  {\\*\\hyperlink licencia Creative Commons|http://creativecommons.org/licenses/by-nc-sa/2.5/es/}, si no se indica lo contrario.\\par                                        La unidad did\u00e1ctica fue creada con Arqu\u00edmedes, que es un producto de c\u00f3digo abierto del  {\\*\\hyperlink Ministerio de Educaci\u00f3n de Espa\u00f1a|http://recursostic.educacion.es/descartes/web/DescartesWeb2.0/} y\\par                                        el {\\*\\hyperlink Instituto de Matem\u00e1ticas|http://arquimedes.matem.unam.mx/} de la Universidad Nacional Aut\u00f3noma de M\u00e9xico, cedido bajo licencia {\\*\\hyperlink EUPL v 1.1|/resources/eupl_v1.1es.pdf}, con {\\*\\hyperlink c\u00f3digo en Java|http://recursostic.educacion.es/descartes/web/source/}.}";
for(var g=this.children,b,c=0,d=0,f=0,e=g.length;f<e;f++)b=g[f],"rtf_height"==b.name&&(c=parseInt(b.value)),"Buttons"==babel[b.name]&&(this.buttonsConfig=this.lessonParser.parseButtonsConfig(b.value),d=this.buttonsConfig.height),"image_loader"==b.name&&(this.image_loader=b.value);this.arquimedes&&c&&(this.height=c+d+90);this.spaces=[];this.externalSpace={container:document.createElement("div"),controls:[]};this.northSpace={container:document.createElement("div"),controls:[]};this.southSpace={container:document.createElement("div"),
controls:[]};this.eastSpace={container:document.createElement("div"),controls:[]};this.westSpace={container:document.createElement("div"),controls:[]};this.specialSpace={container:document.createElement("div"),controls:[]};this.editableRegion={container:document.createElement("div"),textFields:[]};this.controls=[];this.auxiliaries=[];this.events=[];this.cacheVars={};this.getVarsNames={};this.numberOfIframes=this.plecaHeight=this.tabindex=this.zIndex=0;void 0!=this.container&&this.parentContainer.removeChild(this.container);
this.container=document.createElement("div");this.loader=document.createElement("div");this.parentContainer.appendChild(this.container);this.container.width=this.width;this.container.height=this.height;this.container.setAttribute("class","DescartesAppContainer");this.container.setAttribute("style","width:"+this.width+"px; height:"+this.height+"px;");this.container.appendChild(this.loader);this.loader.width=this.width;this.loader.height=this.height;this.loader.setAttribute("class","DescartesLoader");
this.loader.setAttribute("style","width:"+this.width+"px; height:"+this.height+"px; z-index:1000;");this.firstRun?this.descartesLoader=new a.DescartesLoader(this):this.initBuildApp()};a.DescartesApp.prototype.initBuildApp=function(){for(var a=this.children,b=this.lessonParser,c=[],d=[],f=[],e=[],h=[],m=[],k,q=0,r=a.length;q<r;q++)if(k=a[q],"pleca"==k.name)k=b.parsePleca(k.value,this.width),this.container.insertBefore(k,this.loader),this.plecaHeight=k.imageHeight?k.imageHeight:k.offsetHeight;else if("Buttons"==
babel[k.name])this.buttonsConfig=b.parseButtonsConfig(k.value);else if("decimal_symbol"==babel[k.name])this.decimal_symbol=k.value,this.decimal_symbol_regexp=RegExp("\\"+this.decimal_symbol,"g");else if("version"==babel[k.name])this.version=parseInt(k.value);else if("language"==babel[k.name])this.language=k.value;else if("rtf"==k.name){var t=(this.width-780)/2,n=parseInt(this.height)-this.plecaHeight-this.buttonsConfig.height-45;e.push("space='descartesJS_scenario' type='text' expresion='[10,20]' background='yes' text='"+
k.value.replace(/'/g,"&squot;")+"'");e.push("space='descartesJS_scenario' type='text' expresion='["+t+","+(n-25)+"]' background='yes' text='"+this.licenseA+"'");e.push("space='descartesJS_scenario' type='image' expresion='["+(t+15)+","+n+"]' background='yes' abs_coord='yes' file='lib/DescartesCCLicense.png'")}else"E"==k.name.charAt(0)?(k.value.match(/'HTMLIFrame'/)&&this.numberOfIframes++,c.push(k.value)):"C"==k.name.charAt(0)&&"_"==k.name.charAt(1)?d.push(k.value):"A"==k.name.charAt(0)&&"_"==k.name.charAt(1)?
f.push(k.value):"G"==k.name.charAt(0)?e.push(k.value):"S"==k.name.charAt(0)?h.push(k.value):"Animation"==babel[k.name]&&m.push(k.value);this.scenarioRegion={container:document.createElement("div"),scroll:0};this.scenarioRegion.container.setAttribute("id","descartesJS_Scenario_Region");this.scenarioRegion.scenarioSpace=this.lessonParser.parseSpace("tipo='R2' id='descartesJS_scenario' fondo='blanco' x='0' y='0' fijo='yes' red='no' red10='no' ejes='no' text='no' ancho='"+this.width+"' alto='"+this.height+
"'");this.scenarioRegion.container.appendChild(this.scenarioRegion.scenarioSpace.container);this.arquimedes&&(this.container.appendChild(this.scenarioRegion.container),this.spaces.push(this.scenarioRegion.scenarioSpace));q=0;for(r=c.length;q<r;q++)a=b.parseSpace(c[q]),this.arquimedes&&this.scenarioRegion.container.appendChild(a.container),this.spaces.push(a),this.zIndex++;q=0;for(r=e.length;q<r;q++)if(c=b.parseGraphic(e[q]))c.visible&&(this.editableRegionVisible=!0),c.space.addGraph(c);q=0;for(r=
h.length;q<r;q++)(c=b.parse3DGraphic(h[q]))&&c.space.addGraph(c);q=0;for(r=d.length;q<r;q++)this.controls.push(b.parseControl(d[q]));q=0;for(r=f.length;q<r;q++)b.parseAuxiliar(f[q]);q=0;for(r=m.length;q<r;q++)this.animation=b.parseAnimation(m[q]);this.configRegions();this.updateAuxiliaries();q=0;for(r=this.controls.length;q<r;q++)this.controls[q].init();this.updateControls();this.updateSpaces(!0);var u=this;this.numberOfIframes?setTimeout(function(){u.finishInit()},300*this.numberOfIframes):this.finishInit()};
a.DescartesApp.prototype.finishInit=function(){this.update();this.loader.style.display="none";window.parent!==window&&(this.parentContainer.style.margin="0px",this.parentContainer.style.padding="0px",window.parent.postMessage({type:"reportSize",href:window.location.href,width:this.width,height:this.height},"*"),window.parent.postMessage({type:"ready"},"*"),a.onResize());if(window.opener){document.body.style.margin="0px";document.body.style.padding="0px";this.parentContainer.style.margin="0px";this.parentContainer.style.padding=
"0px";var g=parseInt(this.width)+20,b=parseInt(this.height)+80;window.moveTo((parseInt(screen.width)-g)/2,(parseInt(screen.height)-b)/2);window.resizeTo(g,b);a.onResize()}a.externalEvaluator=new a.Evaluator};a.DescartesApp.prototype.configRegions=function(){var g=this.evaluator.parser,b=this.buttonsConfig,c=this.container;if(2!=this.version)var d="15",f=100,e=100,h=100,m=100;else d="14",f=63,e=50,h=44,m=53;var k=0,q=0,r=0,t=r=0,n=0,u=0,l=0,s=0,u=this.northSpace.controls,w=this.southSpace.controls,
z=this.eastSpace.controls,B=this.westSpace.controls;if(0<b.rowsNorth||0<u.length||b.about||b.config){0>=b.rowsNorth?(k=b.height,b.rowsNorth=1):k=b.height*b.rowsNorth;var x=this.northSpace.container;x.setAttribute("id","descartesJS_northRegion");x.setAttribute("style","width:"+c.width+"px; height:"+k+"px; background:#c0c0c0; position:absolute; left:0px; top:0px; z-index:100;");c.insertBefore(x,this.loader);var n=c.width,D=0;b.about&&(D=f,n-=D);b.config&&(n-=e);for(var x=Math.ceil(u.length/b.rowsNorth),
C=n/x,r=0,A=u.length;r<A;r++)u[r].expresion=g.parse("("+(D+C*(r%x))+","+b.height*Math.floor(r/x)+","+C+","+b.height+")"),u[r].drawif=g.parse("1"),u[r].init();if(b.about){var y;"espa\u00f1ol"==this.language?y="cr\u00e9ditos":"english"==this.language&&(y="about");(new a.Button(this,{region:"north",name:y,font_size:g.parse(d),expresion:g.parse("(0, 0, "+f+", "+k+")")})).update()}b.config&&(y="config",(new a.Button(this,{region:"north",name:y,font_size:g.parse(d),action:"config",expresion:g.parse("("+
(n+f)+", 0, "+e+", "+k+")")})).update())}if(0<b.rowsSouth||0<w.length||b.init||b.clear){0>=b.rowsSouth?(q=b.height,b.rowsSouth=1):q=b.height*b.rowsSouth;u=c.width;D=0;b.init&&(D=h,u-=D);b.clear&&(u-=m);x=this.southSpace.container;x.setAttribute("id","descartesJS_southRegion");x.setAttribute("style","width:"+c.width+"px; height:"+q+"px; background:#c0c0c0; position:absolute; left: 0px; top:"+(c.height-q)+"px; z-index:100;");c.insertBefore(x,this.loader);x=Math.ceil(w.length/b.rowsSouth);C=u/x;r=0;
for(A=w.length;r<A;r++)w[r].expresion=g.parse("("+(D+C*(r%x))+","+b.height*Math.floor(r/x)+","+C+","+b.height+")"),w[r].drawif=g.parse("1"),w[r].init();b.init&&("espa\u00f1ol"==this.language?y="inicio":"english"==this.language&&(y="init"),(new a.Button(this,{region:"south",name:y,font_size:g.parse(d),action:"init",expresion:g.parse("(0, 0, "+h+", "+q+")")})).update());b.clear&&("espa\u00f1ol"==this.language?y="limpiar":"english"==this.language&&(y="clear"),(new a.Button(this,{region:"south",name:y,
font_size:g.parse(d),action:"clear",expresion:g.parse("("+(u+h)+", 0, "+m+", "+q+")")})).update())}if(0<z.length){r=c.height-k-q;l=b.widthEast;x=this.eastSpace.container;x.setAttribute("id","descartesJS_eastRegion");x.setAttribute("style","width:"+l+"px; height:"+r+"px; background:#c0c0c0; position:absolute; left:"+(c.width-l)+"px; top:"+k+"px; z-index:100;");c.insertBefore(x,this.loader);r=0;for(A=z.length;r<A;r++)z[r].expresion=g.parse("(0,"+b.height*r+","+l+","+b.height+")"),z[r].drawif=g.parse("1"),
z[r].init()}if(0<B.length){r=c.height-k-q;s=b.widthWest;x=this.westSpace.container;x.setAttribute("id","descartesJS_westRegion");x.setAttribute("style","width: "+s+"px; height: "+r+"px; background: #c0c0c0; position: absolute; left: 0px; top: "+k+"px; z-index: 100;");c.insertBefore(x,this.loader);r=0;for(A=B.length;r<A;r++)B[r].expresion=g.parse("(0,"+b.height*r+","+s+","+b.height+")"),B[r].drawif=g.parse("1"),B[r].init()}if(this.editableRegionVisible){t=b.height;x=this.editableRegion.container;x.setAttribute("id",
"descartesJS_editableRegion");x.setAttribute("style","width:"+c.width+"px; height:"+t+"px; position:absolute; left:0px; top:"+(c.height-q-b.height)+"px; z-index:100; background:#c0c0c0; overflow:hidden;");c.insertBefore(x,this.loader);g=this.editableRegion.textFields;b=c.width/g.length;d=a.getFieldFontSize(t);r=0;for(A=g.length;r<A;r++)"div"==g[r].type?(x.appendChild(g[r].container),g[r].container.setAttribute("style","font-family: Arial, Helvetica, 'Droid Sans', Sans-serif; width: "+(b-4)+"px; height: "+
t+"px; position: absolute; left: "+r*b+"px; top: 0px;"),f=g[r].container.firstChild,f.setAttribute("style","font-family: Arial, Helvetica, 'Droid Sans', Sans-serif; font-size: "+d+"px; padding-top: 0%; background-color: #e0e4e8; position: absolute; left: 0px; top: 0px; height:"+t+"px; text-align: center; line-height: "+t+"px;"),e=f.offsetWidth,f.style.width=e+"px",f.firstChild.textContent=f.firstChild.textContent.substring(3,f.firstChild.textContent.length-3),g[r].container.lastChild.setAttribute("style",
"font-family:'Courier New', Courier, 'Droid Sans Mono', Monospace; font-size: "+d+"px; width:"+(b-e)+"px; height:"+t+"px; position:absolute; left:"+e+"px; top:0px; border:2px groove white;")):(x.appendChild(g[r]),g[r].setAttribute("style","font-family:'Courier New', Courier, 'Droid Sans Mono', Monospace; font-size: "+d+"px; width:"+b+"px; height:"+t+"px; position:absolute; left:"+r*b+"px; top:0px; border:2px groove white;"))}this.displaceRegionNorth=k;this.displaceRegionWest=s;c.width-=l;c.height=
c.height-q-t;r=0;for(A=this.spaces.length;r<A;r++)this.spaces[r].init()};a.DescartesApp.prototype.update=function(){this.updateAuxiliaries();this.updateEvents();this.updateControls();this.updateSpaces()};a.DescartesApp.prototype.deactivateGraphiControls=function(){for(var a,b=0,c=this.controls.length;b<c;b++)a=this.controls[b],"graphic"==a.type&&a.deactivate()};a.DescartesApp.prototype.updateAuxiliaries=function(){for(var a=0,b=this.auxiliaries.length;a<b;a++)this.auxiliaries[a].update()};a.DescartesApp.prototype.updateEvents=
function(){for(var a=0,b=this.events.length;a<b;a++)this.events[a].update()};a.DescartesApp.prototype.updateControls=function(){for(var a=0,b=this.controls.length;a<b;a++)this.controls[a].update()};a.DescartesApp.prototype.updateSpaces=function(a){for(var b=0,c=this.spaces.length;b<c;b++)this.spaces[b].update(a)};a.DescartesApp.prototype.clear=function(){for(var a=0,b=this.spaces.length;a<b;a++)this.spaces[a].spaceChange=!0,this.spaces[a].drawBackground()};a.DescartesApp.prototype.play=function(){this.animation&&
this.animation.play()};a.DescartesApp.prototype.stop=function(){this.animation&&this.animation.stop()};a.DescartesApp.prototype.reinitAnimation=function(){this.animation&&this.animation.play()};a.DescartesApp.prototype.stopAudios=function(){this.stop();for(var a in this.audios)this.audios.hasOwnProperty(a)&&this.audios[a].pause&&(this.audios[a].pause(),this.audios[a].currentTime=0)};a.DescartesApp.prototype.getImage=function(a){var b=this.images;if(a)return b[a]||(b[a]=new Image,b[a].addEventListener("load",
function(){this.ready=1}),b[a].addEventListener("error",function(){this.errorload=1}),b[a].src=a),b[a]};a.DescartesApp.prototype.getAudio=function(a){var b=this.audios;if(a){if(!b[a]){var c=a.lastIndexOf("."),c=-1===c?a.lenght:c;a.substring(0,c);b[a]=new Audio(a);var d=function(){this.ready=1};b[a].addEventListener("canplaythrough",d);var f=function(){!this.canPlayType("audio/"+a.substring(a.length-3))&&"mp3"==a.substring(a.length-3)?(b[a]=new Audio(a.replace("mp3","ogg")),b[a].addEventListener("canplaythrough",
d),b[a].addEventListener("load",d),b[a].addEventListener("error",f),b[a].load()):(console.log("El archivo '"+a+"' no puede ser reproducido"),this.errorload=1)};b[a].addEventListener("error",f);b[a].play();setTimeout(function(){b[a].pause()},15)}return b[a]}return new Audio};a.DescartesApp.prototype.getControlByCId=function(a){for(var b,c=0,d=this.controls.length;c<d;c++)if(b=this.controls[c],b.cID==a)return b;return{update:function(){},w:0}};a.DescartesApp.prototype.getControlById=function(a){for(var b,
c=0,d=this.controls.length;c<d;c++)if(b=this.controls[c],b.id==a)return b;return{update:function(){}}};a.DescartesApp.prototype.getSpaceByCId=function(a){for(var b,c=0,d=this.spaces.length;c<d;c++)if(b=this.spaces[c],b.cID==a)return b;return{update:function(){},w:0}};a.DescartesApp.prototype.getSpaceById=function(a){for(var b,c=0,d=this.spaces.length;c<d;c++)if(b=this.spaces[c],b.id==a)return b;return{update:function(){},w:0}};var h;a.DescartesApp.prototype.getState=function(){var a,b="",c=this.evaluator.variables,
d;for(d in c)c.hasOwnProperty(d)&&(a=c[d],"string"==typeof a&&(a="'"+a+"'"),void 0!=a&&("rnd"!=d&&"pi"!=d&&"e"!=d&&"Infinity"!=d&&"-Infinity"!=d&&"object"!=typeof a)&&(b=""!=b?b+"\n"+d+"="+a:d+"="+a));var c=this.evaluator.vectors,h;for(h in c)c.hasOwnProperty(h)&&(a=c[h],b=b+"\n"+h+"="+f(a));h=this.evaluator.matrices;for(var e in h)h.hasOwnProperty(e)&&(a=h[e],b=b+"\n"+e+"="+f(a));return b};a.DescartesApp.prototype.setState=function(a){a=a.split("\n");for(var b,c,d=0,f=a.length;d<f;d++)b=a[d].split("="),
2<=b.length&&(c=eval(b[1]),-1!=b[1].indexOf("[[")?(this.evaluator.matrices[b[0]]=c,this.evaluator.matrices[b[0]].rows=c.length,this.evaluator.matrices[b[0]].cols=c[0].length):-1!=b[1].indexOf("[")?(this.evaluator.vectors[b[0]]=c,this.evaluator.variables[b[0]+".long"]=c.length):this.evaluator.variables[b[0]]=c),this.update()};a.DescartesApp.prototype.getEvaluation=function(){for(var a=0,b=0,c="",d=0,f=this.controls.length;d<f;d++)"textfield"==this.controls[d].gui&&this.controls[d].evaluate&&(a++,b+=
this.controls[d].ok,this.controls[d].value=""==this.controls[d].value?"''":this.controls[d].value,c+=" \\n "+this.controls[d].id+"="+this.controls[d].value+"|"+this.controls[d].ok);return"questions="+a+" \\n correct="+b+" \\n wrong="+(a-b)+c};a.DescartesApp.prototype.showSolution=function(){for(var a=this.controls,b=0,c=a.length;b<c;b++)"textfield"==a[b].gui&&a[b].evaluate&&a[b].changeValue(a[b].getFirstAnswer());this.update()};a.DescartesApp.prototype.showAnswer=function(){for(var a=0,b=this.saveState.length;a<
b;a++)this.evaluator.evalExpression(this.saveState[a]);this.update()};return a}(descartesJS||{}),descartesJS=function(a){function f(){a.getFeatures();if(a.hasCanvasSupport){for(var f=document.getElementsByTagName("*"),b=[],c=0,d=f.length;c<d;c++)"DescartesAppContainer"==f[c].className&&b.push(f[c]);c=0;for(d=b.length;c<d;c++)b[c].parentNode.removeChild(b[c]);for(var b=document.getElementsByTagName("applet"),c=document.getElementsByTagName("ajs"),f=[],h=0,e=b.length;h<e;h++)d=b[h],(d.getAttribute("code").match("DescartesJS")||
d.getAttribute("code").match("descinst.DescartesWeb2_0.class")||d.getAttribute("code").match("Descartes")||d.getAttribute("code").match("Arquimedes")||d.getAttribute("code").match("Discurso"))&&f.push(d);h=0;for(e=c.length;h<e;h++)d=c[h],(d.getAttribute("code").match("DescartesJS")||d.getAttribute("code").match("descinst.DescartesWeb2_0.class")||d.getAttribute("code").match("Descartes")||d.getAttribute("code").match("Arquimedes")||d.getAttribute("code").match("Discurso"))&&f.push(d);b=0;for(c=f.length;b<
c;b++)a.apps.push(new a.DescartesApp(f[b])),f[b].className="DescartesJS";window.addEventListener("resize",a.onResize);window.scrollTo(0,2)}else document.getElementById("StyleDescartesApps").innerHTML="applet.DescartesJS {display:block;} applet {display:block;} ajs.DescartesJS {display:block;} ajs {display:block;}"}if(a.loadLib)return a;a.apps=[];a.getDescartesApps=function(){return a.apps};if(!window.hasOwnProperty("debugDescartesJS")||!debugDescartesJS){var h=document.getElementById("StyleDescartesApps");
h&&h.parentNode.removeChild(h);h=document.createElement("style");h.id="StyleDescartesApps";h.type="text/css";h.setAttribute("rel","stylesheet");h.innerHTML="applet.DescartesJS {display:none;} applet {display:none;} ajs.DescartesJS {display:none;} ajs {display:none;}";document.head.appendChild(h)}a.onResize=function(){for(var f,b=0,c=a.apps.length;b<c;b++){f=a.apps[b].spaces;for(var d=0,h=f.length;d<h;d++)f[d].findOffset()}};a.receiveMessage=function(f){if(0<a.apps.length&&(f=f.data))if("set"===f.type)a.apps[0].evaluator.setVariable(f.name,
f.value);else if("update"===f.type)a.apps[0].update();else if("exec"===f.type){var b=a.apps[0].evaluator.getFunction(f.name),c=[];""!==f.value&&(c=f.value.toString().split(","));b&&b.apply(a.apps[0].evaluator,c)}};void 0==a.loadLib&&(a.loadLib=!0,window.addEventListener("load",f),window.addEventListener("message",a.receiveMessage));return a}(descartesJS||{});
