-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathturtle-soln-obf.js
More file actions
1 lines (1 loc) · 8.11 KB
/
Copy pathturtle-soln-obf.js
File metadata and controls
1 lines (1 loc) · 8.11 KB
1
var _0x52ee=["\x70\x6F\x70","\x74\x72\x69\x6D","\x20","\x73\x70\x6C\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x66\x6F\x72\x77\x61\x72\x64","\x72\x69\x67\x68\x74","\x6C\x65\x66\x74","\x63\x6D\x64\x56\x61\x6C\x75\x65","\x63\x6F\x6C\x6F\x72","\x72","\x67","\x62","\x6C\x6F\x6F\x70","\x7B","\x45\x78\x70\x65\x63\x74\x65\x64\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x62\x72\x61\x63\x65\x20\x61\x66\x74\x65\x72\x20\x6C\x6F\x6F\x70\x20\x63\x6F\x6D\x6D\x61\x6E\x64","\x63\x6F\x6E\x63\x61\x74","\x7D","\x0A","\x72\x65\x70\x6C\x61\x63\x65","\x72\x65\x76\x65\x72\x73\x65","\x43\x4F\x44\x45\x5F\x49\x44","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x76\x61\x6C\x75\x65","\x50\x49","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6C\x6F\x67","\x6F\x72\x69\x67\x69\x6E","\x63\x6F\x73","\x73\x69\x6E","\x75\x70","\x64\x6F\x77\x6E","\x64\x65\x6C\x65\x74\x65\x42\x75\x66\x66\x65\x72","\x63\x72\x65\x61\x74\x65\x42\x75\x66\x66\x65\x72","\x62\x69\x6E\x64\x42\x75\x66\x66\x65\x72","\x62\x75\x66\x66\x65\x72\x44\x61\x74\x61","\x69\x74\x65\x6D\x53\x69\x7A\x65","\x6E\x75\x6D\x4C\x69\x6E\x65\x73","\x6E\x75\x6D\x49\x74\x65\x6D\x73","\x4C\x4F\x41\x44\x5F\x42\x55\x54\x54\x4F\x4E\x5F\x49\x44","","\x63\x72\x65\x61\x74\x65","\x73\x65\x74","\x70\x75\x73\x68","\x49\x6E\x76\x61\x6C\x69\x64\x20\x70\x6F\x70\x4D\x61\x74\x72\x69\x78\x21","\x70\x4D\x61\x74\x72\x69\x78\x55\x6E\x69\x66\x6F\x72\x6D","\x75\x6E\x69\x66\x6F\x72\x6D\x4D\x61\x74\x72\x69\x78\x34\x66\x76","\x6D\x76\x4D\x61\x74\x72\x69\x78\x55\x6E\x69\x66\x6F\x72\x6D","\x76\x69\x65\x77\x70\x6F\x72\x74\x57\x69\x64\x74\x68","\x76\x69\x65\x77\x70\x6F\x72\x74\x48\x65\x69\x67\x68\x74","\x76\x69\x65\x77\x70\x6F\x72\x74","\x43\x4F\x4C\x4F\x52\x5F\x42\x55\x46\x46\x45\x52\x5F\x42\x49\x54","\x44\x45\x50\x54\x48\x5F\x42\x55\x46\x46\x45\x52\x5F\x42\x49\x54","\x63\x6C\x65\x61\x72","\x6F\x72\x74\x68\x6F","\x69\x64\x65\x6E\x74\x69\x74\x79","\x75\x73\x65\x50\x72\x6F\x67\x72\x61\x6D","\x76\x65\x72\x74\x65\x78\x50\x6F\x73\x69\x74\x69\x6F\x6E\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x76\x65\x72\x74\x65\x78\x41\x74\x74\x72\x69\x62\x50\x6F\x69\x6E\x74\x65\x72","\x76\x65\x72\x74\x65\x78\x43\x6F\x6C\x6F\x72\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x69\x6E\x65\x57\x69\x64\x74\x68","\x64\x72\x61\x77\x41\x72\x72\x61\x79\x73","\x6B\x65\x79\x43\x6F\x64\x65","\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65","\x4C","\x43\x6F\x6E\x74\x72\x6F\x6C","\x67\x65\x74\x4D\x6F\x64\x69\x66\x69\x65\x72\x53\x74\x61\x74\x65","\x74\x75\x72\x74\x6C\x65\x2D\x63\x61\x6E\x76\x61\x73","\x63\x6C\x65\x61\x72\x43\x6F\x6C\x6F\x72","\x65\x6E\x61\x62\x6C\x65","\x6F\x6E\x6B\x65\x79\x64\x6F\x77\x6E"];function parseLines(_0x434ax2){var _0x434ax3=[];while(_0x434ax2[_0x52ee[4]]>0){var _0x434ax4=_0x434ax2[_0x52ee[0]]();_0x434ax4=_0x434ax4[_0x52ee[1]]();var _0x434ax5=_0x434ax4[_0x52ee[3]](_0x52ee[2]);if(_0x434ax5[_0x52ee[4]]==0){continue };var _0x434ax6= new String(_0x434ax5[0]);var _0x434ax7=[];if(_0x434ax6==_0x52ee[5]||_0x434ax6==_0x52ee[6]||_0x434ax6==_0x52ee[7]){_0x434ax6[_0x52ee[8]]=parseFloat(_0x434ax5[1])}else {if(_0x434ax6==_0x52ee[9]){_0x434ax6[_0x52ee[10]]=parseFloat(_0x434ax5[1]);_0x434ax6[_0x52ee[11]]=parseFloat(_0x434ax5[2]);_0x434ax6[_0x52ee[12]]=parseFloat(_0x434ax5[3]);}else {if(_0x434ax6==_0x52ee[13]){if(_0x434ax5[2]!=_0x52ee[14]){throw new Error(_0x52ee[15])};var _0x434ax8=parseInt(_0x434ax5[1]);var _0x434ax9=parseLines(_0x434ax2);for(i=0;i<_0x434ax8;++i){_0x434ax7=_0x434ax7[_0x52ee[16]](_0x434ax9)};}else {if(_0x434ax6==_0x52ee[17]){return _0x434ax3}}}};if(_0x434ax7[_0x52ee[4]]>0){_0x434ax3=_0x434ax3[_0x52ee[16]](_0x434ax7)}else {_0x434ax3=_0x434ax3[_0x52ee[16]]([_0x434ax6])};};return _0x434ax3;}function parseText(_0x434axb){var _0x434ax2=_0x434axb[_0x52ee[19]](/\r\n/g,_0x52ee[18])[_0x52ee[3]](_0x52ee[18]);_0x434ax2[_0x52ee[20]]();return parseLines(_0x434ax2);}var lineVertexPositionBuffer;var lineVertexColorBuffer;var logCommands=false;function execute(){var _0x434ax10=document[_0x52ee[22]](_0x52ee[21]);var _0x434ax3=parseText(_0x434ax10[_0x52ee[23]]);var _0x434ax11=[];var _0x434ax12=[];numLines=0;var _0x434ax13=[0.0,0.0,0.0];var _0x434ax14=[1.0,1.0,1.0,0.0];var _0x434ax15=90*Math[_0x52ee[24]]/180.0;var _0x434ax16=true;for(i=0;i<_0x434ax3[_0x52ee[4]];++i){command=_0x434ax3[i];if(logCommands){if(command[_0x52ee[25]](_0x52ee[8])){console[_0x52ee[26]](command.valueOf()+_0x52ee[2]+command[_0x52ee[8]])}else {console[_0x52ee[26]](command.valueOf())}};if(command==_0x52ee[27]){_0x434ax13=[0.0,0.0,0.0];_0x434ax15=90*Math[_0x52ee[24]]/180.0;}else {if(command==_0x52ee[5]){var _0x434ax17=command[_0x52ee[8]];q=[_0x434ax13[0]+_0x434ax17*Math[_0x52ee[28]](_0x434ax15),_0x434ax13[1]+_0x434ax17*Math[_0x52ee[29]](_0x434ax15),0.0];if(_0x434ax16){_0x434ax11=_0x434ax11[_0x52ee[16]](_0x434ax13);_0x434ax11=_0x434ax11[_0x52ee[16]](q);_0x434ax12=_0x434ax12[_0x52ee[16]](_0x434ax14);_0x434ax12=_0x434ax12[_0x52ee[16]](_0x434ax14);++numLines;};_0x434ax13=q;}else {if(command==_0x52ee[6]){_0x434ax15-=command[_0x52ee[8]]*Math[_0x52ee[24]]/180.0}else {if(command==_0x52ee[7]){_0x434ax15+=command[_0x52ee[8]]*Math[_0x52ee[24]]/180.0}else {if(command==_0x52ee[9]){_0x434ax14=[command[_0x52ee[10]],command[_0x52ee[11]],command[_0x52ee[12]],1.0]}else {if(command==_0x52ee[30]){_0x434ax16=false}else {if(command==_0x52ee[31]){_0x434ax16=true}}}}}}};};gl[_0x52ee[32]](lineVertexPositionBuffer);lineVertexPositionBuffer=gl[_0x52ee[33]]();gl[_0x52ee[34]](gl.ARRAY_BUFFER,lineVertexPositionBuffer);gl[_0x52ee[35]](gl.ARRAY_BUFFER, new Float32Array(_0x434ax11),gl.STATIC_DRAW);lineVertexPositionBuffer[_0x52ee[36]]=3;lineVertexPositionBuffer[_0x52ee[37]]=numLines;lineVertexColorBuffer=gl[_0x52ee[33]]();gl[_0x52ee[34]](gl.ARRAY_BUFFER,lineVertexColorBuffer);gl[_0x52ee[35]](gl.ARRAY_BUFFER, new Float32Array(_0x434ax12),gl.STATIC_DRAW);lineVertexColorBuffer[_0x52ee[36]]=4;lineVertexColorBuffer[_0x52ee[38]]=numLines*2;drawScene();}function loadFile(_0x434ax19){readText(_0x434ax19);var _0x434ax1a=document[_0x52ee[22]](_0x52ee[39]);_0x434ax1a[_0x52ee[23]]=_0x52ee[40];}var mvMatrix=mat4[_0x52ee[41]]();var mvMatrixStack=[];var pMatrix=mat4[_0x52ee[41]]();function mvPushMatrix(){var _0x434ax1f=mat4[_0x52ee[41]]();mat4[_0x52ee[42]](mvMatrix,_0x434ax1f);mvMatrixStack[_0x52ee[43]](_0x434ax1f);}function mvPopMatrix(){if(mvMatrixStack[_0x52ee[4]]==0){throw _0x52ee[44]};mvMatrix=mvMatrixStack[_0x52ee[0]]();}function setMatrixUniforms(){gl[_0x52ee[46]](lshaderProgram[_0x52ee[45]],false,pMatrix);gl[_0x52ee[46]](lshaderProgram[_0x52ee[47]],false,mvMatrix);}function degToRad(_0x434ax23){return _0x434ax23*Math[_0x52ee[24]]/180}function initBuffers(){lineVertexPositionBuffer=gl[_0x52ee[33]]();gl[_0x52ee[34]](gl.ARRAY_BUFFER,lineVertexPositionBuffer);var _0x434ax25=2;var _0x434ax11=[-25.0,0.0,0.0,25.0,0.0,0.0,0.0,-25.0,0.0,0.0,25.0,0.0];var _0x434ax12=[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0];gl[_0x52ee[35]](gl.ARRAY_BUFFER, new Float32Array(_0x434ax11),gl.STATIC_DRAW);lineVertexPositionBuffer[_0x52ee[36]]=3;lineVertexPositionBuffer[_0x52ee[37]]=_0x434ax25;lineVertexColorBuffer=gl[_0x52ee[33]]();gl[_0x52ee[34]](gl.ARRAY_BUFFER,lineVertexColorBuffer);gl[_0x52ee[35]](gl.ARRAY_BUFFER, new Float32Array(_0x434ax12),gl.STATIC_DRAW);lineVertexColorBuffer[_0x52ee[36]]=4;}function drawScene(){gl[_0x52ee[50]](0,0,gl[_0x52ee[48]],gl[_0x52ee[49]]);gl[_0x52ee[53]](gl[_0x52ee[51]]|gl[_0x52ee[52]]);mat4[_0x52ee[54]](-100,100,-100,100,1,-1,pMatrix);mat4[_0x52ee[55]](mvMatrix);gl[_0x52ee[56]](lshaderProgram);mvPushMatrix();gl[_0x52ee[34]](gl.ARRAY_BUFFER,lineVertexPositionBuffer);gl[_0x52ee[58]](lshaderProgram[_0x52ee[57]],lineVertexPositionBuffer[_0x52ee[36]],gl.FLOAT,false,0,0);gl[_0x52ee[34]](gl.ARRAY_BUFFER,lineVertexColorBuffer);gl[_0x52ee[58]](lshaderProgram[_0x52ee[59]],lineVertexColorBuffer[_0x52ee[36]],gl.FLOAT,false,0,0);setMatrixUniforms();gl[_0x52ee[60]](0.5);gl[_0x52ee[61]](gl.LINES,0,lineVertexPositionBuffer[_0x52ee[37]]*2);mvPopMatrix();}function handleKeyDown(_0x434ax28){if(String[_0x52ee[63]](_0x434ax28[_0x52ee[62]])==_0x52ee[64]&&_0x434ax28[_0x52ee[66]](_0x52ee[65])){execute()}}function webGLStart(){checkFileAPI();var _0x434ax2a=document[_0x52ee[22]](_0x52ee[67]);initGL(_0x434ax2a);initShaders();initBuffers();gl[_0x52ee[68]](1.0,1.0,1.0,1.0);gl[_0x52ee[69]](gl.DEPTH_TEST);document[_0x52ee[70]]=handleKeyDown;execute();}