(function(B,C,D,E,F,G,H,I,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,n,Y,Z,$,aa,ba,ca,da,ea,fa,l,ga,ha,ia,ja,ka,r,q,t,u,v,p,w,la,s,ma,x,na,y,z,A){r("J.viewer");c$=y(J.viewer,"JmolStateCreator");r("J.viewer");t(["J.viewer.JmolStateCreator","java.util.Hashtable"],"J.viewer.StateCreator","java.lang.Boolean $.Float java.util.Arrays $.Date javajs.awt.Font JU.BS $.List $.P3 $.PT $.SB $.V3 J.constant.EnumAxesMode $.EnumPalette $.EnumStereoMode $.EnumStructure $.EnumVdw J.modelset.Atom $.AtomCollection $.Bond $.BondSet J.shape.Shape J.util.BSUtil $.C $.ColorEncoder $.Escape $.JmolEdge $.Logger J.viewer.AnimationManager $.GlobalSettings $.JC $.StateManager $.Viewer".split(" "),
function(){c$=v(function(){this.temp3=this.temp2=this.temp=this.viewer=null;this.undoWorking=!1;u(this,arguments)},J.viewer,"StateCreator",J.viewer.JmolStateCreator);z(c$,function(){this.temp=new java.util.Hashtable;this.temp2=new java.util.Hashtable;this.temp3=new java.util.Hashtable});w(c$,function(){A(this,J.viewer.StateCreator,[])});l(c$,"setViewer",function(a){this.viewer=a},"J.viewer.Viewer");l(c$,"getStateScript",function(a,b,c){var d=null==a||a.equalsIgnoreCase("all"),e=new JU.SB,f=d?(new JU.SB).append("function _setState() {\n"):
null;d&&e.append("# Jmol state version "+J.viewer.Viewer.getJmolVersion()+";\n");this.viewer.isApplet()&&d&&(J.viewer.StateCreator.appendCmd(e,"# fullName = "+J.util.Escape.eS(this.viewer.fullName)),J.viewer.StateCreator.appendCmd(e,"# documentBase = "+J.util.Escape.eS(this.viewer.appletDocumentBase)),J.viewer.StateCreator.appendCmd(e,"# codeBase = "+J.util.Escape.eS(this.viewer.appletCodeBase)),e.append("\n"));var g=this.viewer.global;(d||a.equalsIgnoreCase("windowState"))&&e.append(this.getWindowState(f,
b,c));(d||a.equalsIgnoreCase("fileState"))&&e.append(this.getFileState(f));(d||a.equalsIgnoreCase("definedState"))&&e.append(this.getDefinedState(f,!0));(d||a.equalsIgnoreCase("variableState"))&&e.append(this.getVariableState(g,f));(d||a.equalsIgnoreCase("dataState"))&&e.append(this.getDataState(f));(d||a.equalsIgnoreCase("modelState"))&&e.append(this.getModelState(f,!0,this.viewer.getBooleanProperty("saveProteinStructureState")));(d||a.equalsIgnoreCase("colorState"))&&e.append(this.getColorState(this.viewer.colorManager,
f));(d||a.equalsIgnoreCase("frameState"))&&e.append(this.getAnimState(this.viewer.animationManager,f));(d||a.equalsIgnoreCase("perspectiveState"))&&e.append(this.getViewState(this.viewer.transformManager,f));(d||a.equalsIgnoreCase("selectionState"))&&e.append(this.getSelectionState(this.viewer.selectionManager,f));null!=f&&(J.viewer.StateCreator.appendCmd(f,"set refreshing true"),J.viewer.StateCreator.appendCmd(f,"set antialiasDisplay "+g.antialiasDisplay),J.viewer.StateCreator.appendCmd(f,"set antialiasTranslucent "+
g.antialiasTranslucent),J.viewer.StateCreator.appendCmd(f,"set antialiasImages "+g.antialiasImages),this.viewer.getSpinOn()&&J.viewer.StateCreator.appendCmd(f,"spin on"),f.append("}\n\n_setState;\n"));d&&e.appendSB(f);return e.toString()},"~S,~N,~N");n(c$,"getDataState",function(a){var b=new JU.SB,c=!1,d=this.getAtomicPropertyState(-1,null);0<d.length&&(c=!0,b.append(d));null!=this.viewer.userVdws&&(d=this.viewer.getDefaultVdwNameOrData(0,J.constant.EnumVdw.USER,this.viewer.bsUserVdws),0<d.length&&
(c=!0,b.append(d)));null!=this.viewer.nmrCalculation&&(c=(new Boolean(c|this.viewer.nmrCalculation.getState(b))).valueOf());null!=this.viewer.dataManager&&(c=(new Boolean(c|this.viewer.dataManager.getDataState(this,b))).valueOf());if(!c)return"";c="";null!=a&&(a.append("  _setDataState;\n"),c="function _setDataState() {\n",b.append("}\n\n"));return c+b.toString()},"JU.SB");n(c$,"getDefinedState",function(a,b){var c=this.viewer.modelSet,d=c.stateScripts.size();if(0==d)return"";for(var e=!1,f=new JU.SB,
g,j=0;j<d;j++){var k=c.stateScripts.get(j);if(k.inDefinedStateBlock&&0<(g=k.toString()).length)f.append("  ").append(g).append("\n"),e=!0}if(!e)return"";g="";b&&null!=a&&(a.append("  _setDefinedState;\n"),g="function _setDefinedState() {\n\n");null!=a&&f.append("\n}\n\n");return g+f.toString()},"JU.SB,~B");l(c$,"getModelState",function(a,b,c){var d=new JU.SB;b&&null!=a&&(a.append("  _setModelState;\n"),d.append("function _setModelState() {\n"));var e,f=this.viewer.modelSet,g=f.bonds,j=f.models,k=
f.modelCount;if(b){for(var m=f.stateScripts.size(),h=0;h<m;h++){var l=f.stateScripts.get(h);!l.inDefinedStateBlock&&0<(e=l.toString()).length&&d.append("  ").append(e).append("\n")}e=new JU.SB;for(h=0;h<f.bondCount;h++)if(!j[g[h].atom1.modelIndex].isModelKit&&(g[h].isHydrogen()||0!=(g[h].order&131072)))m=g[h],l=m.atom1.index,m.atom1.getGroup().isAdded(l)&&(l=-1-l),e.appendI(l).appendC("\t").appendI(m.atom2.index).appendC("\t").appendI(m.order&-131073).appendC("\t").appendF(m.mad/1E3).appendC("\t").appendF(m.getEnergy()).appendC("\t").append(J.util.JmolEdge.getBondOrderNameFromOrder(m.order)).append(";\n");
0<e.length()&&d.append('data "connect_atoms"\n').appendSB(e).append('end "connect_atoms";\n');d.append("\n")}if(f.haveHiddenBonds){e=new J.modelset.BondSet;for(h=f.bondCount;0<=--h;)0!=g[h].mad&&0==(g[h].shapeVisibilityFlags&J.modelset.Bond.myVisibilityFlag)&&e.set(h);e.isEmpty()?f.haveHiddenBonds=!1:d.append("  hide ").append(J.util.Escape.eBond(e)).append(";\n")}this.viewer.setModelVisibility();c&&d.append(f.getProteinStructureState(null,b,!1,0));this.getShapeState(d,b,2147483647);if(b){c=!1;for(h=
0;h<k;h++)if(j[h].isJmolDataFrame){c=!0;break}for(h=0;h<k;h++)g="  frame "+f.getModelNumberDotted(h),e=f.getModelAuxiliaryInfoValue(h,"modelID"),null!=e&&!e.equals(f.getModelAuxiliaryInfoValue(h,"modelID0"))&&d.append(g).append("; frame ID ").append(J.util.Escape.eS(e)).append(";\n"),e=f.frameTitles[h],null!=e&&0<e.length&&d.append(g).append("; frame title ").append(J.util.Escape.eS(e)).append(";\n"),c&&(null!=j[h].orientation&&!f.isTrajectorySubFrame(h))&&d.append(g).append("; ").append(j[h].orientation.getMoveToText(!1)).append(";\n"),
0!=j[h].frameDelay&&!f.isTrajectorySubFrame(h)&&d.append(g).append("; frame delay ").appendF(j[h].frameDelay/1E3).append(";\n"),null!=j[h].simpleCage&&(d.append(g).append("; unitcell ").append(J.util.Escape.eAP(j[h].simpleCage.getUnitCellVectors())).append(";\n"),this.getShapeState(d,b,33));c=!1;if(null!=f.unitCells){g=!1;for(h=0;h<k;h++)if(e=f.getUnitCell(h),null!=e){d.append("  frame ").append(f.getModelNumberDotted(h));m=e.getFractionalOffset();if(null!=m&&(0!=m.x||0!=m.y||0!=m.z))d.append("; set unitcell ").append(J.util.Escape.eP(m)),
c=!0;m=e.getUnitCellMultiplier();null!=m&&(d.append("; set unitcell ").append(J.util.Escape.eP(m)),c=!0);d.append(";\n");g=(new Boolean(g|0<=this.viewer.modelGetLastVibrationIndex(h,1276121113))).valueOf()}c&&this.viewer.loadShape(33);this.getShapeState(d,b,33);if(g){b=new java.util.Hashtable;for(h=k;0<=--h;)if(0<=(k=this.viewer.modelGetLastVibrationIndex(h,1276121113)))for(f=j[h].firstAtomIndex;f<=k;f++)c=this.viewer.getVibration(f),null!=c&&J.util.BSUtil.setMapBitSet(b,f,f,c.getState());e=this.getCommands(b,
null,"select");d.append(e)}}d.append("  set fontScaling "+this.viewer.getBoolean(603979845)+";\n");this.viewer.getBoolean(603979883)&&d.append("  set modelKitMode true;\n")}null!=a&&d.append("\n}\n\n");return d.toString()},"JU.SB,~B,~B");n(c$,"getShapeState",function(a,b,c){var d=this.viewer.shapeManager.shapes;if(null!=d){var e,f,g;2147483647==c?(c=0,g=36):g=c+1;for(;c<g;++c)null!=(f=d[c])&&((b||J.viewer.JC.isShapeSecondary(c))&&null!=(e=f.getShapeState())&&1<e.length)&&a.append(e);a.append("  select *;\n")}},
"JU.SB,~B,~N");n(c$,"getWindowState",function(a,b,c){var d=this.viewer.global,e=new JU.SB;null!=a&&(a.append("  initialize;\n  set refreshing false;\n  _setWindowState;\n"),e.append("\nfunction _setWindowState() {\n"));0!=b&&e.append("# preferredWidthHeight ").appendI(b).append(" ").appendI(c).append(";\n");e.append("# width ").appendI(0==b?this.viewer.getScreenWidth():b).append(";\n# height ").appendI(0==c?this.viewer.getScreenHeight():c).append(";\n");J.viewer.StateCreator.appendCmd(e,"stateVersion = "+
d.getParameter("_version"));J.viewer.StateCreator.appendCmd(e,"background "+J.util.Escape.escapeColor(d.objColors[0]));for(b=1;8>b;b++)0!=d.objColors[b]&&J.viewer.StateCreator.appendCmd(e,J.viewer.StateManager.getObjectNameFromId(b)+'Color = "'+J.util.Escape.escapeColor(d.objColors[b])+'"');null!=d.backgroundImageFileName&&J.viewer.StateCreator.appendCmd(e,"background IMAGE /*file*/"+J.util.Escape.eS(d.backgroundImageFileName));e.append(this.getSpecularState());J.viewer.StateCreator.appendCmd(e,"statusReporting  = "+
d.statusReporting);null!=a&&e.append("}\n\n");return e.toString()},"JU.SB,~N,~N");l(c$,"getSpecularState",function(){var a=new JU.SB,b=this.viewer.gdata;J.viewer.StateCreator.appendCmd(a,"set ambientPercent "+b.getAmbientPercent());J.viewer.StateCreator.appendCmd(a,"set diffusePercent "+b.getDiffusePercent());J.viewer.StateCreator.appendCmd(a,"set specular "+b.getSpecular());J.viewer.StateCreator.appendCmd(a,"set specularPercent "+b.getSpecularPercent());J.viewer.StateCreator.appendCmd(a,"set specularPower "+
b.getSpecularPower());J.viewer.StateCreator.appendCmd(a,"set celShading "+b.getCel());J.viewer.StateCreator.appendCmd(a,"set celShadingPower "+b.getCelPower());var c=b.getSpecularExponent(),b=b.getPhongExponent();Math.pow(2,c)==b?J.viewer.StateCreator.appendCmd(a,"set specularExponent "+c):J.viewer.StateCreator.appendCmd(a,"set phongExponent "+b);J.viewer.StateCreator.appendCmd(a,"set zShadePower "+this.viewer.global.zShadePower);return a.toString()});n(c$,"getFileState",function(a){var b=new JU.SB;
null!=a&&(a.append("  _setFileState;\n"),b.append("function _setFileState() {\n\n"));0>b.indexOf("append")&&this.viewer.getModelSetFileName().equals("zapped")&&b.append("  zap;\n");this.appendLoadStates(b);null!=a&&b.append("\n}\n\n");return b.toString()},"JU.SB");n(c$,"appendLoadStates",function(a){var b=this.viewer.ligandModelSet;if(null!=b)for(var c,b=b.keySet().iterator();b.hasNext()&&((c=b.next())||1);){var d=this.viewer.ligandModels.get(c+"_data");null!=d&&a.append("  ").append(J.util.Escape.encapsulateData("ligand_"+
c,d.trim()+"\n",0));d=this.viewer.ligandModels.get(c+"_file");null!=d&&a.append("  ").append(J.util.Escape.encapsulateData("file_"+c,d.trim()+"\n",0))}var b=new JU.SB,d=this.viewer.modelSet,e=d.models,f=d.modelCount;for(c=0;c<f;c++)if(!d.isJmolDataFrameForModel(c)&&!d.isTrajectorySubFrame(c)){var g=e[c],j=b.indexOf(g.loadState);(0>j||j!=b.lastIndexOf(g.loadState))&&b.append(e[c].loadState);e[c].isModelKit?(j=d.getModelAtomBitSetIncludingDeleted(c,!1),null!=d.tainted&&(null!=d.tainted[2]&&d.tainted[2].andNot(j),
null!=d.tainted[3]&&d.tainted[3].andNot(j)),g.loadScript=new JU.SB,this.getInlineData(b,this.viewer.getModelExtract(j,!1,!0,"MOL"),0<c,null)):b.appendSB(g.loadScript)}b=b.toString();c=b.indexOf("load /*data*/");d=b.indexOf("load /*file*/");0<=d&&d<c&&(c=d);if(0<=(d=b.indexOf('load "@'))&&d<c)c=d;0<=c&&(b=b.substring(0,c)+"zap;"+b.substring(c));a.append(b)},"JU.SB");l(c$,"getInlineData",function(a,b,c,d){c=(c?"append":"model")+" inline";a.append('load /*data*/ data "').append(c).append('"\n').append(b).append('end "').append(c).append(null==
d||0==d.length?"":" filter"+J.util.Escape.eS(d)).append('";')},"JU.SB,~S,~B,~S");n(c$,"getColorState",function(a,b){var c=new JU.SB,d=this.getCEState(a.propertyColorEncoder,c);0<d&&null!=b&&b.append("\n  _setColorState\n");return 0<d&&null!=b?"function _setColorState() {\n"+c.append("}\n\n").toString():c.toString()},"J.viewer.ColorManager,JU.SB");n(c$,"getCEState",function(a,b){for(var c=0,d,e=a.schemes.entrySet().iterator();e.hasNext()&&((d=e.next())||1);){var f=d.getKey();(new Boolean(0<f.length&
0<=c++)).valueOf()&&b.append('color "'+f+"="+J.util.ColorEncoder.getColorSchemeList(d.getValue())+'";\n')}return c},"J.util.ColorEncoder,JU.SB");n(c$,"getAnimState",function(a,b){var c=this.viewer.getModelCount();if(2>c)return"";var d=new JU.SB;null!=b&&(b.append("  _setFrameState;\n"),d.append("function _setFrameState() {\n"));d.append("# frame state;\n");d.append("# modelCount ").appendI(c).append(";\n# first ").append(this.viewer.getModelNumberDotted(0)).append(";\n# last ").append(this.viewer.getModelNumberDotted(c-
1)).append(";\n");0<=a.backgroundModelIndex&&J.viewer.StateCreator.appendCmd(d,"set backgroundModel "+this.viewer.getModelNumberDotted(a.backgroundModelIndex));c=this.viewer.getFrameOffsets();null!=c&&J.viewer.StateCreator.appendCmd(d,"frame align "+J.util.Escape.eBS(c));J.viewer.StateCreator.appendCmd(d,"frame RANGE "+a.getModelSpecial(-1)+" "+a.getModelSpecial(1));J.viewer.StateCreator.appendCmd(d,"animation DIRECTION "+(1==a.animationDirection?"+1":"-1"));J.viewer.StateCreator.appendCmd(d,"animation FPS "+
a.animationFps);J.viewer.StateCreator.appendCmd(d,"animation MODE "+a.animationReplayMode.name()+" "+a.firstFrameDelay+" "+a.lastFrameDelay);0<a.morphCount&&J.viewer.StateCreator.appendCmd(d,"animation MORPH "+a.morphCount);var c=a.getAnimationFrames(),e=!0;null!=c&&(J.viewer.StateCreator.appendCmd(d,"anim frames "+J.util.Escape.eAI(c)),c=a.getCurrentFrameIndex(),J.viewer.StateCreator.appendCmd(d,"frame "+(c+1)),e=a.getCurrentModelIndex()!=a.modelIndexForFrame(c));e&&J.viewer.StateCreator.appendCmd(d,
"model "+a.getModelSpecial(0));J.viewer.StateCreator.appendCmd(d,"animation "+(!a.animationOn?"OFF":1==a.currentDirection?"PLAY":"PLAYREV"));a.animationOn&&a.animationPaused&&J.viewer.StateCreator.appendCmd(d,"animation PAUSE");null!=b&&d.append("}\n\n");return d.toString()},"J.viewer.AnimationManager,JU.SB");n(c$,"getVariableState",function(a,b){var c=Array(a.htBooleanParameterFlags.size()+a.htNonbooleanParameterValues.size()),d=new JU.SB;null!=b&&(b.append("  _setVariableState;\n"),d.append("function _setVariableState() {\n\n"));
for(var e=0,f,g=a.htBooleanParameterFlags.keySet().iterator();g.hasNext()&&((f=g.next())||1);)J.viewer.GlobalSettings.doReportProperty(f)&&(c[e++]="set "+f+" "+a.htBooleanParameterFlags.get(f));for(g=a.htNonbooleanParameterValues.keySet().iterator();g.hasNext()&&((f=g.next())||1);)if(J.viewer.GlobalSettings.doReportProperty(f)){var j=a.htNonbooleanParameterValues.get(f);"="==f.charAt(0)?f=f.substring(1):(f=0==f.indexOf("default")?" set "+f:"set "+f,j=J.util.Escape.e(j));c[e++]=f+" "+j}switch(a.axesMode){case J.constant.EnumAxesMode.UNITCELL:c[e++]=
"set axes unitcell";break;case J.constant.EnumAxesMode.BOUNDBOX:c[e++]="set axes window";break;default:c[e++]="set axes molecular"}java.util.Arrays.sort(c,0,e);for(f=0;f<e;f++)null!=c[f]&&J.viewer.StateCreator.appendCmd(d,c[f]);c=J.viewer.StateManager.getVariableList(a.htUserVariables,0,!1,!0);0<c.length&&(d.append("\n#user-defined atom sets; \n"),d.append(c));null!=this.viewer.shapeManager.getShape(5)&&d.append(this.getDefaultLabelState(this.viewer.shapeManager.shapes[5]));a.haveSetStructureList&&
(c=a.structureList,d.append("struture HELIX set "+J.util.Escape.eAF(c.get(J.constant.EnumStructure.HELIX))),d.append("struture SHEET set "+J.util.Escape.eAF(c.get(J.constant.EnumStructure.SHEET))),d.append("struture TURN set "+J.util.Escape.eAF(c.get(J.constant.EnumStructure.TURN))));null!=b&&d.append("\n}\n\n");return d.toString()},"J.viewer.GlobalSettings,JU.SB");n(c$,"getDefaultLabelState",function(a){var b=(new JU.SB).append("\n# label defaults;\n");J.viewer.StateCreator.appendCmd(b,"select none");
J.viewer.StateCreator.appendCmd(b,J.shape.Shape.getColorCommand("label",a.defaultPaletteID,a.defaultColix,a.translucentAllowed));J.viewer.StateCreator.appendCmd(b,"background label "+J.shape.Shape.encodeColor(a.defaultBgcolix));J.viewer.StateCreator.appendCmd(b,"set labelOffset "+J.viewer.JC.getXOffset(a.defaultOffset)+" "+-J.viewer.JC.getYOffset(a.defaultOffset));var c=J.viewer.JC.getAlignmentName(a.defaultAlignment);J.viewer.StateCreator.appendCmd(b,"set labelAlignment "+(5>c.length?"left":c));
c=J.viewer.JC.getPointer(a.defaultPointer);J.viewer.StateCreator.appendCmd(b,"set labelPointer "+(0==c.length?"off":c));0!=(a.defaultZPos&32)?J.viewer.StateCreator.appendCmd(b,"set labelFront"):0!=(a.defaultZPos&16)&&J.viewer.StateCreator.appendCmd(b,"set labelGroup");J.viewer.StateCreator.appendCmd(b,J.shape.Shape.getFontCommand("label",javajs.awt.Font.getFont3D(a.defaultFontId)));return b.toString()},"J.shape.Labels");n(c$,"getSelectionState",function(a,b){var c=new JU.SB;null!=b&&(b.append("  _setSelectionState;\n"),
c.append("function _setSelectionState() {\n"));J.viewer.StateCreator.appendCmd(c,this.getTrajectoryState());var d=new java.util.Hashtable,e=null;J.viewer.StateCreator.addBs(c,"hide ",a.bsHidden);J.viewer.StateCreator.addBs(c,"subset ",a.bsSubset);J.viewer.StateCreator.addBs(c,"delete ",a.bsDeleted);J.viewer.StateCreator.addBs(c,"fix ",a.bsFixed);d.put("-",a.bsSelection);e=this.getCommands(d,null,"select");null==e?J.viewer.StateCreator.appendCmd(c,"select none"):c.append(e);J.viewer.StateCreator.appendCmd(c,
"set hideNotSelected "+a.hideNotSelected);c.append(this.viewer.getShapeProperty(1,"selectionState"));this.viewer.getSelectionHaloEnabled(!1)&&J.viewer.StateCreator.appendCmd(c,"SelectionHalos ON");null!=b&&c.append("}\n\n");return c.toString()},"J.viewer.SelectionManager,JU.SB");l(c$,"getTrajectoryState",function(){var a="",b=this.viewer.modelSet;if(null==b.trajectorySteps)return"";for(var c=b.modelCount;0<=--c;){var d=b.models[c].getSelectedTrajectory();0<=d&&(a=" or "+b.getModelNumberDotted(d)+
a,c=b.models[c].trajectoryBaseIndex)}0<a.length&&(a="set trajectory {"+a.substring(4)+"}");return a});n(c$,"getViewState",function(a,b){var c=new JU.SB,d=a.getMoveToText(0,!1);null!=b&&(b.append("  _setPerspectiveState;\n"),c.append("function _setPerspectiveState() {\n"));J.viewer.StateCreator.appendCmd(c,"set perspectiveModel "+a.perspectiveModel);J.viewer.StateCreator.appendCmd(c,"set scaleAngstromsPerInch "+a.scale3DAngstromsPerInch);J.viewer.StateCreator.appendCmd(c,"set perspectiveDepth "+a.perspectiveDepth);
J.viewer.StateCreator.appendCmd(c,"set visualRange "+a.visualRange);a.isWindowCentered()||J.viewer.StateCreator.appendCmd(c,"set windowCentered false");J.viewer.StateCreator.appendCmd(c,"set cameraDepth "+a.cameraDepth);var e=1==a.mode;e&&J.viewer.StateCreator.appendCmd(c,"set navigationMode true");J.viewer.StateCreator.appendCmd(c,this.viewer.getBoundBoxCommand(!1));J.viewer.StateCreator.appendCmd(c,"center "+J.util.Escape.eP(a.fixedRotationCenter));c.append(this.viewer.getOrientationText(1073742035,
null));J.viewer.StateCreator.appendCmd(c,d);a.stereoMode!==J.constant.EnumStereoMode.NONE&&J.viewer.StateCreator.appendCmd(c,"stereo "+(null==a.stereoColors?a.stereoMode.getName():J.util.Escape.escapeColor(a.stereoColors[0])+" "+J.util.Escape.escapeColor(a.stereoColors[1]))+" "+a.stereoDegrees);!e&&!a.zoomEnabled&&J.viewer.StateCreator.appendCmd(c,"zoom off");c.append("  slab ").appendI(a.slabPercentSetting).append(";depth ").appendI(a.depthPercentSetting).append(a.slabEnabled&&!e?";slab on":"").append(";\n");
c.append("  set slabRange ").appendF(a.slabRange).append(";\n");a.zShadeEnabled&&c.append("  set zShade;\n");try{null!=a.zSlabPoint&&c.append("  set zSlab ").append(J.util.Escape.eP(a.zSlabPoint)).append(";\n")}catch(f){if(!s(f,Exception))throw f;}null!=a.slabPlane&&c.append("  slab plane ").append(J.util.Escape.eP4(a.slabPlane)).append(";\n");null!=a.depthPlane&&c.append("  depth plane ").append(J.util.Escape.eP4(a.depthPlane)).append(";\n");c.append(this.getSpinState(!0)).append("\n");this.viewer.modelSetHasVibrationVectors()&&
a.vibrationOn&&J.viewer.StateCreator.appendCmd(c,"set vibrationPeriod "+a.vibrationPeriod+";vibration on");e&&(c.append(a.getNavigationState()),(null!=a.depthPlane||null!=a.slabPlane)&&c.append("  slab on;\n"));null!=b&&c.append("}\n\n");return c.toString()},"J.viewer.TransformManager,JU.SB");l(c$,"getSpinState",function(){var a=this.viewer.transformManager,b="  set spinX "+p(a.spinX)+"; set spinY "+p(a.spinY)+"; set spinZ "+p(a.spinZ)+"; set spinFps "+p(a.spinFps)+";";Float.isNaN(a.navFps)||(b+=
"  set navX "+p(a.navX)+"; set navY "+p(a.navY)+"; set navZ "+p(a.navZ)+"; set navFps "+p(a.navFps)+";");a.navOn&&(b+=" navigation on;");if(!a.spinOn)return b;var c=a.isSpinSelected?"\n  select "+J.util.Escape.eBS(this.viewer.getSelectionSet(!1))+";\n  rotateSelected":"\n ";if(a.isSpinInternal){var d=JU.P3.newP(a.internalRotationCenter);d.sub(a.rotationAxis);b+=c+" spin "+a.rotationRate+" "+J.util.Escape.eP(a.internalRotationCenter)+" "+J.util.Escape.eP(d)}else b=a.isSpinFixed?b+(c+" spin axisangle "+
J.util.Escape.eP(a.rotationAxis)+" "+a.rotationRate):b+" spin on";return b+";"},"~B");l(c$,"getInfo",function(a){return q(a,J.viewer.AnimationManager)?this.getAnimationInfo(a):null},"~O");n(c$,"getAnimationInfo",function(a){var b=new java.util.Hashtable;b.put("firstModelIndex",Integer.$valueOf(a.firstFrameIndex));b.put("lastModelIndex",Integer.$valueOf(a.lastFrameIndex));b.put("animationDirection",Integer.$valueOf(a.animationDirection));b.put("currentDirection",Integer.$valueOf(a.currentDirection));
b.put("displayModelIndex",Integer.$valueOf(a.currentModelIndex));null!=a.animationFrames&&(b.put("isMovie",Boolean.TRUE),b.put("frames",J.util.Escape.eAI(a.animationFrames)),b.put("currentAnimationFrame",Integer.$valueOf(a.currentAnimationFrame)));b.put("displayModelNumber",this.viewer.getModelNumberDotted(a.currentModelIndex));b.put("displayModelName",0<=a.currentModelIndex?this.viewer.getModelName(a.currentModelIndex):"");b.put("animationFps",Integer.$valueOf(a.animationFps));b.put("animationReplayMode",
a.animationReplayMode.name());b.put("firstFrameDelay",Float.$valueOf(a.firstFrameDelay));b.put("lastFrameDelay",Float.$valueOf(a.lastFrameDelay));b.put("animationOn",Boolean.$valueOf(a.animationOn));b.put("animationPaused",Boolean.$valueOf(a.animationPaused));return b},"J.viewer.AnimationManager");l(c$,"getCommands",function(a,b,c){var d=new JU.SB;a=J.viewer.StateCreator.getCommands2(a,d,null,c);null!=b&&J.viewer.StateCreator.getCommands2(b,d,a,"select");return d.toString()},"java.util.Map,java.util.Map,~S");
c$.getCommands2=n(c$,"getCommands2",function(a,b,c,d){if(null==a)return"";var e;for(a=a.entrySet().iterator();a.hasNext()&&((e=a.next())||1);){var f=e.getKey(),g=J.util.Escape.eBS(e.getValue());5>g.length||(g=d+" "+g,g.equals(c)||J.viewer.StateCreator.appendCmd(b,g),c=g,0!=f.indexOf("-")&&J.viewer.StateCreator.appendCmd(b,f))}return c},"java.util.Map,JU.SB,~S,~S");c$.appendCmd=n(c$,"appendCmd",function(a,b){0!=b.length&&a.append("  ").append(b).append(";\n")},"JU.SB,~S");c$.addBs=n(c$,"addBs",function(a,
b,c){null==c||0==c.length()||J.viewer.StateCreator.appendCmd(a,b+J.util.Escape.eBS(c))},"JU.SB,~S,JU.BS");l(c$,"getFontState",function(a,b){var c=J.viewer.StateManager.getObjectIdFromName(a.equalsIgnoreCase("axes")?"axis":a);if(0>c)return"";var d=this.viewer.getObjectMad(c),c=(new JU.SB).append("\n");J.viewer.StateCreator.appendCmd(c,a+(0==d?" off":1==d?" on":-1==d?" dotted":20>d?" "+d:" "+d/2E3));if(3>c.length())return"";d=J.shape.Shape.getFontCommand(a,b);0<d.length&&(d="  "+d+";\n");return c+d},
"~S,javajs.awt.Font");l(c$,"getFontLineShapeState",function(a,b,c){var d=0<=a.indexOf(" off"),e=new JU.SB;e.append(a);for(a=0;4>a;a++)null!=c[a]&&this.appendTickInfo(b,e,c[a]);d&&e.append("  "+b+" off;\n");return e.toString()},"~S,~S,~A");n(c$,"appendTickInfo",function(a,b,c){b.append("  ");b.append(a);J.viewer.StateCreator.addTickInfo(b,c,!1);b.append(";\n")},"~S,JU.SB,J.modelset.TickInfo");c$.addTickInfo=n(c$,"addTickInfo",function(a,b,c){a.append(" ticks ").append(b.type).append(" ").append(J.util.Escape.eP(b.ticks));
var d=null!=b.scale&&Float.isNaN(b.scale.x);d&&a.append(" UNITCELL");null!=b.tickLabelFormats&&a.append(" format ").append(J.util.Escape.eAS(b.tickLabelFormats,!1));!d&&null!=b.scale&&a.append(" scale ").append(J.util.Escape.eP(b.scale));c&&(!Float.isNaN(b.first)&&0!=b.first)&&a.append(" first ").appendF(b.first);null!=b.reference&&a.append(" point ").append(J.util.Escape.eP(b.reference))},"JU.SB,J.modelset.TickInfo,~B");l(c$,"getShapeSetState",function(a,b,c,d,e,f,g){for(var j=J.viewer.JC.shapeClassBases[b.shapeID],
k=0;k<c;k++){var m=d[k].firstAtomIndex,h=d[k].lastAtomIndex;if(null!=a.bsSizeSet&&(a.bsSizeSet.get(k)||null!=a.bsColixSet&&a.bsColixSet.get(k)))e.get(k)?J.util.BSUtil.setMapBitSet(f,m,h,j+(a.bsSizeSet.get(k)?" on":" off")):J.util.BSUtil.setMapBitSet(f,m,h,j+" "+a.mads[k]/2E3);null!=a.bsColixSet&&a.bsColixSet.get(k)&&J.util.BSUtil.setMapBitSet(g,m,h,J.shape.Shape.getColorCommand(j,a.paletteIDs[k],a.colixes[k],b.translucentAllowed))}},"J.shape.AtomShape,J.shape.Shape,~N,~A,JU.BS,java.util.Map,java.util.Map");
l(c$,"getMeasurementState",function(a,b,c,d,e){var f=new JU.SB;J.viewer.StateCreator.appendCmd(f,"measures delete");for(var g=0;g<c;g++){var j=b.get(g),k=j.count,m=(new JU.SB).append("measure");null!=j.thisID&&m.append(" ID ").append(J.util.Escape.eS(j.thisID));0!=j.mad&&m.append(" radius ").appendF(null==j.thisID||0<j.mad?j.mad/2E3:0);0!=j.colix&&m.append(" color ").append(J.util.Escape.escapeColor(J.util.C.getArgb(j.colix)));null!=j.text&&(m.append(" font ").append(j.text.font.getInfo()),null!=
j.text.pymolOffset&&m.append(" offset ").append(J.util.Escape.eAF(j.text.pymolOffset)));var h=j.tickInfo;null!=h&&J.viewer.StateCreator.addTickInfo(m,h,!0);for(h=1;h<=k;h++)m.append(" ").append(j.getLabel(h,!0,!0));m.append("; # "+a.getInfoAsString(g));J.viewer.StateCreator.appendCmd(f,m.toString())}J.viewer.StateCreator.appendCmd(f,"select *; set measures "+this.viewer.getMeasureDistanceUnits());J.viewer.StateCreator.appendCmd(f,J.shape.Shape.getFontCommand("measures",d));d=0;k=new java.util.Hashtable;
m=J.util.BSUtil.newBitSet(c);for(g=0;g<c;g++)j=b.get(g),j.isHidden&&(d++,m.set(g)),null!=a.bsColixSet&&a.bsColixSet.get(g)&&J.util.BSUtil.setMapBitSet(k,g,g,J.shape.Shape.getColorCommandUnk("measure",j.colix,a.translucentAllowed)),null!=j.strFormat&&J.util.BSUtil.setMapBitSet(k,g,g,"measure "+J.util.Escape.eS(j.strFormat));if(0<d)if(d==c)J.viewer.StateCreator.appendCmd(f,"measures off; # lines and numbers off");else for(g=0;g<c;g++)m.get(g)&&J.util.BSUtil.setMapBitSet(k,g,g,"measure off");null!=e&&
(f.append(" measure "),J.viewer.StateCreator.addTickInfo(f,e,!0),f.append(";\n"));0<=a.mad&&f.append(" set measurements "+a.mad/2E3).append(";\n");a=this.getCommands(k,null,"select measures");null!=a&&0!=a.length&&(f.append(a),J.viewer.StateCreator.appendCmd(f,"select measures ({null})"));return f.toString()},"J.shape.Measures,JU.List,~N,javajs.awt.Font,J.modelset.TickInfo");l(c$,"getBondState",function(a,b,c){this.clearTemp();var d=this.viewer.modelSet,e=d.bonds,f=d.bondCount,g;if(c||null!=a.bsSizeSet)for(d=
c?f-1:a.bsSizeSet.nextSetBit(0);0<=d;d=c?d-1:a.bsSizeSet.nextSetBit(d+1))J.util.BSUtil.setMapBitSet(this.temp,d,d,"wireframe "+(1==(g=e[d].mad)?"on":""+g/2E3));if(c||null!=b)for(d=c?f-1:b.nextSetBit(0);0<=d;d=c?d-1:b.nextSetBit(d+1))g=e[d],(c||0==(g.order&131072))&&J.util.BSUtil.setMapBitSet(this.temp,d,d,"bondOrder "+J.util.JmolEdge.getBondOrderNameFromOrder(g.order));if(null!=a.bsColixSet)for(d=a.bsColixSet.nextSetBit(0);0<=d;d=a.bsColixSet.nextSetBit(d+1))b=e[d].colix,2==(b&-30721)?J.util.BSUtil.setMapBitSet(this.temp,
d,d,J.shape.Shape.getColorCommand("bonds",J.constant.EnumPalette.CPK.id,b,a.translucentAllowed)):J.util.BSUtil.setMapBitSet(this.temp,d,d,J.shape.Shape.getColorCommandUnk("bonds",b,a.translucentAllowed));a=this.getCommands(this.temp,null,"select BONDS")+"\n";this.clearTemp();return a},"J.shape.Shape,JU.BS,~B");n(c$,"clearTemp",function(){this.temp.clear();this.temp2.clear()});l(c$,"getAtomShapeSetState",function(a,b){this.clearTemp();for(var c=b.length;0<=--c;){var d=b[c];0<d.monomerCount&&(d.isActive&&
!(null==d.bsSizeSet&&null==d.bsColixSet))&&this.viewer.getShapeSetState(d,a,d.monomerCount,d.getMonomers(),d.bsSizeDefault,this.temp,this.temp2)}c="\n"+this.getCommands(this.temp,this.temp2,9==a.shapeID?"Backbone":"select");this.clearTemp();return c},"J.shape.Shape,~A");n(c$,"getShapeState",function(a){var b;switch(a.shapeID){case 30:b=new JU.SB;b.append("\n  set echo off;\n");var c;for(a=a.objects.values().iterator();a.hasNext()&&((c=a.next())||1);)b.append(this.getTextState(c)),c.hidden&&b.append("  set echo ID ").append(J.util.Escape.eS(c.target)).append(" hidden;\n");
b=b.toString();break;case 8:b=this.getAtomShapeState(a)+(2==a.colixSelection?"":0==a.colixSelection?"  color SelectionHalos NONE;\n":J.shape.Shape.getColorCommandUnk("selectionHalos",a.colixSelection,a.translucentAllowed)+";\n");null!=a.bsHighlight&&(b+="  set highlight "+J.util.Escape.eBS(a.bsHighlight)+"; "+J.shape.Shape.getColorCommandUnk("highlight",a.colixHighlight,a.translucentAllowed)+";\n");break;case 34:this.clearTemp();if(null!=a.atomFormats)for(b=this.viewer.getAtomCount();0<=--b;)null!=
a.atomFormats[b]&&J.util.BSUtil.setMapBitSet(this.temp,b,b,"set hoverLabel "+J.util.Escape.eS(a.atomFormats[b]));b="\n  hover "+J.util.Escape.eS(null==a.labelFormat?"":a.labelFormat)+";\n"+this.getCommands(this.temp,null,"select");this.clearTemp();break;case 5:this.clearTemp();for(b=a.bsSizeSet.nextSetBit(0);0<=b;b=a.bsSizeSet.nextSetBit(b+1)){c=a.getLabel(b);var d=null;null!=c&&(d="label "+J.util.Escape.eS(c.textUnformatted),null!=c.pymolOffset&&(d+=";set labelOffset "+J.util.Escape.eAF(c.pymolOffset)));
null==d&&(d="label "+J.util.Escape.eS(a.formats[b]));J.util.BSUtil.setMapBitSet(this.temp,b,b,d);null!=a.bsColixSet&&a.bsColixSet.get(b)&&J.util.BSUtil.setMapBitSet(this.temp2,b,b,J.shape.Shape.getColorCommand("label",a.paletteIDs[b],a.colixes[b],a.translucentAllowed));null!=a.bsBgColixSet&&a.bsBgColixSet.get(b)&&J.util.BSUtil.setMapBitSet(this.temp2,b,b,"background label "+J.shape.Shape.encodeColor(a.bgcolixes[b]));c=a.getLabel(b);c=null!=c?c.getScalePixelsPerMicron():0;0<c&&J.util.BSUtil.setMapBitSet(this.temp2,
b,b,"set labelScaleReference "+1E4/c);if(null!=a.offsets&&a.offsets.length>b){c=a.offsets[b];J.util.BSUtil.setMapBitSet(this.temp2,b,b,"set "+(128==(c&128)?"labelOffsetExact ":"labelOffset ")+J.viewer.JC.getXOffset(c>>8)+" "+-J.viewer.JC.getYOffset(c>>8));var d=J.viewer.JC.getAlignmentName(c>>2),e=J.viewer.JC.getPointer(c);0<e.length&&J.util.BSUtil.setMapBitSet(this.temp2,b,b,"set labelPointer "+e);0!=(c&32)?J.util.BSUtil.setMapBitSet(this.temp2,b,b,"set labelFront"):0!=(c&16)&&J.util.BSUtil.setMapBitSet(this.temp2,
b,b,"set labelGroup");0<d.length&&J.util.BSUtil.setMapBitSet(this.temp3,b,b,"set labelAlignment "+d)}null!=a.mads&&0>a.mads[b]&&J.util.BSUtil.setMapBitSet(this.temp2,b,b,"set toggleLabel");null!=a.bsFontSet&&a.bsFontSet.get(b)&&J.util.BSUtil.setMapBitSet(this.temp2,b,b,J.shape.Shape.getFontCommand("label",javajs.awt.Font.getFont3D(a.fids[b])))}b=this.getCommands(this.temp,this.temp2,"select")+this.getCommands(null,this.temp3,"select");this.temp3.clear();this.clearTemp();break;case 0:this.clearTemp();
c=this.viewer.getAtomCount();var d=this.viewer.modelSet.atoms,e=a.colixes,f=a.paletteIDs,g=0;for(b=0;b<c;b++)if(null!=a.bsSizeSet&&a.bsSizeSet.get(b)&&(0>(g=d[b].madAtom)?J.util.BSUtil.setMapBitSet(this.temp,b,b,"Spacefill on"):J.util.BSUtil.setMapBitSet(this.temp,b,b,"Spacefill "+g/2E3)),null!=a.bsColixSet&&a.bsColixSet.get(b)){var j=d[b].getPaletteID();(j!=J.constant.EnumPalette.CPK.id||d[b].isTranslucent())&&J.util.BSUtil.setMapBitSet(this.temp,b,b,J.shape.Shape.getColorCommand("atoms",j,d[b].getColix(),
a.translucentAllowed));null!=e&&b<e.length&&J.util.BSUtil.setMapBitSet(this.temp2,b,b,J.shape.Shape.getColorCommand("balls",f[b],e[b],a.translucentAllowed))}b=this.getCommands(this.temp,this.temp2,"select");this.clearTemp();break;default:b=""}return b},"J.shape.Shape");n(c$,"getTextState",function(a){var b=new JU.SB,c=a.getText();if(null==c||a.isLabelOrHover||a.target.equals("error"))return"";var d=null!=a.image,e=null,f="set echo ID "+J.util.Escape.eS(a.target);switch(a.valign){case 0:e=2147483647==
a.movableXPercent||2147483647==a.movableYPercent?(2147483647==a.movableXPercent?a.movableX+" ":a.movableXPercent+"% ")+(2147483647==a.movableYPercent?a.movableY+"":a.movableYPercent+"%"):"["+a.movableXPercent+" "+a.movableYPercent+"%]";case 4:null==e&&(e=J.util.Escape.eP(a.xyz));b.append("  ").append(f).append(" ").append(e);1!=a.align&&b.append(";  ").append(f).append(" ").append(J.viewer.JC.hAlignNames[a.align]);break;default:b.append("  set echo ").append(J.viewer.JC.vAlignNames[a.valign]).append(" ").append(J.viewer.JC.hAlignNames[a.align])}0==
a.valign&&2147483647!=a.movableZPercent&&b.append(";  ").append(f).append(" depth ").appendI(a.movableZPercent);d?b.append("; ").append(f).append(" IMAGE /*file*/"):b.append("; echo ");b.append(J.util.Escape.eS(c));b.append(";\n");d&&1!=a.imageScale&&b.append("  ").append(f).append(" scale ").appendF(a.imageScale).append(";\n");null!=a.script&&b.append("  ").append(f).append(" script ").append(J.util.Escape.eS(a.script)).append(";\n");0<=a.modelIndex&&b.append("  ").append(f).append(" model ").append(this.viewer.getModelNumberDotted(a.modelIndex)).append(";\n");
null!=a.pointerPt&&b.append("  ").append(f).append(" point ").append(q(a.pointerPt,J.modelset.Atom)?"({"+a.pointerPt.index+"})":J.util.Escape.eP(a.pointerPt)).append(";\n");b.append("  "+J.shape.Shape.getFontCommand("echo",a.font));0<a.scalePixelsPerMicron&&b.append(" "+1E4/a.scalePixelsPerMicron);b.append("; color echo");J.util.C.isColixTranslucent(a.colix)&&b.append(" translucent "+J.util.C.getColixTranslucencyFractional(a.colix));b.append(" ").append(J.util.C.getHexCode(a.colix));0!=a.bgcolix&&
(b.append("; color echo background"),J.util.C.isColixTranslucent(a.bgcolix)&&b.append(" translucent "+J.util.C.getColixTranslucencyFractional(a.bgcolix)),b.append(" ").append(J.util.C.getHexCode(a.bgcolix)));b.append(";\n");return b.toString()},"J.modelset.Text");l(c$,"getLoadState",function(a){var b=this.viewer.global,c=new JU.SB;J.viewer.StateCreator.appendCmd(c,"set allowEmbeddedScripts false");b.allowEmbeddedScripts&&b.setB("allowEmbeddedScripts",!0);J.viewer.StateCreator.appendCmd(c,"set appendNew "+
b.appendNew);J.viewer.StateCreator.appendCmd(c,"set appletProxy "+J.util.Escape.eS(b.appletProxy));J.viewer.StateCreator.appendCmd(c,"set applySymmetryToBonds "+b.applySymmetryToBonds);0<b.atomTypes.length&&J.viewer.StateCreator.appendCmd(c,"set atomTypes "+J.util.Escape.eS(b.atomTypes));J.viewer.StateCreator.appendCmd(c,"set autoBond "+b.autoBond);b.axesOrientationRasmol&&J.viewer.StateCreator.appendCmd(c,"set axesOrientationRasmol true");J.viewer.StateCreator.appendCmd(c,"set bondRadiusMilliAngstroms "+
b.bondRadiusMilliAngstroms);J.viewer.StateCreator.appendCmd(c,"set bondTolerance "+b.bondTolerance);J.viewer.StateCreator.appendCmd(c,"set defaultLattice "+J.util.Escape.eP(b.ptDefaultLattice));J.viewer.StateCreator.appendCmd(c,"set defaultLoadFilter "+J.util.Escape.eS(b.defaultLoadFilter));J.viewer.StateCreator.appendCmd(c,'set defaultLoadScript ""');0<b.defaultLoadScript.length&&b.setS("defaultLoadScript",b.defaultLoadScript);J.viewer.StateCreator.appendCmd(c,"set defaultStructureDssp "+b.defaultStructureDSSP);
var d=this.viewer.getDefaultVdwNameOrData(-2147483648,null,null);J.viewer.StateCreator.appendCmd(c,"set defaultVDW "+d);d.equals("User")&&J.viewer.StateCreator.appendCmd(c,this.viewer.getDefaultVdwNameOrData(2147483647,null,null));J.viewer.StateCreator.appendCmd(c,"set forceAutoBond "+b.forceAutoBond);J.viewer.StateCreator.appendCmd(c,"#set defaultDirectory "+J.util.Escape.eS(b.defaultDirectory));J.viewer.StateCreator.appendCmd(c,"#set loadFormat "+J.util.Escape.eS(b.loadFormat));J.viewer.StateCreator.appendCmd(c,
"#set loadLigandFormat "+J.util.Escape.eS(b.loadLigandFormat));J.viewer.StateCreator.appendCmd(c,"#set smilesUrlFormat "+J.util.Escape.eS(b.smilesUrlFormat));J.viewer.StateCreator.appendCmd(c,"#set nihResolverFormat "+J.util.Escape.eS(b.nihResolverFormat));J.viewer.StateCreator.appendCmd(c,"#set pubChemFormat "+J.util.Escape.eS(b.pubChemFormat));J.viewer.StateCreator.appendCmd(c,"#set edsUrlFormat "+J.util.Escape.eS(b.edsUrlFormat));J.viewer.StateCreator.appendCmd(c,"#set edsUrlCutoff "+J.util.Escape.eS(b.edsUrlCutoff));
J.viewer.StateCreator.appendCmd(c,"set legacyAutoBonding "+b.legacyAutoBonding);J.viewer.StateCreator.appendCmd(c,"set legacyHAddition "+b.legacyHAddition);J.viewer.StateCreator.appendCmd(c,"set minBondDistance "+b.minBondDistance);J.viewer.StateCreator.appendCmd(c,"set minimizationCriterion  "+b.minimizationCriterion);J.viewer.StateCreator.appendCmd(c,"set minimizationSteps  "+b.minimizationSteps);J.viewer.StateCreator.appendCmd(c,"set pdbAddHydrogens "+(null!=a&&a.get("pdbNoHydrogens")!==Boolean.TRUE?
b.pdbAddHydrogens:!1));J.viewer.StateCreator.appendCmd(c,"set pdbGetHeader "+b.pdbGetHeader);J.viewer.StateCreator.appendCmd(c,"set pdbSequential "+b.pdbSequential);J.viewer.StateCreator.appendCmd(c,"set percentVdwAtom "+b.percentVdwAtom);J.viewer.StateCreator.appendCmd(c,"set smallMoleculeMaxAtoms "+b.smallMoleculeMaxAtoms);J.viewer.StateCreator.appendCmd(c,"set smartAromatic "+b.smartAromatic);b.zeroBasedXyzRasmol&&J.viewer.StateCreator.appendCmd(c,"set zeroBasedXyzRasmol true");return c.toString()},
"java.util.Map");l(c$,"getAllSettings",function(a){for(var b=this.viewer.global,c=new JU.SB,d=Array(b.htBooleanParameterFlags.size()+b.htNonbooleanParameterValues.size()+b.htUserVariables.size()),e=0,f="_"+a,g,j=b.htBooleanParameterFlags.keySet().iterator();j.hasNext()&&((g=j.next())||1);)if(null==a||0==g.indexOf(a)||0==g.indexOf(f))d[e++]=(0==g.indexOf("_")?g+" = ":"set "+g+" ")+b.htBooleanParameterFlags.get(g);for(j=b.htNonbooleanParameterValues.keySet().iterator();j.hasNext()&&((g=j.next())||1);)if("@"!=
g.charAt(0)&&(null==a||0==g.indexOf(a)||0==g.indexOf(f))){var k=b.htNonbooleanParameterValues.get(g);q(k,String)&&(k=J.viewer.StateCreator.chop(J.util.Escape.eS(k)));d[e++]=(0==g.indexOf("_")?g+" = ":"set "+g+" ")+k}for(j=b.htUserVariables.keySet().iterator();j.hasNext()&&((g=j.next())||1);)if(null==a||0==g.indexOf(a))k=b.htUserVariables.get(g),f=k.asString(),d[e++]=g+" "+(g.startsWith("@")?"":"= ")+(4==k.tok?J.viewer.StateCreator.chop(J.util.Escape.eS(f)):f);java.util.Arrays.sort(d,0,e);for(a=0;a<
e;a++)null!=d[a]&&J.viewer.StateCreator.appendCmd(c,d[a]);c.append("\n");return c.toString()},"~S");c$.chop=n(c$,"chop",function(a){var b=a.length;if(512>b)return a;for(var c=new JU.SB,d=0,e=72;e<b;d=e,e+=72){for(;"\\"==a.charAt(e-1);)e++;c.append(0==d?"":'"\\\n    + "').append(a.substring(d,e))}c.append('"\\\n    + "').append(a.substring(d,b));return c.toString()},"~S");l(c$,"getAtomShapeState",function(a){this.clearTemp();var b=J.viewer.JC.shapeClassBases[a.shapeID];if(null!=a.bsSizeSet)for(var c=
a.bsSizeSet.nextSetBit(0);0<=c;c=a.bsSizeSet.nextSetBit(c+1))J.util.BSUtil.setMapBitSet(this.temp,c,c,b+(0>a.mads[c]?" on":" "+a.mads[c]/2E3));if(null!=a.bsColixSet)for(c=a.bsColixSet.nextSetBit(0);0<=c;c=a.bsColixSet.nextSetBit(c+1))J.util.BSUtil.setMapBitSet(this.temp2,c,c,J.shape.Shape.getColorCommand(b,a.paletteIDs[c],a.colixes[c],a.translucentAllowed));a=this.getCommands(this.temp,this.temp2,"select");this.clearTemp();return a},"J.shape.AtomShape");l(c$,"getFunctionCalls",function(a){null==a&&
(a="");var b=new JU.SB,c=a.indexOf("*"),d=0<=c,e=0==a.indexOf("static_"),f=a.equalsIgnoreCase("names")||a.equalsIgnoreCase("static_names");f&&(a="");d&&(a=a.substring(0,c));a=a.toLowerCase();for(var c=e?J.viewer.Viewer.staticFunctions:this.viewer.localFunctions,e=Array(c.size()),g=0,j,k=c.keySet().iterator();k.hasNext()&&((j=k.next())||1);)if(0==a.length&&!j.startsWith("_")||j.equalsIgnoreCase(a)||d&&0==j.toLowerCase().indexOf(a))e[g++]=j;java.util.Arrays.sort(e,0,g);for(a=0;a<g;a++)d=c.get(e[a]),
b.append(f?d.getSignature():d.toString()),b.appendC("\n");return b.toString()},"~S");c$.isTainted=n(c$,"isTainted",function(a,b,c){return null!=a&&null!=a[c]&&a[c].get(b)},"~A,~N,~N");l(c$,"getAtomicPropertyState",function(a,b){if(!this.viewer.global.preserveState)return"";for(var c,d=new JU.SB,e=0;14>e;e++)if(0>a||e==a)null!=(c=null!=b?b:this.viewer.getTaintedAtoms(e))&&this.getAtomicPropertyStateBuffer(d,e,c,null,null);return d.toString()},"~N,JU.BS");l(c$,"getAtomicPropertyStateBuffer",function(a,
b,c,d,e){if(this.viewer.global.preserveState){var f=new JU.SB;d=(null==d?J.modelset.AtomCollection.userSettableValues[b]:d)+" set";var g=0,j=2==b,k=this.viewer.modelSet.atoms,m=this.viewer.modelSet.tainted;if(null!=c)for(var h=c.nextSetBit(0);0<=h;h=c.nextSetBit(h+1)){f.appendI(h+1).append(" ").append(k[h].getElementSymbol()).append(" ").append(k[h].getInfo().$replace(" ","_")).append(" ");switch(b){case 14:h<e.length&&f.appendF(e[h]);break;case 13:f.appendI(k[h].getAtomNumber());break;case 0:f.append(k[h].getAtomName());
break;case 1:f.append(k[h].getAtomType());break;case 2:J.viewer.StateCreator.isTainted(m,h,2)&&(j=!1);f.appendF(k[h].x).append(" ").appendF(k[h].y).append(" ").appendF(k[h].z);break;case 12:var l=k[h].getVibrationVector();null==l&&(l=new JU.V3);f.appendF(l.x).append(" ").appendF(l.y).append(" ").appendF(l.z);break;case 3:f.appendI(k[h].getAtomicAndIsotopeNumber());break;case 4:f.appendI(k[h].getFormalCharge());break;case 6:f.appendF(k[h].getBondingRadiusFloat());break;case 7:f.appendI(k[h].getOccupancy100());
break;case 8:f.appendF(k[h].getPartialCharge());break;case 9:f.appendF(k[h].getBfactor100()/100);break;case 10:f.appendI(k[h].getValence());break;case 11:f.appendF(k[h].getVanderwaalsRadiusFloat(this.viewer,J.constant.EnumVdw.AUTO))}f.append(" ;\n");++g}0!=g&&(j&&(d+="(default)"),a.append('\n  DATA "'+d+'"\n').appendI(g).append(" ;\nJmol Property Data Format 1 -- Jmol ").append(J.viewer.Viewer.getJmolVersion()).append(";\n"),a.appendSB(f),a.append('  end "'+d+'";\n'))}},"JU.SB,~N,JU.BS,~S,~A");l(c$,
"getAtomDefs",function(a){var b=new JU.SB,c;for(a=a.entrySet().iterator();a.hasNext()&&((c=a.next())||1);)q(c.getValue(),JU.BS)&&b.append("{"+c.getKey()+"} <"+c.getValue().cardinality()+" atoms>\n");return b.append("\n").toString()},"java.util.Map");l(c$,"undoMoveAction",function(a,b){switch(a){case 4165:case 4139:switch(b){case -2:this.viewer.undoClear();break;case -1:(4165==a?this.viewer.actionStates:this.viewer.actionStatesRedo).clear();break;case 0:b=2147483647;default:100<b&&(b=(4165==a?this.viewer.actionStates:
this.viewer.actionStatesRedo).size());for(var c=0;c<b;c++)this.undoMoveActionClear(0,a,!0)}}},"~N,~N");l(c$,"undoMoveActionClear",function(a,b,c){if(this.viewer.global.preserveState){var d=0<=a?this.viewer.modelSet.atoms[a].modelIndex:this.viewer.modelSet.modelCount-1;switch(b){case 4139:case 4165:this.viewer.stopMinimization();var e="";switch(b){default:case 4165:e=this.viewer.actionStates;a=this.viewer.actionStatesRedo;break;case 4139:if(e=this.viewer.actionStatesRedo,a=this.viewer.actionStates,
1==this.viewer.actionStatesRedo.size())return}if(0==e.size()||this.undoWorking)return;this.undoWorking=!0;a.add(0,e.remove(0));e=this.viewer.actionStatesRedo.get(0);4165==b&&1==a.size()&&(a=[1],b=JU.PT.parseIntNext(e,a),a=JU.PT.parseIntNext(e,a),this.undoMoveActionClear(a,b,!1));this.viewer.modelSet.models[d].isModelkit()||0>e.indexOf("zap ")?(J.util.Logger.debugging&&this.viewer.log(e),this.viewer.evalStringQuiet(e)):this.viewer.actionStates.clear();break;default:if(this.undoWorking&&c)return;this.undoWorking=
!0;e=new JU.SB;e.append("#"+b+" "+a+" "+new java.util.Date+"\n");0<=a?(d=this.viewer.getModelUndeletedAtomsBitSet(d),this.viewer.modelSet.taintAtoms(d,b),e.append(this.getAtomicPropertyState(-1,null))):(d=this.viewer.getModelUndeletedAtomsBitSet(d),e.append("zap "),e.append(J.util.Escape.eBS(d)).append(";"),this.getInlineData(e,this.viewer.getModelExtract(d,!1,!0,"MOL"),!0,null),e.append("set refreshing false;").append(this.viewer.actionManager.getPickingState()).append(this.viewer.transformManager.getMoveToText(0,
!1)).append("set refreshing true;"));c?(this.viewer.actionStates.add(0,e.toString()),this.viewer.actionStatesRedo.clear()):this.viewer.actionStatesRedo.add(1,e.toString());100==this.viewer.actionStates.size()&&this.viewer.actionStates.remove(99)}this.undoWorking=!c}},"~N,~N,~B");l(c$,"syncScript",function(a,b,c){var d=this.viewer.statusManager;if("GET_GRAPHICS".equalsIgnoreCase(a))d.setSyncDriver(5),d.syncSend(a,b,0),this.viewer.setBooleanProperty("_syncMouse",!1),this.viewer.setBooleanProperty("_syncScript",
!1);else{"=".equals(b)&&(b="~",d.setSyncDriver(2));var e="~".equals(b);if(0<c||!e&&!".".equals(b))if(d.syncSend(a,b,c),!"*".equals(b)||a.startsWith("{"))return;if(a.equalsIgnoreCase("on")||a.equalsIgnoreCase("true"))d.setSyncDriver(1);else if(a.equalsIgnoreCase("off")||a.equalsIgnoreCase("false"))d.setSyncDriver(0);else if(a.equalsIgnoreCase("slave"))d.setSyncDriver(2);else if(b=d.getSyncMode(),0!=b)if(1!=b&&(e=!1),J.util.Logger.debugging&&J.util.Logger.debug(this.viewer.htmlName+" syncing with script: "+
a),e&&d.setSyncDriver(3),0!=a.indexOf("Mouse: "))if(a.startsWith("Peaks: [")){a=J.util.Escape.unescapeStringArray(a.substring(7));d=new JU.List;for(e=0;e<a.length;e++)d.addLast(a[e]);this.viewer.getModelSet().setModelAuxiliaryInfo(this.viewer.getCurrentModelIndex(),"jdxAtomSelect_1HNMR",d)}else{if(a.startsWith("Select: ")){d=JU.PT.getQuotedAttribute(a,"file");d.startsWith(J.viewer.StateCreator.SIMULATION_PROTOCOL+"MOL=")&&(d=null);var f=JU.PT.getQuotedAttribute(a,"model"),g=JU.PT.getQuotedAttribute(a,
"baseModel"),e=JU.PT.getQuotedAttribute(a,"atoms");b=JU.PT.getQuotedAttribute(a,"select");c=JU.PT.getQuotedAttribute(a,"script");null!=f&&f.startsWith("$")&&(d=this.viewer.setLoadFormat(f,"$",!1));f=null==f?null:(null==d?"":d+"#")+f;"".equals(g)&&(f+=".baseModel");a=null==f?-3:this.viewer.getModelIndexFromId(f);if(-2==a)return;a=-1==a&&null!=d?a="load "+J.util.Escape.eS(d):"";a=JU.PT.simpleReplace(a,J.viewer.StateCreator.SIMULATION_PROTOCOL,"");null!=f&&(a+=";model "+J.util.Escape.eS(f));null!=e?
a+=";select visible & (@"+JU.PT.simpleReplace(e,","," or @")+")":null!=b&&(a+=";select visible & ("+b+")");null!=c&&(a+=";"+c)}else if(a.toUpperCase().startsWith("JSPECVIEW")){e||d.syncSend(this.viewer.fullName+"JSpecView"+a.substring(9),">",0);return}this.viewer.evalStringQuietSync(a,!0,!1)}else this.mouseScript(a),e&&this.viewer.setSyncDriver(4)}},"~S,~S,~N");l(c$,"mouseScript",function(a){var b=JU.PT.getTokens(a),c=b[1];try{switch(c=(c.toLowerCase()+"...............").substring(0,15),"zoombyfactor...zoomby.........rotatezby......rotatexyby.....translatexyby..rotatemolecule.spinxyby.......rotatearcball..".indexOf(c)){case 0:switch(b.length){case 3:this.viewer.zoomByFactor(JU.PT.parseFloat(b[2]),
2147483647,2147483647);return;case 5:this.viewer.zoomByFactor(JU.PT.parseFloat(b[2]),JU.PT.parseInt(b[3]),JU.PT.parseInt(b[4]));return}break;case 15:switch(b.length){case 3:this.viewer.zoomBy(JU.PT.parseInt(b[2]));return}break;case 30:switch(b.length){case 3:this.viewer.rotateZBy(JU.PT.parseInt(b[2]),2147483647,2147483647);return;case 5:this.viewer.rotateZBy(JU.PT.parseInt(b[2]),JU.PT.parseInt(b[3]),JU.PT.parseInt(b[4]))}break;case 45:this.viewer.rotateXYBy(JU.PT.parseFloat(b[2]),JU.PT.parseFloat(b[3]));
return;case 60:this.viewer.translateXYBy(JU.PT.parseInt(b[2]),JU.PT.parseInt(b[3]));return;case 75:this.viewer.rotateSelected(JU.PT.parseFloat(b[2]),JU.PT.parseFloat(b[3]),null);return;case 90:this.viewer.spinXYBy(JU.PT.parseInt(b[2]),JU.PT.parseInt(b[3]),JU.PT.parseFloat(b[4]));return;case 105:this.viewer.rotateArcBall(JU.PT.parseInt(b[2]),JU.PT.parseInt(b[3]),JU.PT.parseFloat(b[4]));return}}catch(d){if(!s(d,Exception))throw d;}this.viewer.showString("error reading SYNC command: "+a,!1)},"~S");x(c$,
"SIMULATION_PROTOCOL","http://SIMULATION/","MAX_ACTION_UNDO",100)})})(Clazz,Clazz.newArray,Clazz.newBooleanArray,Clazz.newByteArray,Clazz.newCharArray,Clazz.newDoubleArray,Clazz.newFloatArray,Clazz.newIntArray,Clazz.newLongArray,Clazz.newShortArray,Clazz.prepareCallback,Clazz.decorateAsClass,Clazz.isClassDefined,Clazz.defineEnumConstant,Clazz.cloneFinals,Clazz.inheritArgs,Clazz.pu$h,Clazz.declareInterface,Clazz.declarePackage,Clazz.makeConstructor,Clazz.overrideConstructor,Clazz.load,Clazz.defineMethod,
Clazz.innerTypeInstance,Clazz.instanceOf,Clazz.p0p,Clazz.makeFunction,Clazz.superConstructor,Clazz.defineStatics,Clazz.registerSerializableFields,Clazz.declareType,Clazz.superCall,Clazz.overrideMethod,Clazz.declareAnonymous,Clazz.checkPrivateMethod,Clazz.prepareFields,Clazz.instantialize,Clazz.doubleToInt,Clazz.declarePackage,Clazz.instanceOf,Clazz.load,Clazz.instantialize,Clazz.decorateAsClass,Clazz.floatToInt,Clazz.makeConstructor,Clazz.defineEnumConstant,Clazz.exceptionOf,Clazz.newIntArray,Clazz.defineStatics,
Clazz.newFloatArray,Clazz.declareType,Clazz.prepareFields,Clazz.superConstructor,Clazz.newByteArray,Clazz.declareInterface,Clazz.p0p,Clazz.pu$h,Clazz.newShortArray,Clazz.innerTypeInstance,Clazz.isClassDefined,Clazz.prepareCallback,Clazz.newArray,Clazz.castNullAs,Clazz.floatToShort,Clazz.superCall,Clazz.decorateAsType,Clazz.newBooleanArray,Clazz.newCharArray,Clazz.implementOf,Clazz.newDoubleArray,Clazz.overrideConstructor,Clazz.supportsNativeObject,Clazz.extendedObjectMethods,Clazz.callingStackTraces,
Clazz.clone,Clazz.doubleToShort,Clazz.innerFunctions,Clazz.getInheritedLevel,Clazz.getParamsType,Clazz.isAF,Clazz.isAI,Clazz.isAS,Clazz.isASS,Clazz.isAP,Clazz.isAFloat,Clazz.isAII,Clazz.isAFF,Clazz.isAFFF,Clazz.tryToSearchAndExecute,Clazz.getStackTrace,Clazz.inheritArgs);
