id='nameOne()' algoritmo='sí' expresión='1' hacer='TCLin=(_estado_==0)?OBGRA[selOBGRA,_name]:OBGRA[selOBGRA,_subix];TCL.set(&squot;S&squot;,TCLin);TCL.exec(&squot;cfgDisplay&squot;,&squot;2000,-100,300,50&squot;);(_estado_==0)?TCL.exec(&squot;setParams&squot;,&squot;16,4,1,1&squot;):TCL.exec(&squot;setParams&squot;,&squot;16,4,1,0&squot;);((_estado_==0)&(OBGRA[selOBGRA,_type]==angle))?TCL.exec(&squot;setParams&squot;,&squot;16,4,0,0&squot;):&squot;&squot;;((_estado_==0)&(OBGRA[selOBGRA,_type]==segment))?TCL.exec(&squot;setParams&squot;,&squot;16,4,1,0&squot;):&squot;&squot;;TCL.update();TCL.ready=1;' tipo='función' 
id='updateTheText()' algoritmo='sí' expresión='1' local='ix' inicio='the_text=_replace_(the_text,&squot;\page2&squot;,&squot;\lado2&squot;)' hacer='ix=_indexOf_(the_text,&squot;\lado2&squot;);oneSide=(ix<0);the_left_text=(ix>0)?_substring_(the_text,0,ix-1):the_text;the_right_text=(ix>=0)?_substring_(the_text,ix+7,_length_(the_text)):&squot;&squot;;the_left_text=((read_mode==rm_L)|read_mode==rm_R)?the_left_text+&squot;&squot;+the_right_text:the_left_text;safe=0;' tipo='función' 
id='getTheText(str)' algoritmo='sí' expresión='1' local='elajs,hasPASOS,aux,auxstr' inicio='the_title=extract(str,&squot;TITLE&squot;);the_text=extract(str,&squot;TEXT&squot;);hasPASOS=(_indexOf_(str,&squot;<PASO>&squot;)>=0);updateTheText();_pasos_=0;paso=0;;' hacer='auxstr=(_indexOf_(str,&squot;PASO&squot;)>=0)?extract(str,&squot;PASO&squot;):str;PASOS[_pasos_,0]=extract(auxstr,&squot;NOG&squot;);PASOS[_pasos_,1]=extract(auxstr,&squot;TEXT&squot;);PASOS[_pasos_,2]=&squot;hiddenColors:&squot;+extract(str,&squot;HCOLS&squot;);PASOS[_pasos_,3]=&squot;hiddenObjects:&squot;+extract(str,&squot;HOBJS&squot;);aux=extract(auxstr,&squot;3D&squot;);PASOS[_pasos_,4]=(aux!=&squot;&squot;)?_Eval_(aux):&squot;&squot;;aux=extract(auxstr,&squot;CAJA&squot;);PASOS[_pasos_,5]=(aux!=&squot;&squot;)?_Eval_(aux):0;aux=extract(auxstr,&squot;PLANOXY&squot;);PASOS[_pasos_,6]=(aux!=&squot;&squot;)?_Eval_(aux):1;PASOS[_pasos_,7]=0;aux=extract(auxstr,&squot;ANIM&squot;);PASOS[_pasos_,8]=(aux!=&squot;&squot;)?_Eval_(aux):&squot;&squot;;aux=extract(auxstr,&squot;SPACE&squot;);PASOS[_pasos_,9]=(aux==&squot;&squot;)?rm_R:aux;PASOS[_pasos_,9]=(aux==&squot;0&squot;)?rm_TR:aux;aux=extract(auxstr,&squot;LNGLN&squot;);PASOS[_pasos_,10]=(aux!=&squot;&squot;)?_Eval_(aux):0;aux=extract(auxstr,&squot;FAMS&squot;);PASOS[_pasos_,11]=(aux!=&squot;&squot;)?_Eval_(aux):-1;aux=extract(auxstr,&squot;EXPLORE&squot;);PASOS[_pasos_,12]=(aux!=&squot;&squot;)?_Eval_(aux):1;aux=extract(auxstr,&squot;NOMBRES&squot;);PASOS[_pasos_,13]=(aux!=&squot;&squot;)?_Eval_(aux):1;str=(!hasPASOS)?skip(str,&squot;TEXT&squot;):str;str=(!hasPASOS)?skip(str,&squot;SPACE&squot;):str;str=(hasPASOS)?skip(str,&squot;PASO&squot;):str;_pasos_=_pasos_+1;' mientras='(hasPASOS&(_indexOf_(str,&squot;<PASO>&squot;)>=0))|((!hasPASOS)&(_indexOf_(str,&squot;<TEXT>&squot;)>=0))' tipo='función' 
id='_____STEPS_____' expresión='0' tipo='variable' 
id='PASOS' matriz='sí' evaluar='una-sola-vez' columnas='20' filas='14' expresión='//0 NOGP;//1 el texto;//2 hidden colors;//3 hidden objects;//4 3D;//5 box;//6 planoxy;//7 selected;//8 animar;//9 spacepos;//10 longlines;//11 fams;//12 explore;//13 nombres;' tipo='matriz' 
id='cleanPASOS()' algoritmo='sí' expresión='1' local='j' inicio='_pasos_=1;paso=0;j=0' hacer='PASOS[j,0]=0;PASOS[j,1]=&squot;&squot;+(j+1)+&squot;.- Explicación.&squot;;PASOS[j,2]=&squot;hiddenColors:0,0,0,0,0,0,0,0,0,0&squot;;PASOS[j,3]=&squot;hiddenObjects:-1&squot;;PASOS[j,4]=&squot;&squot;;PASOS[j,5]=&squot;&squot;;PASOS[j,6]=&squot;&squot;;PASOS[j,7]=&squot;&squot;;PASOS[j,8]=&squot;&squot;;PASOS[j,9]=&squot;&squot;;PASOS[j,10]=&squot;&squot;;PASOS[j,11]=&squot;&squot;;PASOS[j,12]=&squot;&squot;;PASOS[j,13]=&squot;&squot;;j=j+1' mientras='j<PASOS.columnas' tipo='función' 
id='copyPasoFromTo(m,n)' algoritmo='sí' expresión='1' local='j' inicio='j=0' hacer='PASOS[n,j]=PASOS[m,j];j=j+1' mientras='j<=13' tipo='función' 
id='hiddenObjInThisStep(n)' algoritmo='sí' expresión='hidden' local='j,hidden' inicio='j=0' hacer='hidden=(HIDDENOBJ[paso,j]==n);j=j+1;' mientras='(!hidden)&(HIDDENOBJ[paso,j]>=minNOG)' tipo='función' 
id='hideColsInStep(n)' algoritmo='sí' expresión='1' local='str,ix,obj,j,k' inicio='str=_substring_(PASOS[n,2],13,_longitud_(PASOS[n,2]));j=0' hacer='ix=_indexOf_(str,&squot;,&squot;);obj=(ix>0)?_substring_(str,0,ix):str;str=(ix>0)?_substring_(str,ix+1,_longitud_(str)):&squot;&squot;;k=_Eval_(obj);HIDDENCOL[n,j]=k%2;HIDDENCOL[n,j+10]=ent((k/2))%2;HIDDENCOL[n,j+20]=ent((k/4))%2;j=j+1;;;' mientras='j<10' tipo='función' 
id='hideObjsInStep(n)' algoritmo='sí' expresión='1' local='str,ix,obj,j,num' inicio='str=_substring_(PASOS[n,3],14,_longitud_(PASOS[n,3]));j=0;HIDDENOBJ[n,j]=-1' hacer='ix=_indexOf_(str,&squot;,&squot;);obj=(ix>0)?_substring_(str,0,ix):str;str=(ix>0)?_substring_(str,ix+1,_longitud_(str)):&squot;&squot;;HIDDENOBJ[n,j]=_Eval_(obj);j=j+1;HIDDENOBJ[n,j]=-1' mientras='str!=&squot;&squot;' tipo='función' 
id='prepareHIDDENCOLs()' algoritmo='sí' expresión='1' local='n' inicio='PASOS[n,2]=(PASOS[n,2]==0)?&squot;hiddenColors:0,0,0,0,0,0,0,0,0,0&squot;:PASOS[n,2];n=0' hacer='hideColsInStep(n);n=n+1' mientras='n<_pasos_' tipo='función' 
id='prepareHIDDENOBJs()' algoritmo='sí' expresión='1' local='n' inicio='PASOS[n,3]=(PASOS[n,3]==0)?&squot;hiddenObjects:-1&squot;:PASOS[n,3];n=0' hacer='hideObjsInStep(n);n=n+1' mientras='n<_pasos_' tipo='función' 
id='hiddenColStr(n)' algoritmo='sí' expresión='str' local='j,str' inicio='str=&squot;hiddenColors:&squot;;str=&squot;&squot;;j=0' hacer='str=str+(HIDDENCOL[n,j]+HIDDENCOL[n,j+10]*2+HIDDENCOL[n,j+20]*4);j=j+1;str=(j<10)?str+&squot;,&squot;:str;;' mientras='j<10' tipo='función' 
id='hiddenObjStr(n)' algoritmo='sí' expresión='str' local='j,str' inicio='str=&squot;hiddenObjects:&squot;;str=&squot;&squot;;j=0' hacer='str=str+HIDDENOBJ[n,j];j=j+1;str=(HIDDENOBJ[n,j]>=minNOG)?str+&squot;,&squot;:str;' mientras='HIDDENOBJ[n,j]>=minNOG' tipo='función' 
id='switchToStepCols(paso)' algoritmo='sí' expresión='1' local='n' inicio='n=0' hacer='COL[getColor(n),_hidden]=HIDDENCOL[paso,n];n=n+1;' mientras='n<30' tipo='función' 
id='switchToStepObjs(paso)' algoritmo='sí' expresión='1' local='j,n' inicio='j=0' hacer='n=max(HIDDENOBJ[paso,j],0);OBGRA[n,_oculto]=(n>=minNOG)?1:OBGRA[n,_oculto];j=j+1;' mientras='HIDDENOBJ[paso,j]>=minNOG' tipo='función' 
id='getPasoNOG(paso)' algoritmo='sí' expresión='nog' local='nog' hacer='nog=((PASOS[paso,0]!=&squot;&squot;)&(PASOS[paso,0]!=0))?_Eval_(&squot;&squot;+PASOS[paso,0])+1:maxNOG;nog=(nog<101)?maxNOG:nog;nog=min(nog,maxNOG);PASOS[paso,0]=nog-1;;;' tipo='función' 
id='saveStepCols(paso)' algoritmo='sí' expresión='1' local='n' inicio='n=0' hacer='HIDDENCOL[paso,n]=COL[getColor(n),_hidden];n=n+1;' mientras='n<30' tipo='función' 
id='saveStepObjs(paso)' algoritmo='sí' expresión='1' local='n,j,itIs' inicio='j=0;HIDDENOBJ[paso,j]=-1;n=minNOG' hacer='HIDDENOBJ[paso,j+1]=-1;itIs=OBGRA[n,_oculto];HIDDENOBJ[paso,j]=(itIs)?n:HIDDENOBJ[paso,j];j=(itIs)?j+1:j;n=n+1' mientras='n<NOG' tipo='función' 
id='saveStepInfo(paso)' algoritmo='sí' expresión='1' hacer='saveStepCols(paso);saveStepObjs(paso);PASOS[paso,4]=show_E3;PASOS[paso,5]=caja;PASOS[paso,6]=planoxy;PASOS[paso,7]=0;PASOS[paso,8]=_anim_on_;PASOS[paso,9]=read_mode;PASOS[paso,10]=lngln;PASOS[paso,11]=fams;PASOS[paso,12]=b_EA;PASOS[paso,13]=show_names;' tipo='función' 
id='switchToStepInfo(paso)' algoritmo='sí' expresión='1' inicio='MostrarTodo()' hacer='texto_editado=PASOS[paso,1];texto_editado.update();the_text=texto_editado;PASOS[paso,1]=_replace_(the_text,&squot;\page2&squot;,&squot;\lado2&squot;);updateTheText();switchToStepObjs(paso);switchToStepCols(paso);countCurvasYReglados();show_E3=PASOS[paso,4];show_E2=!show_E3;caja=PASOS[paso,5];planoxy=PASOS[paso,6];selOBGRA=((PASOS[paso,7]!=&squot;&squot;)&(PASOS[paso,7]>100))?PASOS[paso,7]:-1;lngln=(PASOS[paso,10]!=&squot;&squot;)?PASOS[paso,10]:0;fams=(PASOS[paso,11]!=&squot;&squot;)?PASOS[paso,11]:0;_animate_=(PASOS[paso,8]&!_anim_on_)?play():0;_anim_on_=(PASOS[paso,8])?_anim_on_:0;setReadMode(PASOS[paso,9]);updateViewMode();b_EA=PASOS[paso,12];show_names=PASOS[paso,13];E_touched=0;T_touched=0;_CLEAN_=1;' tipo='función' 
id='goToStep(step)' algoritmo='sí' expresión='paso' hacer='paso=min(max(0,step),_pasos_-1);NOGP=getPasoNOG(paso);switchToStepInfo(paso);status=(PASOS[paso,12])?explorar:girar;;;' tipo='función' 
id='goToPrevStep()' algoritmo='sí' expresión='paso' local='elpaso' hacer='saveStepInfo(paso);elpaso=max(0,paso-1);goToStep(elpaso);;' tipo='función' 
id='goToNextStep()' algoritmo='sí' expresión='paso' local='elpaso' hacer='saveStepInfo(paso);elpaso=min(paso+1,_pasos_-1);goToStep(elpaso);;;' tipo='función' 
id='shift_HIDDENCOL(m,n)' algoritmo='sí' expresión='1' local='j' inicio='j=0' hacer='HIDDENCOL[n,j]=HIDDENCOL[m,j];j=j+1;' mientras='j<30' tipo='función' 
id='shift_HIDDENOBJ(m,n)' algoritmo='sí' expresión='1' local='quit,j' inicio='j=0' hacer='HIDDENOBJ[n,j]=HIDDENOBJ[m,j];quit=(HIDDENOBJ[m,j]<minNOG);j=j+1;' mientras='(!quit)' tipo='función' 
id='insert_paso()' algoritmo='sí' expresión='1' local='n' inicio='saveStepInfo(paso);n=_pasos_;_pasos_=_pasos_+1;NOGP=NOG' hacer='copyPasoFromTo(n,n+1);shift_HIDDENCOL(n,n+1);shift_HIDDENOBJ(n,n+1);n=n-1;;' mientras='n>=paso' tipo='función' 
id='delete_paso()' algoritmo='sí' expresión='1' local='n,last,doit' inicio='_pasos_=max(_pasos_-1,0);paso=min(paso,_pasos_-1);texto_editado=PASOS[paso,1];goToStep(paso);n=paso;_CLEAN_=1' hacer='doit=(n<=_pasos_-1);(doit)?copyPasoFromTo(n+1,n):&squot;&squot;;(doit)?shift_HIDDENCOL(n+1,n):&squot;&squot;;(doit)?shift_HIDDENOBJ(n+1,n):&squot;&squot;;n=n+1;;' mientras='n<_pasos_' tipo='función' 
id='ReplaceInPASOS(str1,str2)' algoritmo='sí' expresión='1' local='n' inicio='n=0' hacer='PASOS[n,1]=_replace_(PASOS[n,1],str1,str2);n=n+1;;' mientras='n<_pasos_' tipo='función' 
id='Guardar_HIDDENs()' algoritmo='sí' expresión='1' local='n' inicio='n=0' hacer='PASOS[n,2]=hiddenColStr(n);PASOS[n,3]=hiddenObjStr(n);n=n+1' mientras='n<_pasos_' tipo='función' 
id='Guardar_Textos()' algoritmo='sí' expresión='s' local='s,auxstr,n' inicio='s=&squot;&squot;;n=0' hacer='s=s+&squot;\r\n<PASO>&squot;;s=s+&squot;\r\n<NOG>&squot;+PASOS[n,0]+&squot;</NOG>&squot;;s=s+&squot;\r\n<SPACE>&squot;+PASOS[n,9]+&squot;</SPACE>&squot;;auxstr=_replace_(PASOS[n,1],&squot;\n&squot;,&squot;\ln&squot;);auxstr=_replace_(auxstr,&squot;\ln&squot;,&squot;\r\n&squot;);s=s+&squot;\r\n<TEXT>&squot;+auxstr+&squot;</TEXT>&squot;;s=s+&squot;\r\n<HCOLS>&squot;+PASOS[n,2]+&squot;</HCOLS>&squot;;s=s+&squot;\r\n<HOBJS>&squot;+PASOS[n,3]+&squot;</HOBJS>&squot;;s=s+&squot;\r\n<3D>&squot;+PASOS[n,4]+&squot;</3D>&squot;;s=s+&squot;\r\n<CAJA>&squot;+PASOS[n,5]+&squot;</CAJA>&squot;;s=s+&squot;\r\n<PLANOXY>&squot;+PASOS[n,6]+&squot;</PLANOXY>&squot;;s=s+&squot;\r\n<LNGLN>&squot;+PASOS[n,10]+&squot;</LNGLN>&squot;;//s=s+&squot;\r\n<SELECT>&squot;+PASOS[n,7]+&squot;</SELECT>&squot;;s=s+&squot;\r\n<ANIM>&squot;+PASOS[n,8]+&squot;</ANIM>&squot;;s=s+&squot;\r\n<FAMS>&squot;+PASOS[n,11]+&squot;</FAMS>&squot;;s=s+&squot;\r\n<EXPLORE>&squot;+PASOS[n,12]+&squot;</EXPLORE>&squot;;s=s+&squot;\r\n<NOMBRES>&squot;+PASOS[n,13]+&squot;</NOMBRES>&squot;;s=s+&squot;\r\n</PASO>\r\n&squot;;n=n+1;' mientras='n<_pasos_' tipo='función' 
id='_____IO_____' expresión='0' tipo='variable' 
id='getFileName()' algoritmo='sí' expresión='1' local='fn' inicio='fn=DJS.fileName' hacer='ix=_indexOf_(fn,&squot;.&squot;);the_ext=_substring_(fn,ix+1,_length_(fn));the_file_name=(ix>=0)?_substring_(fn,0,ix):fn;text_or_scene=(the_ext==&squot;pg3&squot;)' tipo='función' 
id='CONSTRUCTION' matriz='sí' evaluar='una-sola-vez' columnas='250' filas='5' expresión='_construction_string=0;_object_color=1;_object_size=2;_object_name=3;_object_subix=4;;' tipo='matriz' 
id='Guardar_ctrlConstr(p)' algoritmo='sí' expresión='str' local='str,prefix' hacer='constriction=(isNum(OBGRA[p,_cnstr]))?OBGRA[p,_cnstr]:&squot;\u0027&squot;+OBGRA[p,_cnstr]+&squot;\u0027&squot;;prefix=&squot;&squot;;prefix=(isNum(constriction)&(OBGRA[constriction,_type]==circle))?&squot;C_&squot;:prefix;prefix=(isNum(constriction)&(OBGRA[constriction,_type]==segment))?&squot;L_&squot;:prefix;str=&squot;P_&squot;+p+&squot;:=newCnstrGCtrl3D(\u0027&squot;+OBGRA[p,_name]+&squot;\u0027,\u0027&squot;+OBGRA[p,_subix]+&squot;\u0027,&squot;+rNd(12,X2(p))+&squot;,&squot;+rNd(12,Y2(p))+&squot;,&squot;+rNd(12,Z2(p))+&squot;,&squot;+prefix+constriction+&squot;,&squot;+COL[OBGRA[p,_col],_colname]+&squot;,&squot;+OBGRA[p,_wdth]+&squot;,\u0027&squot;+OBGRA[p,_show]+&squot;\u0027)&squot;;' tipo='función' 
id='Guardar_CONSTRUCTION()' algoritmo='sí' expresión='1' local='k,p' inicio='k=0' hacer='p=k+101;CONSTRUCTION[k,_construction_string]=(OBGRA[p,_type]==control)?Guardar_ctrlConstr(p):OBGRA[p,_constr];CONSTRUCTION[k,_construction_string]=_replace_(CONSTRUCTION[k,_construction_string],&squot;OBGRA[p,_r]&squot;,&squot;\u0027&squot;+OBGRA[p,_r]+&squot;\u0027&squot;);CONSTRUCTION[k,_object_color]=COL[OBGRA[p,_col],_colname];CONSTRUCTION[k,_object_size]=OBGRA[p,_wdth]+10*OBGRA[p,_linestyle];CONSTRUCTION[k,_object_name]=OBGRA[p,_name];CONSTRUCTION[k,_object_subix]=OBGRA[p,_subix];k=k+1' mientras='k<(NOG-101)' tipo='función' 
id='Guardar_getAppStr(_name_)' algoritmo='sí' expresión='str' local='str,auxstr,rndr' inicio='saveStepInfo(paso);str=&squot;&squot;;rndr=10000' hacer='str=str+&squot;<APP>&squot;+the_title+&squot;</APP>\r\n&squot;;;str=str+&squot;\r\n<AUX>\r\n&squot;;str=str+&squot;_escala_=&squot;+rNd(12,_escala_)+&squot;\r\n&squot;;str=str+&squot;_Ox_=&squot;+r4d(E2.Ox)+&squot;\r\n&squot;;str=str+&squot;_Oy_=&squot;+r4d(E2.Oy)+&squot;\r\n&squot;;str=str+&squot;_nNOG_=&squot;+(NOG-101)+&squot;\r\n&squot;;str=str+&squot;_pasos_=&squot;+_pasos_+&squot;\r\n&squot;;;str=str+&squot;E3.rot.x=&squot;+r4d(E3.rot.x)+&squot;\r\n&squot;;str=str+&squot;E3.rot.y=&squot;+r4d(E3.rot.y)+&squot;\r\n&squot;;str=str+&squot;E3.rot.z=&squot;+r4d(E3.rot.z)+&squot;\r\n&squot;;str=str+&squot;Ex.Oy=&squot;+r4d(Ex.Oy)+&squot;\r\n&squot;;str=str+&squot;show_E2=&squot;+show_E2+&squot;\r\n&squot;;str=str+&squot;show_E3=&squot;+show_E3+&squot;\r\n&squot;;str=(!euclideana)?str+&squot;proyectiva=1\r\n&squot;:str;str=str+&squot;planoxy=&squot;+planoxy+&squot;\r\n&squot;;str=str+&squot;caja=&squot;+caja+&squot;\r\n&squot;;str=str+&squot;showFlechas=&squot;+showFlechas+&squot;\r\n&squot;;str=str+&squot;bg_img=&squot;+bg_img+&squot;\r\n&squot;;str=str+&squot;bg_img_x=&squot;+bg_img_x+&squot;\r\n&squot;;str=str+&squot;bg_img_y=&squot;+bg_img_y+&squot;\r\n&squot;;str=str+&squot;bg_img_a=&squot;+bg_img_a+&squot;\r\n&squot;;str=str+&squot;bg_img_amp=&squot;+bg_img_amp+&squot;\r\n&squot;;str=str+&squot;</AUX>\r\n\r\n&squot;;;ROTAR[0,0]=r4d(E3Rxx);ROTAR[0,1]=r4d(E3Rxy);ROTAR[0,2]=r4d(E3Rxz);ROTAR[1,0]=r4d(E3Ryx);ROTAR[1,1]=r4d(E3Ryy);ROTAR[1,2]=r4d(E3Ryz);ROTAR[2,0]=r4d(E3Rzx);ROTAR[2,1]=r4d(E3Rzy);ROTAR[2,2]=r4d(E3Rzz);;ROTAR.columnas_usadas=3;ROTAR.filas_usadas=3;str=str+_MatrixToStr_(&squot;ROTAR&squot;)+&squot;\r\n\r\n&squot;;;Guardar_CONSTRUCTION();CONSTRUCTION.columnas_usadas=(NOG-101);CONSTRUCTION.filas_usadas=5;str=str+_MatrixToStr_(&squot;CONSTRUCTION&squot;)+&squot;\r\n&squot;;;Guardar_HIDDENs();str=str+&squot;\r\n<PASOS>\r\n&squot;+Guardar_Textos()+&squot;\r\n</PASOS>\r\n&squot;;' tipo='función' 
id='Leer_mkCnst(_nNOG_)' algoritmo='sí' expresión='1' local='n' inicio='n=0' hacer='_Eval_(CONSTRUCTION[n,_construction_string]);OBGRA[NOG-1,_col]=_Eval_(CONSTRUCTION[n,_object_color]);OBGRA[NOG-1,_wdth]=ent(CONSTRUCTION[n,_object_size])%10;OBGRA[NOG-1,_linestyle]=ent(ent(CONSTRUCTION[n,_object_size])/10) ;OBGRA[NOG-1,_name]=CONSTRUCTION[n,_object_name];OBGRA[NOG-1,_subix]=CONSTRUCTION[n,_object_subix];n=n+1' mientras='n<_nNOG_' tipo='función' 
id='Leer_setAppStr(str)' algoritmo='sí' expresión='1' local='_nNOG_,A,cz,sz,cy,sy,hayROTAR,proyectiva' inicio='_anim_on_=0;isPlaying=0;audio.stop();the_Content=str;_pasos_=-1;inicio();' hacer='the_title0=extract(str,&squot;APP&squot;);str=_replace_(str,&squot;newArmonicReflexion&squot;,&squot;newHarmonicReflection&squot;);str=_replace_(str,&squot;newPolarAxis2D&squot;,&squot;newRadicalAxis&squot;);showFlechas=0;proyectiva=0;_ExecBlock_(str,&squot;AUX&squot;);_escala_=max(0.000001,_escala_);fams=(show_E2)?3:0;euclideana=(!proyectiva);E2.Ox=_Ox_;E2.Oy=_Oy_;E3.rot.x=0;E3.rot.y=0;E3.rot.z=0;hayROTAR=(_indexOf_(str,&squot;<ROTAR>&squot;)>=0);(hayROTAR)?_StrToMatrix_(str,&squot;ROTAR&squot;):&squot;&squot;;initE3R(hayROTAR,E3.rot.y,E3.rot.z);_StrToMatrix_(str,&squot;CONSTRUCTION&squot;);(_nNOG_>0)?Leer_mkCnst(_nNOG_):&squot;&squot;;_pasos_=(str==&squot;&squot;)?1:_pasos_;b_EA=1;PASOS[0,12]=1;PASOS[0,13]=1;(_indexOf_(str,&squot;HCOLS&squot;)>=0)?getTheText(extract(str,&squot;PASOS&squot;)):_StrToMatrix_(str,&squot;PASOS&squot;);the_title= the_title0;ReplaceInPASOS(&squot;\ln&squot;,&squot;\n&squot;);prepareHIDDENOBJs();prepareHIDDENCOLs();maxNOG=NOG;paso=0;NOGP=getPasoNOG(paso);goToStep(paso);view_mode=(onlyViewer)?vm_view:view_mode;updateViewMode();view_mode_ant=-1;safe=1;;;' tipo='función' 
id='Leer_URL(url)' algoritmo='sí' expresión='1' local='ispg3' hacer='the_Content=_Load_(url);ispg3=(_indexOf_(the_Content,&squot;<APP>&squot;)>=0);url=(!ispg3)?url+&squot;.pg3&squot;:url;the_Content=(!ispg3)?_Load_(url):the_Content;ispg3=(_indexOf_(the_Content,&squot;<APP>&squot;)>=0);url=(!ispg3)?url+&squot;.txt&squot;:url;the_Content=(!ispg3)?_Load_(url):the_Content;ispg3=(_indexOf_(the_Content,&squot;<APP>&squot;)>=0);(ispg3)?Leer_setAppStr(the_Content):inicio();_file_name_=&squot;sin_nombre.pg3&squot;;;;;' tipo='función' 
id='callback_openFile()' algoritmo='sí' expresión='1' hacer='the_Content=DJS.fileContent;_file_name_=DJS.fileName;the_title=the_file_name=_substring_(_file_name_,_indexOf_(_file_name_,&squot;.&squot;));((the_Content!=&squot;&squot;)&(_indexOf_(the_Content,&squot;<APP>&squot;)>=0))?Leer_setAppStr(the_Content):inicio();_file_name_=(the_Content==&squot;&squot;)?&squot;sin_nombre.pg3&squot;:_file_name_;openingfile=0;;;;;' tipo='función'