Moto-X3M-Winter/assets/box2dweb/nape.min.js
2022-10-09 02:48:47 +00:00

1 line
1.7 MiB

(function(){var bo,cv=function(){return dc.__string_rec(this,"")};function dX(ec,ea){var eb=function(){return eb.method.apply(eb.scope,arguments)};eb.scope=ec;eb.method=ea;return eb}window.js=js={_Boot:{}};window.zpp_nape=zpp_nape={shape:{},constraint:{},geom:{},phys:{},dynamics:{},callbacks:{},util:{},space:{}};window.sandbox=sandbox={};window.nape=nape={shape:{},constraint:{},geom:{},phys:{},dynamics:{},callbacks:{},space:{},util:{}};var bm=bm=function(){};bm.__name__=["Reflect"];bm.field=function(ec,eb){try{return ec[eb]}catch(ea){return null}};bm.fields=function(ed){var ea=[];if(ed!=null){var ec=Object.prototype.hasOwnProperty;for(var eb in ed){if(eb!="__id__"&&eb!="hx__closures__"&&ec.call(ed,eb)){ea.push(eb)}}}return ea};bm.copy=function(ee){var ea={};var ed=0;var ec=bm.fields(ee);while(ed<ec.length){var eb=ec[ed];++ed;ea[eb]=bm.field(ee,eb)}return ea};bm.prototype.__class__=bm;var ag=ag=function(){};ag.__name__=["Std"];ag.string=function(ea){return dc.__string_rec(ea,"")};ag.prototype.__class__=ag;var aY=aY=function(){};aY.__name__=["StringTools"];aY.hex=function(ec,eb){var ea="";while(true){ea="0123456789ABCDEF".charAt(ec&15)+ea;ec>>>=4;if(!(ec>0)){break}}if(eb!=null){while(ea.length<eb){ea="0"+ea}}return ea};aY.prototype.__class__=aY;var cE=js._Boot.HaxeError=function(ea){Error.call(this);this.val=ea;this.message=String(ea);if(Error.captureStackTrace){Error.captureStackTrace(this,cE)}};cE.__name__=["js","_Boot","HaxeError"];cE.__super__=Error;cE.prototype=Object.create(Error.prototype);cE.wrap=function(ea){if((ea instanceof Error)){return ea}else{return new cE(ea)}};cE.prototype.val=null;cE.prototype.__class__=cE;var dc=js.Boot=function(){};dc.__name__=["js","Boot"];dc.getClass=function(ec){if((ec instanceof Array)&&ec.__enum__==null){return Array}else{var ea=ec.__class__;if(ea!=null){return ea}var eb=dc.__nativeClassName(ec);if(eb!=null){return dc.__resolveNativeClass(eb)}return null}};dc.__string_rec=function(ei,ef){if(ei==null){return"null"}if(ef.length>=5){return"<...>"}var ee=typeof(ei);if(ee=="function"&&(ei.__name__||ei.__ename__)){ee="object"}switch(ee){case"function":return"<function>";case"object":if(ei instanceof Array){if(ei.__enum__){if(ei.length==2){return ei[0]}var ej=ei[0]+"(";ef+="\t";var eh=2;var ed=ei.length;while(eh<ed){var eo=eh++;if(eo!=2){ej+=","+dc.__string_rec(ei[eo],ef)}else{ej+=dc.__string_rec(ei[eo],ef)}}return ej+")"}var em=ei.length;var el;var eb="[";ef+="\t";var ep=0;var eg=em;while(ep<eg){var ek=ep++;eb+=(ek>0?",":"")+dc.__string_rec(ei[ek],ef)}eb+="]";return eb}var eq;try{eq=ei.toString}catch(er){return"???"}if(eq!=null&&eq!=Object.toString&&typeof(eq)=="function"){var ec=ei.toString();if(ec!="[object Object]"){return ec}}var en=null;var ea="{\n";ef+="\t";var es=ei.hasOwnProperty!=null;for(var en in ei){if(es&&!ei.hasOwnProperty(en)){continue}if(en=="prototype"||en=="__class__"||en=="__super__"||en=="__interfaces__"||en=="__properties__"){continue}if(ea.length!=2){ea+=", \n"}ea+=ef+en+" : "+dc.__string_rec(ei[en],ef)}ef=ef.substring(1);ea+="\n"+ef+"}";return ea;case"string":return ei;default:return String(ei)}};dc.__interfLoop=function(ef,eb){if(ef==null){return false}if(ef==eb){return true}var ea=ef.__interfaces__;if(ea!=null){var ed=0;var ee=ea.length;while(ed<ee){var ec=ea[ed++];if(ec==eb||dc.__interfLoop(ec,eb)){return true}}}return dc.__interfLoop(ef.__super__,eb)};dc.__instanceof=function(eb,ea){if(ea==null){return false}switch(ea){case Array:if((eb instanceof Array)){return eb.__enum__==null}else{return false}break;case dh:return typeof(eb)=="boolean";case dH:return true;case aj:return typeof(eb)=="number";case dR:if(typeof(eb)=="number"){return(eb|0)===eb}else{return false}break;case String:return typeof(eb)=="string";default:if(eb!=null){if(typeof(ea)=="function"){if(eb instanceof ea){return true}if(dc.__interfLoop(dc.getClass(eb),ea)){return true}}else{if(typeof(ea)=="object"&&dc.__isNativeObj(ea)){if(eb instanceof ea){return true}}}}else{return false}if(ea==aq&&eb.__name__!=null){return true}if(ea==aJ&&eb.__ename__!=null){return true}return eb.__enum__==ea}};dc.__nativeClassName=function(eb){var ea=dc.__toStr.call(eb).slice(8,-1);if(ea=="Object"||ea=="Function"||ea=="Math"||ea=="JSON"){return null}return ea};dc.__isNativeObj=function(ea){return dc.__nativeClassName(ea)!=null};dc.__resolveNativeClass=function(ea){return $global[ea]};dc.prototype.__class__=dc;var P=nape.Config=function(){};P.__name__=["nape","Config"];P.prototype.__class__=P;var bP=nape.callbacks.Callback=function(){this.zpp_inner=null};bP.__name__=["nape","callbacks","Callback"];bP.prototype.zpp_inner=null;bP.prototype.get_event=function(){return cc.events[this.zpp_inner.event]};bP.prototype.get_listener=function(){return this.zpp_inner.listener.outer};bP.prototype.toString=function(){return""};Object.defineProperty(bP.prototype,"event",{get:bP.prototype.get_event});Object.defineProperty(bP.prototype,"listener",{get:bP.prototype.get_listener});bP.prototype.__class__=bP;var dN=nape.callbacks.BodyCallback=function(){bP.call(this)};dN.__name__=["nape","callbacks","BodyCallback"];dN.__super__=bP;dN.prototype=Object.create(bP.prototype);dN.prototype.get_body=function(){return this.zpp_inner.body.outer};dN.prototype.toString=function(){var ea="Cb:";ea="Cb:"+["WAKE","SLEEP"][this.zpp_inner.event-2];ea+=":"+this.zpp_inner.body.outer.toString();ea+=" : listener: "+ag.string(this.zpp_inner.listener.outer);return ea};Object.defineProperty(dN.prototype,"body",{get:dN.prototype.get_body});dN.prototype.__class__=dN;var cN=nape.callbacks.Listener=function(){this.zpp_inner=null};cN.__name__=["nape","callbacks","Listener"];cN.prototype.zpp_inner=null;cN.prototype.get_type=function(){return cc.types[this.zpp_inner.type]};cN.prototype.get_event=function(){return cc.events[this.zpp_inner.event]};cN.prototype.set_event=function(ea){if(cc.events[this.zpp_inner.event]!=ea){var eb;if(br.CbEvent_BEGIN==null){br.internal=true;br.CbEvent_BEGIN=new bU();br.internal=false}if(ea==br.CbEvent_BEGIN){eb=0}else{if(br.CbEvent_ONGOING==null){br.internal=true;br.CbEvent_ONGOING=new bU();br.internal=false}if(ea==br.CbEvent_ONGOING){eb=6}else{if(br.CbEvent_END==null){br.internal=true;br.CbEvent_END=new bU();br.internal=false}if(ea==br.CbEvent_END){eb=1}else{if(br.CbEvent_SLEEP==null){br.internal=true;br.CbEvent_SLEEP=new bU();br.internal=false}if(ea==br.CbEvent_SLEEP){eb=3}else{if(br.CbEvent_WAKE==null){br.internal=true;br.CbEvent_WAKE=new bU();br.internal=false}if(ea==br.CbEvent_WAKE){eb=2}else{if(br.CbEvent_PRE==null){br.internal=true;br.CbEvent_PRE=new bU();br.internal=false}if(ea==br.CbEvent_PRE){eb=5}else{eb=4}}}}}}this.zpp_inner.swapEvent(eb)}return cc.events[this.zpp_inner.event]};cN.prototype.get_precedence=function(){return this.zpp_inner.precedence};cN.prototype.set_precedence=function(ea){if(this.zpp_inner.precedence!=ea){this.zpp_inner.precedence=ea;this.zpp_inner.invalidate_precedence()}return this.zpp_inner.precedence};cN.prototype.get_space=function(){if(this.zpp_inner.space==null){return null}else{return this.zpp_inner.space.outer}};cN.prototype.set_space=function(ea){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=ea){if(this.zpp_inner.space!=null){this.zpp_inner.space.outer.zpp_inner.wrap_listeners.remove(this)}if(ea!=null){var eb=ea.zpp_inner.wrap_listeners;if(eb.zpp_inner.reverse_flag){eb.push(this)}else{eb.unshift(this)}}else{this.zpp_inner.space=null}}if(this.zpp_inner.space==null){return null}else{return this.zpp_inner.space.outer}};cN.prototype.toString=function(){var eb=["BEGIN","END","WAKE","SLEEP","BREAK","PRE","ONGOING"][this.zpp_inner.event];if(this.zpp_inner.type==0){return"BodyListener{"+eb+"::"+ag.string(this.zpp_inner.body.outer_zn.zpp_inner_zn.options.outer)+"}"}else{if(this.zpp_inner.type==1){return"ConstraintListener{"+eb+"::"+ag.string(this.zpp_inner.constraint.outer_zn.zpp_inner_zn.options.outer)+"}"}else{var ea=this.zpp_inner.interaction;var ec;switch(ea.itype){case 1:ec="COLLISION";break;case 2:ec="SENSOR";break;case 4:ec="FLUID";break;default:ec="ALL"}return(this.zpp_inner.type==2?"InteractionListener{"+eb+"#"+ec+"::"+ag.string(ea.outer_zni.zpp_inner_zn.options1.outer)+":"+ag.string(ea.outer_zni.zpp_inner_zn.options2.outer)+"}":"PreListener{"+ec+"::"+ag.string(ea.outer_znp.zpp_inner_zn.options1.outer)+":"+ag.string(ea.outer_znp.zpp_inner_zn.options2.outer)+"}")+" precedence="+this.zpp_inner.precedence}}};Object.defineProperty(cN.prototype,"type",{get:cN.prototype.get_type});Object.defineProperty(cN.prototype,"event",{get:cN.prototype.get_event,set:cN.prototype.set_event});Object.defineProperty(cN.prototype,"precedence",{get:cN.prototype.get_precedence,set:cN.prototype.set_precedence});Object.defineProperty(cN.prototype,"space",{get:cN.prototype.get_space,set:cN.prototype.set_space});cN.prototype.__class__=cN;var dj=nape.callbacks.BodyListener=function(ed,eb,ec,ea){if(ea==null){ea=0}this.zpp_inner_zn=null;cN.call(this);var ee=-1;if(br.CbEvent_WAKE==null){br.internal=true;br.CbEvent_WAKE=new bU();br.internal=false}if(ed==br.CbEvent_WAKE){ee=2}else{if(br.CbEvent_SLEEP==null){br.internal=true;br.CbEvent_SLEEP=new bU();br.internal=false}if(ed==br.CbEvent_SLEEP){ee=3}}this.zpp_inner_zn=new bW(cP.argument(eb),ee,ec);this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;this.zpp_inner.precedence=ea};dj.__name__=["nape","callbacks","BodyListener"];dj.__super__=cN;dj.prototype=Object.create(cN.prototype);dj.prototype.zpp_inner_zn=null;dj.prototype.get_options=function(){return this.zpp_inner_zn.options.outer};dj.prototype.set_options=function(ea){this.zpp_inner_zn.options.set(ea.zpp_inner);return this.zpp_inner_zn.options.outer};dj.prototype.get_handler=function(){return this.zpp_inner_zn.handler};dj.prototype.set_handler=function(ea){this.zpp_inner_zn.handler=ea;return this.zpp_inner_zn.handler};Object.defineProperty(dj.prototype,"options",{get:dj.prototype.get_options,set:dj.prototype.set_options});Object.defineProperty(dj.prototype,"handler",{get:dj.prototype.get_handler,set:dj.prototype.set_handler});dj.prototype.__class__=dj;var bU=nape.callbacks.CbEvent=function(){};bU.__name__=["nape","callbacks","CbEvent"];bU.BEGIN=null;bU.get_BEGIN=function(){if(br.CbEvent_BEGIN==null){br.internal=true;br.CbEvent_BEGIN=new bU();br.internal=false}return br.CbEvent_BEGIN};bU.ONGOING=null;bU.get_ONGOING=function(){if(br.CbEvent_ONGOING==null){br.internal=true;br.CbEvent_ONGOING=new bU();br.internal=false}return br.CbEvent_ONGOING};bU.END=null;bU.get_END=function(){if(br.CbEvent_END==null){br.internal=true;br.CbEvent_END=new bU();br.internal=false}return br.CbEvent_END};bU.WAKE=null;bU.get_WAKE=function(){if(br.CbEvent_WAKE==null){br.internal=true;br.CbEvent_WAKE=new bU();br.internal=false}return br.CbEvent_WAKE};bU.SLEEP=null;bU.get_SLEEP=function(){if(br.CbEvent_SLEEP==null){br.internal=true;br.CbEvent_SLEEP=new bU();br.internal=false}return br.CbEvent_SLEEP};bU.BREAK=null;bU.get_BREAK=function(){if(br.CbEvent_BREAK==null){br.internal=true;br.CbEvent_BREAK=new bU();br.internal=false}return br.CbEvent_BREAK};bU.PRE=null;bU.get_PRE=function(){if(br.CbEvent_PRE==null){br.internal=true;br.CbEvent_PRE=new bU();br.internal=false}return br.CbEvent_PRE};bU.prototype.toString=function(){if(br.CbEvent_PRE==null){br.internal=true;br.CbEvent_PRE=new bU();br.internal=false}if(this==br.CbEvent_PRE){return"PRE"}else{if(br.CbEvent_BEGIN==null){br.internal=true;br.CbEvent_BEGIN=new bU();br.internal=false}if(this==br.CbEvent_BEGIN){return"BEGIN"}else{if(br.CbEvent_ONGOING==null){br.internal=true;br.CbEvent_ONGOING=new bU();br.internal=false}if(this==br.CbEvent_ONGOING){return"ONGOING"}else{if(br.CbEvent_END==null){br.internal=true;br.CbEvent_END=new bU();br.internal=false}if(this==br.CbEvent_END){return"END"}else{if(br.CbEvent_WAKE==null){br.internal=true;br.CbEvent_WAKE=new bU();br.internal=false}if(this==br.CbEvent_WAKE){return"WAKE"}else{if(br.CbEvent_SLEEP==null){br.internal=true;br.CbEvent_SLEEP=new bU();br.internal=false}if(this==br.CbEvent_SLEEP){return"SLEEP"}else{if(br.CbEvent_BREAK==null){br.internal=true;br.CbEvent_BREAK=new bU();br.internal=false}if(this==br.CbEvent_BREAK){return"BREAK"}else{return""}}}}}}}};Object.defineProperty(bU,"BEGIN",{get:bU.get_BEGIN});Object.defineProperty(bU,"ONGOING",{get:bU.get_ONGOING});Object.defineProperty(bU,"END",{get:bU.get_END});Object.defineProperty(bU,"WAKE",{get:bU.get_WAKE});Object.defineProperty(bU,"SLEEP",{get:bU.get_SLEEP});Object.defineProperty(bU,"BREAK",{get:bU.get_BREAK});Object.defineProperty(bU,"PRE",{get:bU.get_PRE});bU.prototype.__class__=bU;var dk=nape.callbacks.CbType=function(){this.zpp_inner=null;this.zpp_inner=new db();this.zpp_inner.outer=this};dk.__name__=["nape","callbacks","CbType"];dk.ANY_BODY=null;dk.get_ANY_BODY=function(){return db.ANY_BODY};dk.ANY_CONSTRAINT=null;dk.get_ANY_CONSTRAINT=function(){return db.ANY_CONSTRAINT};dk.ANY_SHAPE=null;dk.get_ANY_SHAPE=function(){return db.ANY_SHAPE};dk.ANY_COMPOUND=null;dk.get_ANY_COMPOUND=function(){return db.ANY_COMPOUND};dk.prototype.zpp_inner=null;dk.prototype.get_id=function(){return this.zpp_inner.id};dk.prototype.including=function(ea){return new R(this).including(ea)};dk.prototype.excluding=function(ea){return new R(this).excluding(ea)};dk.prototype.get_userData=function(){if(this.zpp_inner.userData==null){this.zpp_inner.userData={}}return this.zpp_inner.userData};dk.prototype.get_interactors=function(){if(this.zpp_inner.wrap_interactors==null){this.zpp_inner.wrap_interactors=i.get(this.zpp_inner.interactors,true)}return this.zpp_inner.wrap_interactors};dk.prototype.get_constraints=function(){if(this.zpp_inner.wrap_constraints==null){this.zpp_inner.wrap_constraints=aZ.get(this.zpp_inner.constraints,true)}return this.zpp_inner.wrap_constraints};dk.prototype.toString=function(){if(this==db.ANY_BODY){return"ANY_BODY"}else{if(this==db.ANY_SHAPE){return"ANY_SHAPE"}else{if(this==db.ANY_COMPOUND){return"ANY_COMPOUND"}else{if(this==db.ANY_CONSTRAINT){return"ANY_CONSTRAINT"}else{return"CbType#"+this.zpp_inner.id}}}}};Object.defineProperty(dk,"ANY_BODY",{get:dk.get_ANY_BODY});Object.defineProperty(dk,"ANY_CONSTRAINT",{get:dk.get_ANY_CONSTRAINT});Object.defineProperty(dk,"ANY_SHAPE",{get:dk.get_ANY_SHAPE});Object.defineProperty(dk,"ANY_COMPOUND",{get:dk.get_ANY_COMPOUND});Object.defineProperty(dk.prototype,"id",{get:dk.prototype.get_id});Object.defineProperty(dk.prototype,"userData",{get:dk.prototype.get_userData});Object.defineProperty(dk.prototype,"interactors",{get:dk.prototype.get_interactors});Object.defineProperty(dk.prototype,"constraints",{get:dk.prototype.get_constraints});dk.prototype.__class__=dk;var Y=nape.callbacks.CbTypeIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};Y.__name__=["nape","callbacks","CbTypeIterator"];Y.get=function(ec){var ea;if(Y.zpp_pool==null){cy.internal=true;var ed=new Y();cy.internal=false;ea=ed}else{var eb=Y.zpp_pool;Y.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};Y.prototype.zpp_inner=null;Y.prototype.zpp_i=null;Y.prototype.zpp_critical=null;Y.prototype.zpp_next=null;Y.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=Y.zpp_pool;Y.zpp_pool=this;this.zpp_inner=null;return false}};Y.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};Y.prototype.__class__=Y;var C=nape.callbacks.CbTypeList=function(){this.zpp_inner=null;this.zpp_inner=new cy();this.zpp_inner.outer=this};C.__name__=["nape","callbacks","CbTypeList"];C.fromArray=function(ed){var ea=new C();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};C.prototype.zpp_inner=null;C.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};C.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};C.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer};C.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};C.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};C.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer};C.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer};C.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};C.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};C.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};C.prototype.empty=function(){return this.zpp_inner.inner.head==null};C.prototype.iterator=function(){this.zpp_inner.valmod();return Y.get(this)};C.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new C();this.zpp_inner.valmod();var ef=Y.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=Y.zpp_pool;Y.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};C.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=Y.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=Y.zpp_pool;Y.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};C.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=Y.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=Y.zpp_pool;Y.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};C.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=Y.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=Y.zpp_pool;Y.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=Y.zpp_pool;Y.zpp_pool=ec;ec.zpp_inner=null;break}}return this};C.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(C.prototype,"length",{get:C.prototype.get_length});C.prototype.__class__=C;var dm=nape.callbacks.ConstraintCallback=function(){bP.call(this)};dm.__name__=["nape","callbacks","ConstraintCallback"];dm.__super__=bP;dm.prototype=Object.create(bP.prototype);dm.prototype.get_constraint=function(){return this.zpp_inner.constraint.outer};dm.prototype.toString=function(){var ea="Cb:";ea="Cb:"+["WAKE","SLEEP","BREAK"][this.zpp_inner.event-2];ea+=":"+this.zpp_inner.constraint.outer.toString();ea+=" : listener: "+ag.string(this.zpp_inner.listener.outer);return ea};Object.defineProperty(dm.prototype,"constraint",{get:dm.prototype.get_constraint});dm.prototype.__class__=dm;var d1=nape.callbacks.ConstraintListener=function(ed,eb,ec,ea){if(ea==null){ea=0}this.zpp_inner_zn=null;cN.call(this);var ee=-1;if(br.CbEvent_WAKE==null){br.internal=true;br.CbEvent_WAKE=new bU();br.internal=false}if(ed==br.CbEvent_WAKE){ee=2}else{if(br.CbEvent_SLEEP==null){br.internal=true;br.CbEvent_SLEEP=new bU();br.internal=false}if(ed==br.CbEvent_SLEEP){ee=3}else{if(br.CbEvent_BREAK==null){br.internal=true;br.CbEvent_BREAK=new bU();br.internal=false}if(ed==br.CbEvent_BREAK){ee=4}}}this.zpp_inner_zn=new O(cP.argument(eb),ee,ec);this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;this.zpp_inner.precedence=ea};d1.__name__=["nape","callbacks","ConstraintListener"];d1.__super__=cN;d1.prototype=Object.create(cN.prototype);d1.prototype.zpp_inner_zn=null;d1.prototype.get_options=function(){return this.zpp_inner_zn.options.outer};d1.prototype.set_options=function(ea){this.zpp_inner_zn.options.set(ea.zpp_inner);return this.zpp_inner_zn.options.outer};d1.prototype.get_handler=function(){return this.zpp_inner_zn.handler};d1.prototype.set_handler=function(ea){this.zpp_inner_zn.handler=ea;return this.zpp_inner_zn.handler};Object.defineProperty(d1.prototype,"options",{get:d1.prototype.get_options,set:d1.prototype.set_options});Object.defineProperty(d1.prototype,"handler",{get:d1.prototype.get_handler,set:d1.prototype.set_handler});d1.prototype.__class__=d1;var ay=nape.callbacks.InteractionCallback=function(){bP.call(this)};ay.__name__=["nape","callbacks","InteractionCallback"];ay.__super__=bP;ay.prototype=Object.create(bP.prototype);ay.prototype.get_int1=function(){return this.zpp_inner.int1.outer_i};ay.prototype.get_int2=function(){return this.zpp_inner.int2.outer_i};ay.prototype.get_arbiters=function(){return this.zpp_inner.wrap_arbiters};ay.prototype.toString=function(){var ea="Cb:";ea="Cb:"+["BEGIN","END","","","","","ONGOING"][this.zpp_inner.event];ea+=":"+this.zpp_inner.int1.outer_i.toString()+"/"+this.zpp_inner.int2.outer_i.toString();ea+=" : "+this.zpp_inner.wrap_arbiters.toString();ea+=" : listener: "+ag.string(this.zpp_inner.listener.outer);return ea};Object.defineProperty(ay.prototype,"int1",{get:ay.prototype.get_int1});Object.defineProperty(ay.prototype,"int2",{get:ay.prototype.get_int2});Object.defineProperty(ay.prototype,"arbiters",{get:ay.prototype.get_arbiters});ay.prototype.__class__=ay;var bp=nape.callbacks.InteractionListener=function(eb,ec,ek,ei,ej,ea){if(ea==null){ea=0}this.zpp_inner_zn=null;cN.call(this);var eh=-1;if(br.CbEvent_BEGIN==null){br.internal=true;br.CbEvent_BEGIN=new bU();br.internal=false}if(eb==br.CbEvent_BEGIN){eh=0}else{if(br.CbEvent_END==null){br.internal=true;br.CbEvent_END=new bU();br.internal=false}if(eb==br.CbEvent_END){eh=1}else{if(br.CbEvent_ONGOING==null){br.internal=true;br.CbEvent_ONGOING=new bU();br.internal=false}if(eb==br.CbEvent_ONGOING){eh=6}}}this.zpp_inner_zn=new c1(cP.argument(ek),cP.argument(ei),eh,2);this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zni=this;this.zpp_inner.precedence=ea;this.zpp_inner_zn.handleri=ej;var ef=this.zpp_inner_zn.itype;var ee;if(ef==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}ee=br.InteractionType_COLLISION}else{if(ef==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}ee=br.InteractionType_SENSOR}else{if(ef==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}ee=br.InteractionType_FLUID}else{if(ef==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}ee=br.InteractionType_ANY}else{ee=null}}}}if(ee!=ec){var ed;if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}if(ec==br.InteractionType_COLLISION){ed=1}else{if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}if(ec==br.InteractionType_SENSOR){ed=2}else{if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}if(ec==br.InteractionType_FLUID){ed=4}else{ed=7}}}this.zpp_inner_zn.itype=ed}var eg=this.zpp_inner_zn.itype;if(eg==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}}else{if(eg==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}}else{if(eg==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}}else{if(eg==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}}}}}};bp.__name__=["nape","callbacks","InteractionListener"];bp.__super__=cN;bp.prototype=Object.create(cN.prototype);bp.prototype.zpp_inner_zn=null;bp.prototype.get_options1=function(){return this.zpp_inner_zn.options1.outer};bp.prototype.set_options1=function(ea){this.zpp_inner_zn.options1.set(ea.zpp_inner);return this.zpp_inner_zn.options1.outer};bp.prototype.get_options2=function(){return this.zpp_inner_zn.options2.outer};bp.prototype.set_options2=function(ea){this.zpp_inner_zn.options2.set(ea.zpp_inner);return this.zpp_inner_zn.options2.outer};bp.prototype.get_interactionType=function(){var ea=this.zpp_inner_zn.itype;if(ea==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}return br.InteractionType_COLLISION}else{if(ea==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}return br.InteractionType_SENSOR}else{if(ea==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}return br.InteractionType_FLUID}else{if(ea==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}return br.InteractionType_ANY}else{return null}}}}};bp.prototype.set_interactionType=function(ec){var ea=this.zpp_inner_zn.itype;var eb;if(ea==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}eb=br.InteractionType_COLLISION}else{if(ea==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}eb=br.InteractionType_SENSOR}else{if(ea==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}eb=br.InteractionType_FLUID}else{if(ea==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}eb=br.InteractionType_ANY}else{eb=null}}}}if(eb!=ec){var ee;if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}if(ec==br.InteractionType_COLLISION){ee=1}else{if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}if(ec==br.InteractionType_SENSOR){ee=2}else{if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}if(ec==br.InteractionType_FLUID){ee=4}else{ee=7}}}this.zpp_inner_zn.itype=ee}var ed=this.zpp_inner_zn.itype;if(ed==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}return br.InteractionType_COLLISION}else{if(ed==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}return br.InteractionType_SENSOR}else{if(ed==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}return br.InteractionType_FLUID}else{if(ed==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}return br.InteractionType_ANY}else{return null}}}}};bp.prototype.get_handler=function(){return this.zpp_inner_zn.handleri};bp.prototype.set_handler=function(ea){this.zpp_inner_zn.handleri=ea;return this.zpp_inner_zn.handleri};bp.prototype.get_allowSleepingCallbacks=function(){return this.zpp_inner_zn.allowSleepingCallbacks};bp.prototype.set_allowSleepingCallbacks=function(ea){this.zpp_inner_zn.allowSleepingCallbacks=ea;return this.zpp_inner_zn.allowSleepingCallbacks};Object.defineProperty(bp.prototype,"options1",{get:bp.prototype.get_options1,set:bp.prototype.set_options1});Object.defineProperty(bp.prototype,"options2",{get:bp.prototype.get_options2,set:bp.prototype.set_options2});Object.defineProperty(bp.prototype,"interactionType",{get:bp.prototype.get_interactionType,set:bp.prototype.set_interactionType});Object.defineProperty(bp.prototype,"handler",{get:bp.prototype.get_handler,set:bp.prototype.set_handler});Object.defineProperty(bp.prototype,"allowSleepingCallbacks",{get:bp.prototype.get_allowSleepingCallbacks,set:bp.prototype.set_allowSleepingCallbacks});bp.prototype.__class__=bp;var b3=nape.callbacks.InteractionType=function(){};b3.__name__=["nape","callbacks","InteractionType"];b3.COLLISION=null;b3.get_COLLISION=function(){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}return br.InteractionType_COLLISION};b3.SENSOR=null;b3.get_SENSOR=function(){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}return br.InteractionType_SENSOR};b3.FLUID=null;b3.get_FLUID=function(){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}return br.InteractionType_FLUID};b3.ANY=null;b3.get_ANY=function(){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}return br.InteractionType_ANY};b3.prototype.toString=function(){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}if(this==br.InteractionType_COLLISION){return"COLLISION"}else{if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}if(this==br.InteractionType_SENSOR){return"SENSOR"}else{if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}if(this==br.InteractionType_FLUID){return"FLUID"}else{if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}if(this==br.InteractionType_ANY){return"ANY"}else{return""}}}}};Object.defineProperty(b3,"COLLISION",{get:b3.get_COLLISION});Object.defineProperty(b3,"SENSOR",{get:b3.get_SENSOR});Object.defineProperty(b3,"FLUID",{get:b3.get_FLUID});Object.defineProperty(b3,"ANY",{get:b3.get_ANY});b3.prototype.__class__=b3;var cV=nape.callbacks.ListenerIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};cV.__name__=["nape","callbacks","ListenerIterator"];cV.get=function(ec){var ea;if(cV.zpp_pool==null){a1.internal=true;var ed=new cV();a1.internal=false;ea=ed}else{var eb=cV.zpp_pool;cV.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};cV.prototype.zpp_inner=null;cV.prototype.zpp_i=null;cV.prototype.zpp_critical=null;cV.prototype.zpp_next=null;cV.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=cV.zpp_pool;cV.zpp_pool=this;this.zpp_inner=null;return false}};cV.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};cV.prototype.__class__=cV;var ci=nape.callbacks.ListenerList=function(){this.zpp_inner=null;this.zpp_inner=new a1();this.zpp_inner.outer=this};ci.__name__=["nape","callbacks","ListenerList"];ci.fromArray=function(ed){var ea=new ci();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};ci.prototype.zpp_inner=null;ci.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};ci.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};ci.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer};ci.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};ci.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};ci.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer};ci.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer};ci.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};ci.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};ci.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};ci.prototype.empty=function(){return this.zpp_inner.inner.head==null};ci.prototype.iterator=function(){this.zpp_inner.valmod();return cV.get(this)};ci.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new ci();this.zpp_inner.valmod();var ef=cV.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=cV.zpp_pool;cV.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};ci.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=cV.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=cV.zpp_pool;cV.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};ci.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=cV.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=cV.zpp_pool;cV.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};ci.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=cV.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=cV.zpp_pool;cV.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=cV.zpp_pool;cV.zpp_pool=ec;ec.zpp_inner=null;break}}return this};ci.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(ci.prototype,"length",{get:ci.prototype.get_length});ci.prototype.__class__=ci;var dZ=nape.callbacks.ListenerType=function(){};dZ.__name__=["nape","callbacks","ListenerType"];dZ.BODY=null;dZ.get_BODY=function(){if(br.ListenerType_BODY==null){br.internal=true;br.ListenerType_BODY=new dZ();br.internal=false}return br.ListenerType_BODY};dZ.CONSTRAINT=null;dZ.get_CONSTRAINT=function(){if(br.ListenerType_CONSTRAINT==null){br.internal=true;br.ListenerType_CONSTRAINT=new dZ();br.internal=false}return br.ListenerType_CONSTRAINT};dZ.INTERACTION=null;dZ.get_INTERACTION=function(){if(br.ListenerType_INTERACTION==null){br.internal=true;br.ListenerType_INTERACTION=new dZ();br.internal=false}return br.ListenerType_INTERACTION};dZ.PRE=null;dZ.get_PRE=function(){if(br.ListenerType_PRE==null){br.internal=true;br.ListenerType_PRE=new dZ();br.internal=false}return br.ListenerType_PRE};dZ.prototype.toString=function(){if(br.ListenerType_BODY==null){br.internal=true;br.ListenerType_BODY=new dZ();br.internal=false}if(this==br.ListenerType_BODY){return"BODY"}else{if(br.ListenerType_CONSTRAINT==null){br.internal=true;br.ListenerType_CONSTRAINT=new dZ();br.internal=false}if(this==br.ListenerType_CONSTRAINT){return"CONSTRAINT"}else{if(br.ListenerType_INTERACTION==null){br.internal=true;br.ListenerType_INTERACTION=new dZ();br.internal=false}if(this==br.ListenerType_INTERACTION){return"INTERACTION"}else{if(br.ListenerType_PRE==null){br.internal=true;br.ListenerType_PRE=new dZ();br.internal=false}if(this==br.ListenerType_PRE){return"PRE"}else{return""}}}}};Object.defineProperty(dZ,"BODY",{get:dZ.get_BODY});Object.defineProperty(dZ,"CONSTRAINT",{get:dZ.get_CONSTRAINT});Object.defineProperty(dZ,"INTERACTION",{get:dZ.get_INTERACTION});Object.defineProperty(dZ,"PRE",{get:dZ.get_PRE});dZ.prototype.__class__=dZ;var R=nape.callbacks.OptionType=function(ea,eb){this.zpp_inner=null;this.zpp_inner=new cP();this.zpp_inner.outer=this;if(ea!=null){this.including(ea)}if(eb!=null){this.excluding(eb)}};R.__name__=["nape","callbacks","OptionType"];R.prototype.zpp_inner=null;R.prototype.get_includes=function(){if(this.zpp_inner.wrap_includes==null){this.zpp_inner.setup_includes()}return this.zpp_inner.wrap_includes};R.prototype.get_excludes=function(){if(this.zpp_inner.wrap_excludes==null){this.zpp_inner.setup_excludes()}return this.zpp_inner.wrap_excludes};R.prototype.including=function(ea){this.zpp_inner.append(this.zpp_inner.includes,ea);return this};R.prototype.excluding=function(ea){this.zpp_inner.append(this.zpp_inner.excludes,ea);return this};R.prototype.toString=function(){if(this.zpp_inner.wrap_includes==null){this.zpp_inner.setup_includes()}var ea=this.zpp_inner.wrap_includes.toString();if(this.zpp_inner.wrap_excludes==null){this.zpp_inner.setup_excludes()}return"@{"+ea+" excluding "+this.zpp_inner.wrap_excludes.toString()+"}"};Object.defineProperty(R.prototype,"includes",{get:R.prototype.get_includes});Object.defineProperty(R.prototype,"excludes",{get:R.prototype.get_excludes});R.prototype.__class__=R;var a9=nape.callbacks.PreCallback=function(){bP.call(this)};a9.__name__=["nape","callbacks","PreCallback"];a9.__super__=bP;a9.prototype=Object.create(bP.prototype);a9.prototype.get_arbiter=function(){return this.zpp_inner.pre_arbiter.wrapper()};a9.prototype.get_int1=function(){return this.zpp_inner.int1.outer_i};a9.prototype.get_int2=function(){return this.zpp_inner.int2.outer_i};a9.prototype.get_swapped=function(){return this.zpp_inner.pre_swapped};a9.prototype.toString=function(){var ea="Cb:PRE:";ea="Cb:PRE:"+(":"+this.zpp_inner.int1.outer_i.toString()+"/"+this.zpp_inner.int2.outer_i.toString());ea+=" : "+this.zpp_inner.pre_arbiter.wrapper().toString();ea+=" : listnener: "+ag.string(this.zpp_inner.listener.outer);return ea};Object.defineProperty(a9.prototype,"arbiter",{get:a9.prototype.get_arbiter});Object.defineProperty(a9.prototype,"int1",{get:a9.prototype.get_int1});Object.defineProperty(a9.prototype,"int2",{get:a9.prototype.get_int2});Object.defineProperty(a9.prototype,"swapped",{get:a9.prototype.get_swapped});a9.prototype.__class__=a9;var bq=nape.callbacks.PreFlag=function(){};bq.__name__=["nape","callbacks","PreFlag"];bq.ACCEPT=null;bq.get_ACCEPT=function(){if(br.PreFlag_ACCEPT==null){br.internal=true;br.PreFlag_ACCEPT=new bq();br.internal=false}return br.PreFlag_ACCEPT};bq.IGNORE=null;bq.get_IGNORE=function(){if(br.PreFlag_IGNORE==null){br.internal=true;br.PreFlag_IGNORE=new bq();br.internal=false}return br.PreFlag_IGNORE};bq.ACCEPT_ONCE=null;bq.get_ACCEPT_ONCE=function(){if(br.PreFlag_ACCEPT_ONCE==null){br.internal=true;br.PreFlag_ACCEPT_ONCE=new bq();br.internal=false}return br.PreFlag_ACCEPT_ONCE};bq.IGNORE_ONCE=null;bq.get_IGNORE_ONCE=function(){if(br.PreFlag_IGNORE_ONCE==null){br.internal=true;br.PreFlag_IGNORE_ONCE=new bq();br.internal=false}return br.PreFlag_IGNORE_ONCE};bq.prototype.toString=function(){if(br.PreFlag_ACCEPT==null){br.internal=true;br.PreFlag_ACCEPT=new bq();br.internal=false}if(this==br.PreFlag_ACCEPT){return"ACCEPT"}else{if(br.PreFlag_IGNORE==null){br.internal=true;br.PreFlag_IGNORE=new bq();br.internal=false}if(this==br.PreFlag_IGNORE){return"IGNORE"}else{if(br.PreFlag_ACCEPT_ONCE==null){br.internal=true;br.PreFlag_ACCEPT_ONCE=new bq();br.internal=false}if(this==br.PreFlag_ACCEPT_ONCE){return"ACCEPT_ONCE"}else{if(br.PreFlag_IGNORE_ONCE==null){br.internal=true;br.PreFlag_IGNORE_ONCE=new bq();br.internal=false}if(this==br.PreFlag_IGNORE_ONCE){return"IGNORE_ONCE"}else{return""}}}}};Object.defineProperty(bq,"ACCEPT",{get:bq.get_ACCEPT});Object.defineProperty(bq,"IGNORE",{get:bq.get_IGNORE});Object.defineProperty(bq,"ACCEPT_ONCE",{get:bq.get_ACCEPT_ONCE});Object.defineProperty(bq,"IGNORE_ONCE",{get:bq.get_IGNORE_ONCE});bq.prototype.__class__=bq;var b2=nape.callbacks.PreListener=function(eb,ej,eh,ei,ea,ec){if(ec==null){ec=false}if(ea==null){ea=0}this.zpp_inner_zn=null;cN.call(this);this.zpp_inner_zn=new c1(cP.argument(ej),cP.argument(eh),5,3);this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_znp=this;this.zpp_inner.precedence=ea;this.zpp_inner_zn.pure=ec;this.zpp_inner_zn.handlerp=ei;var ef=this.zpp_inner_zn.itype;var ee;if(ef==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}ee=br.InteractionType_COLLISION}else{if(ef==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}ee=br.InteractionType_SENSOR}else{if(ef==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}ee=br.InteractionType_FLUID}else{if(ef==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}ee=br.InteractionType_ANY}else{ee=null}}}}if(ee!=eb){var ed;if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}if(eb==br.InteractionType_COLLISION){ed=1}else{if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}if(eb==br.InteractionType_SENSOR){ed=2}else{if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}if(eb==br.InteractionType_FLUID){ed=4}else{ed=7}}}this.zpp_inner_zn.itype=ed}var eg=this.zpp_inner_zn.itype;if(eg==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}}else{if(eg==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}}else{if(eg==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}}else{if(eg==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}}}}}};b2.__name__=["nape","callbacks","PreListener"];b2.__super__=cN;b2.prototype=Object.create(cN.prototype);b2.prototype.zpp_inner_zn=null;b2.prototype.get_options1=function(){return this.zpp_inner_zn.options1.outer};b2.prototype.set_options1=function(ea){this.zpp_inner_zn.options1.set(ea.zpp_inner);return this.zpp_inner_zn.options1.outer};b2.prototype.get_options2=function(){return this.zpp_inner_zn.options2.outer};b2.prototype.set_options2=function(ea){this.zpp_inner_zn.options2.set(ea.zpp_inner);return this.zpp_inner_zn.options2.outer};b2.prototype.get_handler=function(){return this.zpp_inner_zn.handlerp};b2.prototype.set_handler=function(ea){this.zpp_inner_zn.handlerp=ea;this.zpp_inner_zn.wake();return this.zpp_inner_zn.handlerp};b2.prototype.get_pure=function(){return this.zpp_inner_zn.pure};b2.prototype.set_pure=function(ea){if(!ea){this.zpp_inner_zn.wake()}this.zpp_inner_zn.pure=ea;return this.zpp_inner_zn.pure};b2.prototype.get_interactionType=function(){var ea=this.zpp_inner_zn.itype;if(ea==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}return br.InteractionType_COLLISION}else{if(ea==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}return br.InteractionType_SENSOR}else{if(ea==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}return br.InteractionType_FLUID}else{if(ea==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}return br.InteractionType_ANY}else{return null}}}}};b2.prototype.set_interactionType=function(ec){var ea=this.zpp_inner_zn.itype;var eb;if(ea==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}eb=br.InteractionType_COLLISION}else{if(ea==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}eb=br.InteractionType_SENSOR}else{if(ea==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}eb=br.InteractionType_FLUID}else{if(ea==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}eb=br.InteractionType_ANY}else{eb=null}}}}if(eb!=ec){var ee;if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}if(ec==br.InteractionType_COLLISION){ee=1}else{if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}if(ec==br.InteractionType_SENSOR){ee=2}else{if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}if(ec==br.InteractionType_FLUID){ee=4}else{ee=7}}}this.zpp_inner_zn.itype=ee}var ed=this.zpp_inner_zn.itype;if(ed==1){if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}return br.InteractionType_COLLISION}else{if(ed==2){if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}return br.InteractionType_SENSOR}else{if(ed==4){if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}return br.InteractionType_FLUID}else{if(ed==7){if(br.InteractionType_ANY==null){br.internal=true;br.InteractionType_ANY=new b3();br.internal=false}return br.InteractionType_ANY}else{return null}}}}};Object.defineProperty(b2.prototype,"options1",{get:b2.prototype.get_options1,set:b2.prototype.set_options1});Object.defineProperty(b2.prototype,"options2",{get:b2.prototype.get_options2,set:b2.prototype.set_options2});Object.defineProperty(b2.prototype,"handler",{get:b2.prototype.get_handler,set:b2.prototype.set_handler});Object.defineProperty(b2.prototype,"pure",{get:b2.prototype.get_pure,set:b2.prototype.set_pure});Object.defineProperty(b2.prototype,"interactionType",{get:b2.prototype.get_interactionType,set:b2.prototype.set_interactionType});b2.prototype.__class__=b2;var cK=nape.constraint.Constraint=function(){this.debugDraw=true;this.zpp_inner.insert_cbtype(db.ANY_CONSTRAINT.zpp_inner)};cK.__name__=["nape","constraint","Constraint"];cK.prototype.zpp_inner=null;cK.prototype.get_userData=function(){if(this.zpp_inner.userData==null){this.zpp_inner.userData={}}return this.zpp_inner.userData};cK.prototype.debugDraw=null;cK.prototype.get_compound=function(){if(this.zpp_inner.compound==null){return null}else{return this.zpp_inner.compound.outer}};cK.prototype.set_compound=function(ea){if((this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer)!=ea){if((this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer)!=null){(this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer).zpp_inner.wrap_constraints.remove(this)}if(ea!=null){var eb=ea.zpp_inner.wrap_constraints;if(eb.zpp_inner.reverse_flag){eb.push(this)}else{eb.unshift(this)}}}if(this.zpp_inner.compound==null){return null}else{return this.zpp_inner.compound.outer}};cK.prototype.get_space=function(){if(this.zpp_inner.space==null){return null}else{return this.zpp_inner.space.outer}};cK.prototype.set_space=function(ea){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=ea){if(this.zpp_inner.component!=null){this.zpp_inner.component.woken=false}this.zpp_inner.clearcache();if(this.zpp_inner.space!=null){this.zpp_inner.space.outer.zpp_inner.wrap_constraints.remove(this)}if(ea!=null){var eb=ea.zpp_inner.wrap_constraints;if(eb.zpp_inner.reverse_flag){eb.push(this)}else{eb.unshift(this)}}else{this.zpp_inner.space=null}}if(this.zpp_inner.space==null){return null}else{return this.zpp_inner.space.outer}};cK.prototype.get_isSleeping=function(){return this.zpp_inner.component.sleeping};cK.prototype.get_active=function(){return this.zpp_inner.active};cK.prototype.set_active=function(ea){if(this.zpp_inner.active!=ea){if(this.zpp_inner.component!=null){this.zpp_inner.component.woken=false}this.zpp_inner.clearcache();if(ea){this.zpp_inner.active=ea;this.zpp_inner.activate();if(this.zpp_inner.space!=null){if(this.zpp_inner.component!=null){this.zpp_inner.component.sleeping=true}this.zpp_inner.space.wake_constraint(this.zpp_inner,true)}}else{if(this.zpp_inner.space!=null){this.zpp_inner.wake();this.zpp_inner.space.live_constraints.remove(this.zpp_inner)}this.zpp_inner.active=ea;this.zpp_inner.deactivate()}}return this.zpp_inner.active};cK.prototype.get_ignore=function(){return this.zpp_inner.ignore};cK.prototype.set_ignore=function(ea){if(this.zpp_inner.ignore!=ea){this.zpp_inner.ignore=ea;this.zpp_inner.wake()}return this.zpp_inner.ignore};cK.prototype.get_stiff=function(){return this.zpp_inner.stiff};cK.prototype.set_stiff=function(ea){if(this.zpp_inner.stiff!=ea){this.zpp_inner.stiff=ea;this.zpp_inner.wake()}return this.zpp_inner.stiff};cK.prototype.get_frequency=function(){return this.zpp_inner.frequency};cK.prototype.set_frequency=function(ea){if(this.zpp_inner.frequency!=ea){this.zpp_inner.frequency=ea;if(!this.zpp_inner.stiff){this.zpp_inner.wake()}}return this.zpp_inner.frequency};cK.prototype.get_damping=function(){return this.zpp_inner.damping};cK.prototype.set_damping=function(ea){if(this.zpp_inner.damping!=ea){this.zpp_inner.damping=ea;if(!this.zpp_inner.stiff){this.zpp_inner.wake()}}return this.zpp_inner.damping};cK.prototype.get_maxForce=function(){return this.zpp_inner.maxForce};cK.prototype.set_maxForce=function(ea){if(this.zpp_inner.maxForce!=ea){this.zpp_inner.maxForce=ea;this.zpp_inner.wake()}return this.zpp_inner.maxForce};cK.prototype.get_maxError=function(){return this.zpp_inner.maxError};cK.prototype.set_maxError=function(ea){if(this.zpp_inner.maxError!=ea){this.zpp_inner.maxError=ea;this.zpp_inner.wake()}return this.zpp_inner.maxError};cK.prototype.get_breakUnderForce=function(){return this.zpp_inner.breakUnderForce};cK.prototype.set_breakUnderForce=function(ea){if(this.zpp_inner.breakUnderForce!=ea){this.zpp_inner.breakUnderForce=ea;this.zpp_inner.wake()}return this.zpp_inner.breakUnderForce};cK.prototype.get_breakUnderError=function(){return this.zpp_inner.breakUnderError};cK.prototype.set_breakUnderError=function(ea){if(this.zpp_inner.breakUnderError!=ea){this.zpp_inner.breakUnderError=ea;this.zpp_inner.wake()}return this.zpp_inner.breakUnderError};cK.prototype.get_removeOnBreak=function(){return this.zpp_inner.removeOnBreak};cK.prototype.set_removeOnBreak=function(ea){this.zpp_inner.removeOnBreak=ea;return this.zpp_inner.removeOnBreak};cK.prototype.impulse=function(){return null};cK.prototype.bodyImpulse=function(ea){return null};cK.prototype.visitBodies=function(ea){};cK.prototype.get_cbTypes=function(){if(this.zpp_inner.wrap_cbTypes==null){this.zpp_inner.setupcbTypes()}return this.zpp_inner.wrap_cbTypes};cK.prototype.toString=function(){return"{Constraint}"};cK.prototype.copy=function(){return this.zpp_inner.copy()};Object.defineProperty(cK.prototype,"userData",{get:cK.prototype.get_userData});Object.defineProperty(cK.prototype,"compound",{get:cK.prototype.get_compound,set:cK.prototype.set_compound});Object.defineProperty(cK.prototype,"space",{get:cK.prototype.get_space,set:cK.prototype.set_space});Object.defineProperty(cK.prototype,"isSleeping",{get:cK.prototype.get_isSleeping});Object.defineProperty(cK.prototype,"active",{get:cK.prototype.get_active,set:cK.prototype.set_active});Object.defineProperty(cK.prototype,"ignore",{get:cK.prototype.get_ignore,set:cK.prototype.set_ignore});Object.defineProperty(cK.prototype,"stiff",{get:cK.prototype.get_stiff,set:cK.prototype.set_stiff});Object.defineProperty(cK.prototype,"frequency",{get:cK.prototype.get_frequency,set:cK.prototype.set_frequency});Object.defineProperty(cK.prototype,"damping",{get:cK.prototype.get_damping,set:cK.prototype.set_damping});Object.defineProperty(cK.prototype,"maxForce",{get:cK.prototype.get_maxForce,set:cK.prototype.set_maxForce});Object.defineProperty(cK.prototype,"maxError",{get:cK.prototype.get_maxError,set:cK.prototype.set_maxError});Object.defineProperty(cK.prototype,"breakUnderForce",{get:cK.prototype.get_breakUnderForce,set:cK.prototype.set_breakUnderForce});Object.defineProperty(cK.prototype,"breakUnderError",{get:cK.prototype.get_breakUnderError,set:cK.prototype.set_breakUnderError});Object.defineProperty(cK.prototype,"removeOnBreak",{get:cK.prototype.get_removeOnBreak,set:cK.prototype.set_removeOnBreak});Object.defineProperty(cK.prototype,"cbTypes",{get:cK.prototype.get_cbTypes});cK.prototype.__class__=cK;var aA=nape.constraint.AngleJoint=function(ec,ea,eg,ef,ee){if(ee==null){ee=1}this.zpp_inner_zn=null;this.zpp_inner_zn=new dt();this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;cK.call(this);this.zpp_inner.immutable_midstep("Constraint::body1");var ed=ec==null?null:ec.zpp_inner;if(ed!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=ed;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&ed!=null&&this.zpp_inner_zn.b2!=ed){if(ed!=null){ed.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(ed!=null){ed.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}this.zpp_inner.immutable_midstep("AngleJoint::jointMin");if(this.zpp_inner_zn.jointMin!=eg){this.zpp_inner_zn.jointMin=eg;this.zpp_inner.wake()}this.zpp_inner.immutable_midstep("AngleJoint::jointMax");if(this.zpp_inner_zn.jointMax!=ef){this.zpp_inner_zn.jointMax=ef;this.zpp_inner.wake()}this.zpp_inner.immutable_midstep("AngleJoint::ratio");if(this.zpp_inner_zn.ratio!=ee){this.zpp_inner_zn.ratio=ee;this.zpp_inner.wake()}};aA.__name__=["nape","constraint","AngleJoint"];aA.__super__=cK;aA.prototype=Object.create(cK.prototype);aA.prototype.zpp_inner_zn=null;aA.prototype.get_body1=function(){if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};aA.prototype.set_body1=function(ea){this.zpp_inner.immutable_midstep("Constraint::body1");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b2!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};aA.prototype.get_body2=function(){if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};aA.prototype.set_body2=function(ea){this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};aA.prototype.get_jointMin=function(){return this.zpp_inner_zn.jointMin};aA.prototype.set_jointMin=function(ea){this.zpp_inner.immutable_midstep("AngleJoint::jointMin");if(this.zpp_inner_zn.jointMin!=ea){this.zpp_inner_zn.jointMin=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.jointMin};aA.prototype.get_jointMax=function(){return this.zpp_inner_zn.jointMax};aA.prototype.set_jointMax=function(ea){this.zpp_inner.immutable_midstep("AngleJoint::jointMax");if(this.zpp_inner_zn.jointMax!=ea){this.zpp_inner_zn.jointMax=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.jointMax};aA.prototype.get_ratio=function(){return this.zpp_inner_zn.ratio};aA.prototype.set_ratio=function(ea){this.zpp_inner.immutable_midstep("AngleJoint::ratio");if(this.zpp_inner_zn.ratio!=ea){this.zpp_inner_zn.ratio=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.ratio};aA.prototype.isSlack=function(){var ec=this.zpp_inner_zn;var ea;var eb=ec.ratio*ec.b2.rot-ec.b1.rot;if(ec.equal){ea=false;ec.scale=1}else{if(eb<ec.jointMin){ec.scale=-1;ea=false}else{if(eb>ec.jointMax){eb-=ec.jointMax;ec.scale=1;ea=false}else{ec.scale=0;eb=0;ea=true}}}return ea};aA.prototype.impulse=function(){var ea=new bY(1,1);ea.zpp_inner.x[0*ea.zpp_inner.n]=this.zpp_inner_zn.jAcc;return ea};aA.prototype.bodyImpulse=function(ea){if(!this.zpp_inner.active){return q.get(0,0,0)}else{return this.zpp_inner_zn.bodyImpulse(ea.zpp_inner)}};aA.prototype.visitBodies=function(ea){if((this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)!=null){ea(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)}if((this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=null&&(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)){ea(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)}};Object.defineProperty(aA.prototype,"body1",{get:aA.prototype.get_body1,set:aA.prototype.set_body1});Object.defineProperty(aA.prototype,"body2",{get:aA.prototype.get_body2,set:aA.prototype.set_body2});Object.defineProperty(aA.prototype,"jointMin",{get:aA.prototype.get_jointMin,set:aA.prototype.set_jointMin});Object.defineProperty(aA.prototype,"jointMax",{get:aA.prototype.get_jointMax,set:aA.prototype.set_jointMax});Object.defineProperty(aA.prototype,"ratio",{get:aA.prototype.get_ratio,set:aA.prototype.set_ratio});aA.prototype.__class__=aA;var bO=nape.constraint.ConstraintIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};bO.__name__=["nape","constraint","ConstraintIterator"];bO.get=function(ec){var ea;if(bO.zpp_pool==null){aZ.internal=true;var ed=new bO();aZ.internal=false;ea=ed}else{var eb=bO.zpp_pool;bO.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};bO.prototype.zpp_inner=null;bO.prototype.zpp_i=null;bO.prototype.zpp_critical=null;bO.prototype.zpp_next=null;bO.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=bO.zpp_pool;bO.zpp_pool=this;this.zpp_inner=null;return false}};bO.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};bO.prototype.__class__=bO;var bg=nape.constraint.ConstraintList=function(){this.zpp_inner=null;this.zpp_inner=new aZ();this.zpp_inner.outer=this};bg.__name__=["nape","constraint","ConstraintList"];bg.fromArray=function(ed){var ea=new bg();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};bg.prototype.zpp_inner=null;bg.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};bg.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};bg.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer};bg.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};bg.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};bg.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer};bg.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer};bg.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};bg.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};bg.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};bg.prototype.empty=function(){return this.zpp_inner.inner.head==null};bg.prototype.iterator=function(){this.zpp_inner.valmod();return bO.get(this)};bg.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new bg();this.zpp_inner.valmod();var ef=bO.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=bO.zpp_pool;bO.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};bg.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=bO.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=bO.zpp_pool;bO.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};bg.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=bO.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=bO.zpp_pool;bO.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};bg.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=bO.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=bO.zpp_pool;bO.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=bO.zpp_pool;bO.zpp_pool=ec;ec.zpp_inner=null;break}}return this};bg.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(bg.prototype,"length",{get:bg.prototype.get_length});bg.prototype.__class__=bg;var dx=nape.constraint.DistanceJoint=function(ee,ec,eB,ez,es,ex){this.zpp_inner_zn=null;this.zpp_inner_zn=new J();this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;cK.call(this);this.zpp_inner.immutable_midstep("Constraint::body1");var el=ee==null?null:ee.zpp_inner;if(el!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=el;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&el!=null&&this.zpp_inner_zn.b2!=el){if(el!=null){el.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(el!=null){el.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body2");var ei=ec==null?null:ec.zpp_inner;if(ei!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=ei;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&ei!=null&&this.zpp_inner_zn.b1!=ei){if(ei!=null){ei.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(ei!=null){ei.wake()}}}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var eo=this.zpp_inner_zn.wrap_a1;var ew=eB.zpp_inner;if(ew._validate!=null){ew._validate()}var ed=eB.zpp_inner.x;var ev=eB.zpp_inner;if(ev._validate!=null){ev._validate()}var eb=eB.zpp_inner.y;var ey;var et=eo.zpp_inner;if(et._validate!=null){et._validate()}if(eo.zpp_inner.x==ed){var er=eo.zpp_inner;if(er._validate!=null){er._validate()}ey=eo.zpp_inner.y==eb}else{ey=false}if(!ey){eo.zpp_inner.x=ed;eo.zpp_inner.y=eb;var eq=eo.zpp_inner;if(eq._invalidate!=null){eq._invalidate(eq)}}if(eB.zpp_inner.weak){var eA=eB.zpp_inner;eB.zpp_inner.outer=null;eB.zpp_inner=null;eB.zpp_pool=au.poolVec2;au.poolVec2=eB;if(eA.outer!=null){eA.outer.zpp_inner=null;eA.outer=null}eA._isimmutable=null;eA._validate=null;eA._invalidate=null;eA.next=bB.zpp_pool;bB.zpp_pool=eA}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var en=this.zpp_inner_zn.wrap_a2;var ek=ez.zpp_inner;if(ek._validate!=null){ek._validate()}var eu=ez.zpp_inner.x;var eh=ez.zpp_inner;if(eh._validate!=null){eh._validate()}var ea=ez.zpp_inner.y;var eg;var ef=en.zpp_inner;if(ef._validate!=null){ef._validate()}if(en.zpp_inner.x==eu){var em=en.zpp_inner;if(em._validate!=null){em._validate()}eg=en.zpp_inner.y==ea}else{eg=false}if(!eg){en.zpp_inner.x=eu;en.zpp_inner.y=ea;var ej=en.zpp_inner;if(ej._invalidate!=null){ej._invalidate(ej)}}if(ez.zpp_inner.weak){var ep=ez.zpp_inner;ez.zpp_inner.outer=null;ez.zpp_inner=null;ez.zpp_pool=au.poolVec2;au.poolVec2=ez;if(ep.outer!=null){ep.outer.zpp_inner=null;ep.outer=null}ep._isimmutable=null;ep._validate=null;ep._invalidate=null;ep.next=bB.zpp_pool;bB.zpp_pool=ep}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}this.zpp_inner.immutable_midstep("DistanceJoint::jointMin");if(this.zpp_inner_zn.jointMin!=es){this.zpp_inner_zn.jointMin=es;this.zpp_inner.wake()}this.zpp_inner.immutable_midstep("DistanceJoint::jointMax");if(this.zpp_inner_zn.jointMax!=ex){this.zpp_inner_zn.jointMax=ex;this.zpp_inner.wake()}};dx.__name__=["nape","constraint","DistanceJoint"];dx.__super__=cK;dx.prototype=Object.create(cK.prototype);dx.prototype.zpp_inner_zn=null;dx.prototype.get_body1=function(){if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};dx.prototype.set_body1=function(ea){this.zpp_inner.immutable_midstep("Constraint::body1");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b2!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};dx.prototype.get_body2=function(){if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};dx.prototype.set_body2=function(ea){this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};dx.prototype.get_anchor1=function(){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};dx.prototype.set_anchor1=function(ej){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var ed=this.zpp_inner_zn.wrap_a1;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};dx.prototype.get_anchor2=function(){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};dx.prototype.set_anchor2=function(ej){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var ed=this.zpp_inner_zn.wrap_a2;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};dx.prototype.get_jointMin=function(){return this.zpp_inner_zn.jointMin};dx.prototype.set_jointMin=function(ea){this.zpp_inner.immutable_midstep("DistanceJoint::jointMin");if(this.zpp_inner_zn.jointMin!=ea){this.zpp_inner_zn.jointMin=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.jointMin};dx.prototype.get_jointMax=function(){return this.zpp_inner_zn.jointMax};dx.prototype.set_jointMax=function(ea){this.zpp_inner.immutable_midstep("DistanceJoint::jointMax");if(this.zpp_inner_zn.jointMax!=ea){this.zpp_inner_zn.jointMax=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.jointMax};dx.prototype.isSlack=function(){return this.zpp_inner_zn.slack};dx.prototype.impulse=function(){var ea=new bY(1,1);ea.zpp_inner.x[0*ea.zpp_inner.n]=this.zpp_inner_zn.jAcc;return ea};dx.prototype.bodyImpulse=function(ea){if(!this.zpp_inner.active){return q.get()}else{return this.zpp_inner_zn.bodyImpulse(ea.zpp_inner)}};dx.prototype.visitBodies=function(ea){if((this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)!=null){ea(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)}if((this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=null&&(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)){ea(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)}};Object.defineProperty(dx.prototype,"body1",{get:dx.prototype.get_body1,set:dx.prototype.set_body1});Object.defineProperty(dx.prototype,"body2",{get:dx.prototype.get_body2,set:dx.prototype.set_body2});Object.defineProperty(dx.prototype,"anchor1",{get:dx.prototype.get_anchor1,set:dx.prototype.set_anchor1});Object.defineProperty(dx.prototype,"anchor2",{get:dx.prototype.get_anchor2,set:dx.prototype.set_anchor2});Object.defineProperty(dx.prototype,"jointMin",{get:dx.prototype.get_jointMin,set:dx.prototype.set_jointMin});Object.defineProperty(dx.prototype,"jointMax",{get:dx.prototype.get_jointMax,set:dx.prototype.set_jointMax});dx.prototype.__class__=dx;var aO=nape.constraint.LineJoint=function(ee,ed,eb,ea,eh,eK,ek){this.zpp_inner_zn=null;this.zpp_inner_zn=new bR();this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;cK.call(this);this.zpp_inner.immutable_midstep("Constraint::body1");var eg=ee==null?null:ee.zpp_inner;if(eg!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=eg;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eg!=null&&this.zpp_inner_zn.b2!=eg){if(eg!=null){eg.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eg!=null){eg.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body2");var ef=ed==null?null:ed.zpp_inner;if(ef!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=ef;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&ef!=null&&this.zpp_inner_zn.b1!=ef){if(ef!=null){ef.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(ef!=null){ef.wake()}}}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var ec=this.zpp_inner_zn.wrap_a1;var ew=eb.zpp_inner;if(ew._validate!=null){ew._validate()}var es=eb.zpp_inner.x;var ev=eb.zpp_inner;if(ev._validate!=null){ev._validate()}var eq=eb.zpp_inner.y;var ey;var eu=ec.zpp_inner;if(eu._validate!=null){eu._validate()}if(ec.zpp_inner.x==es){var et=ec.zpp_inner;if(et._validate!=null){et._validate()}ey=ec.zpp_inner.y==eq}else{ey=false}if(!ey){ec.zpp_inner.x=es;ec.zpp_inner.y=eq;var er=ec.zpp_inner;if(er._invalidate!=null){er._invalidate(er)}}if(eb.zpp_inner.weak){var el=eb.zpp_inner;eb.zpp_inner.outer=null;eb.zpp_inner=null;eb.zpp_pool=au.poolVec2;au.poolVec2=eb;if(el.outer!=null){el.outer.zpp_inner=null;el.outer=null}el._isimmutable=null;el._validate=null;el._invalidate=null;el.next=bB.zpp_pool;bB.zpp_pool=el}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var ep=this.zpp_inner_zn.wrap_a2;var eo=ea.zpp_inner;if(eo._validate!=null){eo._validate()}var ej=ea.zpp_inner.x;var en=ea.zpp_inner;if(en._validate!=null){en._validate()}var eM=ea.zpp_inner.y;var eJ;var em=ep.zpp_inner;if(em._validate!=null){em._validate()}if(ep.zpp_inner.x==ej){var eH=ep.zpp_inner;if(eH._validate!=null){eH._validate()}eJ=ep.zpp_inner.y==eM}else{eJ=false}if(!eJ){ep.zpp_inner.x=ej;ep.zpp_inner.y=eM;var eG=ep.zpp_inner;if(eG._invalidate!=null){eG._invalidate(eG)}}if(ea.zpp_inner.weak){var ez=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ez.outer!=null){ez.outer.zpp_inner=null;ez.outer=null}ez._isimmutable=null;ez._validate=null;ez._invalidate=null;ez.next=bB.zpp_pool;bB.zpp_pool=ez}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}if(this.zpp_inner_zn.wrap_n==null){this.zpp_inner_zn.setup_n()}var eF=this.zpp_inner_zn.wrap_n;var eE=eh.zpp_inner;if(eE._validate!=null){eE._validate()}var ei=eh.zpp_inner.x;var eD=eh.zpp_inner;if(eD._validate!=null){eD._validate()}var eL=eh.zpp_inner.y;var eI;var eC=eF.zpp_inner;if(eC._validate!=null){eC._validate()}if(eF.zpp_inner.x==ei){var eB=eF.zpp_inner;if(eB._validate!=null){eB._validate()}eI=eF.zpp_inner.y==eL}else{eI=false}if(!eI){eF.zpp_inner.x=ei;eF.zpp_inner.y=eL;var eA=eF.zpp_inner;if(eA._invalidate!=null){eA._invalidate(eA)}}if(eh.zpp_inner.weak){var ex=eh.zpp_inner;eh.zpp_inner.outer=null;eh.zpp_inner=null;eh.zpp_pool=au.poolVec2;au.poolVec2=eh;if(ex.outer!=null){ex.outer.zpp_inner=null;ex.outer=null}ex._isimmutable=null;ex._validate=null;ex._invalidate=null;ex.next=bB.zpp_pool;bB.zpp_pool=ex}if(this.zpp_inner_zn.wrap_n==null){this.zpp_inner_zn.setup_n()}this.zpp_inner.immutable_midstep("LineJoint::jointMin");if(this.zpp_inner_zn.jointMin!=eK){this.zpp_inner_zn.jointMin=eK;this.zpp_inner.wake()}this.zpp_inner.immutable_midstep("LineJoint::jointMax");if(this.zpp_inner_zn.jointMax!=ek){this.zpp_inner_zn.jointMax=ek;this.zpp_inner.wake()}};aO.__name__=["nape","constraint","LineJoint"];aO.__super__=cK;aO.prototype=Object.create(cK.prototype);aO.prototype.zpp_inner_zn=null;aO.prototype.get_body1=function(){if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};aO.prototype.set_body1=function(ea){this.zpp_inner.immutable_midstep("Constraint::body1");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b2!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};aO.prototype.get_body2=function(){if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};aO.prototype.set_body2=function(ea){this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};aO.prototype.get_anchor1=function(){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};aO.prototype.set_anchor1=function(ej){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var ed=this.zpp_inner_zn.wrap_a1;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};aO.prototype.get_anchor2=function(){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};aO.prototype.set_anchor2=function(ej){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var ed=this.zpp_inner_zn.wrap_a2;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};aO.prototype.get_direction=function(){if(this.zpp_inner_zn.wrap_n==null){this.zpp_inner_zn.setup_n()}return this.zpp_inner_zn.wrap_n};aO.prototype.set_direction=function(ei){if(this.zpp_inner_zn.wrap_n==null){this.zpp_inner_zn.setup_n()}var ed=this.zpp_inner_zn.wrap_n;var eg=ei.zpp_inner;if(eg._validate!=null){eg._validate()}var ej=ei.zpp_inner.x;var ef=ei.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ei.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ej){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ej;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ei.zpp_inner.weak){var ek=ei.zpp_inner;ei.zpp_inner.outer=null;ei.zpp_inner=null;ei.zpp_pool=au.poolVec2;au.poolVec2=ei;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_n==null){this.zpp_inner_zn.setup_n()}return this.zpp_inner_zn.wrap_n};aO.prototype.get_jointMin=function(){return this.zpp_inner_zn.jointMin};aO.prototype.set_jointMin=function(ea){this.zpp_inner.immutable_midstep("LineJoint::jointMin");if(this.zpp_inner_zn.jointMin!=ea){this.zpp_inner_zn.jointMin=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.jointMin};aO.prototype.get_jointMax=function(){return this.zpp_inner_zn.jointMax};aO.prototype.set_jointMax=function(ea){this.zpp_inner.immutable_midstep("LineJoint::jointMax");if(this.zpp_inner_zn.jointMax!=ea){this.zpp_inner_zn.jointMax=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.jointMax};aO.prototype.impulse=function(){var ea=new bY(2,1);ea.zpp_inner.x[0*ea.zpp_inner.n]=this.zpp_inner_zn.jAccx;ea.zpp_inner.x[ea.zpp_inner.n]=this.zpp_inner_zn.jAccy;return ea};aO.prototype.bodyImpulse=function(ea){if(!this.zpp_inner.active){return q.get()}else{return this.zpp_inner_zn.bodyImpulse(ea.zpp_inner)}};aO.prototype.visitBodies=function(ea){if((this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)!=null){ea(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)}if((this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=null&&(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)){ea(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)}};Object.defineProperty(aO.prototype,"body1",{get:aO.prototype.get_body1,set:aO.prototype.set_body1});Object.defineProperty(aO.prototype,"body2",{get:aO.prototype.get_body2,set:aO.prototype.set_body2});Object.defineProperty(aO.prototype,"anchor1",{get:aO.prototype.get_anchor1,set:aO.prototype.set_anchor1});Object.defineProperty(aO.prototype,"anchor2",{get:aO.prototype.get_anchor2,set:aO.prototype.set_anchor2});Object.defineProperty(aO.prototype,"direction",{get:aO.prototype.get_direction,set:aO.prototype.set_direction});Object.defineProperty(aO.prototype,"jointMin",{get:aO.prototype.get_jointMin,set:aO.prototype.set_jointMin});Object.defineProperty(aO.prototype,"jointMax",{get:aO.prototype.get_jointMax,set:aO.prototype.set_jointMax});aO.prototype.__class__=aO;var bQ=nape.constraint.MotorJoint=function(ec,ea,ef,ee){if(ee==null){ee=1}if(ef==null){ef=0}this.zpp_inner_zn=null;this.zpp_inner_zn=new y();this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;cK.call(this);this.zpp_inner.immutable_midstep("Constraint::body1");var ed=ec==null?null:ec.zpp_inner;if(ed!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=ed;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&ed!=null&&this.zpp_inner_zn.b2!=ed){if(ed!=null){ed.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(ed!=null){ed.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}this.zpp_inner.immutable_midstep("MotorJoint::rate");if(this.zpp_inner_zn.rate!=ef){this.zpp_inner_zn.rate=ef;this.zpp_inner.wake()}this.zpp_inner.immutable_midstep("MotorJoint::ratio");if(this.zpp_inner_zn.ratio!=ee){this.zpp_inner_zn.ratio=ee;this.zpp_inner.wake()}};bQ.__name__=["nape","constraint","MotorJoint"];bQ.__super__=cK;bQ.prototype=Object.create(cK.prototype);bQ.prototype.zpp_inner_zn=null;bQ.prototype.get_body1=function(){if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};bQ.prototype.set_body1=function(ea){this.zpp_inner.immutable_midstep("Constraint::body1");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b2!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};bQ.prototype.get_body2=function(){if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};bQ.prototype.set_body2=function(ea){this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};bQ.prototype.get_ratio=function(){return this.zpp_inner_zn.ratio};bQ.prototype.set_ratio=function(ea){this.zpp_inner.immutable_midstep("MotorJoint::ratio");if(this.zpp_inner_zn.ratio!=ea){this.zpp_inner_zn.ratio=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.ratio};bQ.prototype.get_rate=function(){return this.zpp_inner_zn.rate};bQ.prototype.set_rate=function(ea){this.zpp_inner.immutable_midstep("MotorJoint::rate");if(this.zpp_inner_zn.rate!=ea){this.zpp_inner_zn.rate=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.rate};bQ.prototype.impulse=function(){var ea=new bY(1,1);ea.zpp_inner.x[0*ea.zpp_inner.n]=this.zpp_inner_zn.jAcc;return ea};bQ.prototype.bodyImpulse=function(ea){if(!this.zpp_inner.active){return q.get()}else{return this.zpp_inner_zn.bodyImpulse(ea.zpp_inner)}};bQ.prototype.visitBodies=function(ea){if((this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)!=null){ea(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)}if((this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=null&&(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)){ea(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)}};Object.defineProperty(bQ.prototype,"body1",{get:bQ.prototype.get_body1,set:bQ.prototype.set_body1});Object.defineProperty(bQ.prototype,"body2",{get:bQ.prototype.get_body2,set:bQ.prototype.set_body2});Object.defineProperty(bQ.prototype,"ratio",{get:bQ.prototype.get_ratio,set:bQ.prototype.set_ratio});Object.defineProperty(bQ.prototype,"rate",{get:bQ.prototype.get_rate,set:bQ.prototype.set_rate});bQ.prototype.__class__=bQ;var bV=nape.constraint.PivotJoint=function(ee,ec,ez,ex){this.zpp_inner_zn=null;this.zpp_inner_zn=new D();this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;cK.call(this);this.zpp_inner.immutable_midstep("Constraint::body1");var el=ee==null?null:ee.zpp_inner;if(el!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=el;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&el!=null&&this.zpp_inner_zn.b2!=el){if(el!=null){el.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(el!=null){el.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body2");var ei=ec==null?null:ec.zpp_inner;if(ei!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=ei;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&ei!=null&&this.zpp_inner_zn.b1!=ei){if(ei!=null){ei.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(ei!=null){ei.wake()}}}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var en=this.zpp_inner_zn.wrap_a1;var ev=ez.zpp_inner;if(ev._validate!=null){ev._validate()}var ed=ez.zpp_inner.x;var eu=ez.zpp_inner;if(eu._validate!=null){eu._validate()}var eb=ez.zpp_inner.y;var ew;var es=en.zpp_inner;if(es._validate!=null){es._validate()}if(en.zpp_inner.x==ed){var er=en.zpp_inner;if(er._validate!=null){er._validate()}ew=en.zpp_inner.y==eb}else{ew=false}if(!ew){en.zpp_inner.x=ed;en.zpp_inner.y=eb;var eq=en.zpp_inner;if(eq._invalidate!=null){eq._invalidate(eq)}}if(ez.zpp_inner.weak){var ey=ez.zpp_inner;ez.zpp_inner.outer=null;ez.zpp_inner=null;ez.zpp_pool=au.poolVec2;au.poolVec2=ez;if(ey.outer!=null){ey.outer.zpp_inner=null;ey.outer=null}ey._isimmutable=null;ey._validate=null;ey._invalidate=null;ey.next=bB.zpp_pool;bB.zpp_pool=ey}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var eo=this.zpp_inner_zn.wrap_a2;var ek=ex.zpp_inner;if(ek._validate!=null){ek._validate()}var et=ex.zpp_inner.x;var eh=ex.zpp_inner;if(eh._validate!=null){eh._validate()}var ea=ex.zpp_inner.y;var eg;var ef=eo.zpp_inner;if(ef._validate!=null){ef._validate()}if(eo.zpp_inner.x==et){var em=eo.zpp_inner;if(em._validate!=null){em._validate()}eg=eo.zpp_inner.y==ea}else{eg=false}if(!eg){eo.zpp_inner.x=et;eo.zpp_inner.y=ea;var ej=eo.zpp_inner;if(ej._invalidate!=null){ej._invalidate(ej)}}if(ex.zpp_inner.weak){var ep=ex.zpp_inner;ex.zpp_inner.outer=null;ex.zpp_inner=null;ex.zpp_pool=au.poolVec2;au.poolVec2=ex;if(ep.outer!=null){ep.outer.zpp_inner=null;ep.outer=null}ep._isimmutable=null;ep._validate=null;ep._invalidate=null;ep.next=bB.zpp_pool;bB.zpp_pool=ep}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}};bV.__name__=["nape","constraint","PivotJoint"];bV.__super__=cK;bV.prototype=Object.create(cK.prototype);bV.prototype.zpp_inner_zn=null;bV.prototype.get_body1=function(){if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};bV.prototype.set_body1=function(ea){this.zpp_inner.immutable_midstep("Constraint::body1");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b2!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};bV.prototype.get_body2=function(){if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};bV.prototype.set_body2=function(ea){this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};bV.prototype.get_anchor1=function(){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};bV.prototype.set_anchor1=function(ej){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var ed=this.zpp_inner_zn.wrap_a1;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};bV.prototype.get_anchor2=function(){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};bV.prototype.set_anchor2=function(ej){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var ed=this.zpp_inner_zn.wrap_a2;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};bV.prototype.impulse=function(){var ea=new bY(2,1);ea.zpp_inner.x[0*ea.zpp_inner.n]=this.zpp_inner_zn.jAccx;ea.zpp_inner.x[ea.zpp_inner.n]=this.zpp_inner_zn.jAccy;return ea};bV.prototype.bodyImpulse=function(ea){if(!this.zpp_inner.active){return q.get()}else{return this.zpp_inner_zn.bodyImpulse(ea.zpp_inner)}};bV.prototype.visitBodies=function(ea){if((this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)!=null){ea(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)}if((this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=null&&(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)){ea(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)}};Object.defineProperty(bV.prototype,"body1",{get:bV.prototype.get_body1,set:bV.prototype.set_body1});Object.defineProperty(bV.prototype,"body2",{get:bV.prototype.get_body2,set:bV.prototype.set_body2});Object.defineProperty(bV.prototype,"anchor1",{get:bV.prototype.get_anchor1,set:bV.prototype.set_anchor1});Object.defineProperty(bV.prototype,"anchor2",{get:bV.prototype.get_anchor2,set:bV.prototype.set_anchor2});bV.prototype.__class__=bV;var dy=nape.constraint.PulleyJoint=function(ek,ei,eg,ef,ed,ec,eb,ea,eZ,eq,eF){if(eF==null){eF=1}this.zpp_inner_zn=null;this.zpp_inner_zn=new N();this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;cK.call(this);this.zpp_inner.immutable_midstep("Constraint::body1");var em=ek==null?null:ek.zpp_inner;if(em!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1&&this.zpp_inner_zn.b3!=this.zpp_inner_zn.b1&&this.zpp_inner_zn.b4!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=em;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&em!=null&&this.zpp_inner_zn.b2!=em&&this.zpp_inner_zn.b3!=em&&this.zpp_inner_zn.b4!=em){if(em!=null){em.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(em!=null){em.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body2");var el=ei==null?null:ei.zpp_inner;if(el!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2&&this.zpp_inner_zn.b3!=this.zpp_inner_zn.b2&&this.zpp_inner_zn.b4!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=el;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&el!=null&&this.zpp_inner_zn.b1!=el&&this.zpp_inner_zn.b3!=el&&this.zpp_inner_zn.b4!=el){if(el!=null){el.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(el!=null){el.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body3");var ej=eg==null?null:eg.zpp_inner;if(ej!=this.zpp_inner_zn.b3){if(this.zpp_inner_zn.b3!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b3&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b3&&this.zpp_inner_zn.b4!=this.zpp_inner_zn.b3){if(this.zpp_inner_zn.b3!=null){this.zpp_inner_zn.b3.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b3.wake()}}this.zpp_inner_zn.b3=ej;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&ej!=null&&this.zpp_inner_zn.b1!=ej&&this.zpp_inner_zn.b2!=ej&&this.zpp_inner_zn.b4!=ej){if(ej!=null){ej.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(ej!=null){ej.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body4");var eh=ef==null?null:ef.zpp_inner;if(eh!=this.zpp_inner_zn.b4){if(this.zpp_inner_zn.b4!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b4&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b4&&this.zpp_inner_zn.b3!=this.zpp_inner_zn.b4){if(this.zpp_inner_zn.b4!=null){this.zpp_inner_zn.b4.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b4.wake()}}this.zpp_inner_zn.b4=eh;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eh!=null&&this.zpp_inner_zn.b1!=eh&&this.zpp_inner_zn.b2!=eh&&this.zpp_inner_zn.b3!=eh){if(eh!=null){eh.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eh!=null){eh.wake()}}}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var ee=this.zpp_inner_zn.wrap_a1;var eH=ed.zpp_inner;if(eH._validate!=null){eH._validate()}var eC=ed.zpp_inner.x;var eG=ed.zpp_inner;if(eG._validate!=null){eG._validate()}var eA=ed.zpp_inner.y;var eK;var eE=ee.zpp_inner;if(eE._validate!=null){eE._validate()}if(ee.zpp_inner.x==eC){var eD=ee.zpp_inner;if(eD._validate!=null){eD._validate()}eK=ee.zpp_inner.y==eA}else{eK=false}if(!eK){ee.zpp_inner.x=eC;ee.zpp_inner.y=eA;var eB=ee.zpp_inner;if(eB._invalidate!=null){eB._invalidate(eB)}}if(ed.zpp_inner.weak){var er=ed.zpp_inner;ed.zpp_inner.outer=null;ed.zpp_inner=null;ed.zpp_pool=au.poolVec2;au.poolVec2=ed;if(er.outer!=null){er.outer.zpp_inner=null;er.outer=null}er._isimmutable=null;er._validate=null;er._invalidate=null;er.next=bB.zpp_pool;bB.zpp_pool=er}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var ez=this.zpp_inner_zn.wrap_a2;var ey=ec.zpp_inner;if(ey._validate!=null){ey._validate()}var ep=ec.zpp_inner.x;var ex=ec.zpp_inner;if(ex._validate!=null){ex._validate()}var e2=ec.zpp_inner.y;var eY;var ew=ez.zpp_inner;if(ew._validate!=null){ew._validate()}if(ez.zpp_inner.x==ep){var eX=ez.zpp_inner;if(eX._validate!=null){eX._validate()}eY=ez.zpp_inner.y==e2}else{eY=false}if(!eY){ez.zpp_inner.x=ep;ez.zpp_inner.y=e2;var eV=ez.zpp_inner;if(eV._invalidate!=null){eV._invalidate(eV)}}if(ec.zpp_inner.weak){var eM=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(eM.outer!=null){eM.outer.zpp_inner=null;eM.outer=null}eM._isimmutable=null;eM._validate=null;eM._invalidate=null;eM.next=bB.zpp_pool;bB.zpp_pool=eM}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}if(this.zpp_inner_zn.wrap_a3==null){this.zpp_inner_zn.setup_a3()}var eT=this.zpp_inner_zn.wrap_a3;var eS=eb.zpp_inner;if(eS._validate!=null){eS._validate()}var eo=eb.zpp_inner.x;var eR=eb.zpp_inner;if(eR._validate!=null){eR._validate()}var e1=eb.zpp_inner.y;var eW;var eQ=eT.zpp_inner;if(eQ._validate!=null){eQ._validate()}if(eT.zpp_inner.x==eo){var eP=eT.zpp_inner;if(eP._validate!=null){eP._validate()}eW=eT.zpp_inner.y==e1}else{eW=false}if(!eW){eT.zpp_inner.x=eo;eT.zpp_inner.y=e1;var eO=eT.zpp_inner;if(eO._invalidate!=null){eO._invalidate(eO)}}if(eb.zpp_inner.weak){var eJ=eb.zpp_inner;eb.zpp_inner.outer=null;eb.zpp_inner=null;eb.zpp_pool=au.poolVec2;au.poolVec2=eb;if(eJ.outer!=null){eJ.outer.zpp_inner=null;eJ.outer=null}eJ._isimmutable=null;eJ._validate=null;eJ._invalidate=null;eJ.next=bB.zpp_pool;bB.zpp_pool=eJ}if(this.zpp_inner_zn.wrap_a3==null){this.zpp_inner_zn.setup_a3()}if(this.zpp_inner_zn.wrap_a4==null){this.zpp_inner_zn.setup_a4()}var eN=this.zpp_inner_zn.wrap_a4;var eL=ea.zpp_inner;if(eL._validate!=null){eL._validate()}var en=ea.zpp_inner.x;var ev=ea.zpp_inner;if(ev._validate!=null){ev._validate()}var e0=ea.zpp_inner.y;var eU;var eu=eN.zpp_inner;if(eu._validate!=null){eu._validate()}if(eN.zpp_inner.x==en){var et=eN.zpp_inner;if(et._validate!=null){et._validate()}eU=eN.zpp_inner.y==e0}else{eU=false}if(!eU){eN.zpp_inner.x=en;eN.zpp_inner.y=e0;var es=eN.zpp_inner;if(es._invalidate!=null){es._invalidate(es)}}if(ea.zpp_inner.weak){var eI=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eI.outer!=null){eI.outer.zpp_inner=null;eI.outer=null}eI._isimmutable=null;eI._validate=null;eI._invalidate=null;eI.next=bB.zpp_pool;bB.zpp_pool=eI}if(this.zpp_inner_zn.wrap_a4==null){this.zpp_inner_zn.setup_a4()}this.zpp_inner.immutable_midstep("PulleyJoint::ratio");if(this.zpp_inner_zn.ratio!=eF){this.zpp_inner_zn.ratio=eF;this.zpp_inner.wake()}this.zpp_inner.immutable_midstep("PulleyJoint::jointMin");if(this.zpp_inner_zn.jointMin!=eZ){this.zpp_inner_zn.jointMin=eZ;this.zpp_inner.wake()}this.zpp_inner.immutable_midstep("PulleyJoint::jointMax");if(this.zpp_inner_zn.jointMax!=eq){this.zpp_inner_zn.jointMax=eq;this.zpp_inner.wake()}};dy.__name__=["nape","constraint","PulleyJoint"];dy.__super__=cK;dy.prototype=Object.create(cK.prototype);dy.prototype.zpp_inner_zn=null;dy.prototype.get_body1=function(){if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};dy.prototype.set_body1=function(ea){this.zpp_inner.immutable_midstep("Constraint::body1");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1&&this.zpp_inner_zn.b3!=this.zpp_inner_zn.b1&&this.zpp_inner_zn.b4!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b2!=eb&&this.zpp_inner_zn.b3!=eb&&this.zpp_inner_zn.b4!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};dy.prototype.get_body2=function(){if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};dy.prototype.set_body2=function(ea){this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2&&this.zpp_inner_zn.b3!=this.zpp_inner_zn.b2&&this.zpp_inner_zn.b4!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb&&this.zpp_inner_zn.b3!=eb&&this.zpp_inner_zn.b4!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};dy.prototype.get_body3=function(){if(this.zpp_inner_zn.b3==null){return null}else{return this.zpp_inner_zn.b3.outer}};dy.prototype.set_body3=function(ea){this.zpp_inner.immutable_midstep("Constraint::body3");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b3){if(this.zpp_inner_zn.b3!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b3&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b3&&this.zpp_inner_zn.b4!=this.zpp_inner_zn.b3){if(this.zpp_inner_zn.b3!=null){this.zpp_inner_zn.b3.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b3.wake()}}this.zpp_inner_zn.b3=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb&&this.zpp_inner_zn.b2!=eb&&this.zpp_inner_zn.b4!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b3==null){return null}else{return this.zpp_inner_zn.b3.outer}};dy.prototype.get_body4=function(){if(this.zpp_inner_zn.b4==null){return null}else{return this.zpp_inner_zn.b4.outer}};dy.prototype.set_body4=function(ea){this.zpp_inner.immutable_midstep("Constraint::body4");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b4){if(this.zpp_inner_zn.b4!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b4&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b4&&this.zpp_inner_zn.b3!=this.zpp_inner_zn.b4){if(this.zpp_inner_zn.b4!=null){this.zpp_inner_zn.b4.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b4.wake()}}this.zpp_inner_zn.b4=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb&&this.zpp_inner_zn.b2!=eb&&this.zpp_inner_zn.b3!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b4==null){return null}else{return this.zpp_inner_zn.b4.outer}};dy.prototype.get_anchor1=function(){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};dy.prototype.set_anchor1=function(ej){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var ed=this.zpp_inner_zn.wrap_a1;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};dy.prototype.get_anchor2=function(){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};dy.prototype.set_anchor2=function(ej){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var ed=this.zpp_inner_zn.wrap_a2;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};dy.prototype.get_anchor3=function(){if(this.zpp_inner_zn.wrap_a3==null){this.zpp_inner_zn.setup_a3()}return this.zpp_inner_zn.wrap_a3};dy.prototype.set_anchor3=function(ej){if(this.zpp_inner_zn.wrap_a3==null){this.zpp_inner_zn.setup_a3()}var ed=this.zpp_inner_zn.wrap_a3;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a3==null){this.zpp_inner_zn.setup_a3()}return this.zpp_inner_zn.wrap_a3};dy.prototype.get_anchor4=function(){if(this.zpp_inner_zn.wrap_a4==null){this.zpp_inner_zn.setup_a4()}return this.zpp_inner_zn.wrap_a4};dy.prototype.set_anchor4=function(ej){if(this.zpp_inner_zn.wrap_a4==null){this.zpp_inner_zn.setup_a4()}var ed=this.zpp_inner_zn.wrap_a4;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a4==null){this.zpp_inner_zn.setup_a4()}return this.zpp_inner_zn.wrap_a4};dy.prototype.get_jointMin=function(){return this.zpp_inner_zn.jointMin};dy.prototype.set_jointMin=function(ea){this.zpp_inner.immutable_midstep("PulleyJoint::jointMin");if(this.zpp_inner_zn.jointMin!=ea){this.zpp_inner_zn.jointMin=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.jointMin};dy.prototype.get_jointMax=function(){return this.zpp_inner_zn.jointMax};dy.prototype.set_jointMax=function(ea){this.zpp_inner.immutable_midstep("PulleyJoint::jointMax");if(this.zpp_inner_zn.jointMax!=ea){this.zpp_inner_zn.jointMax=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.jointMax};dy.prototype.get_ratio=function(){return this.zpp_inner_zn.ratio};dy.prototype.set_ratio=function(ea){this.zpp_inner.immutable_midstep("PulleyJoint::ratio");if(this.zpp_inner_zn.ratio!=ea){this.zpp_inner_zn.ratio=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.ratio};dy.prototype.isSlack=function(){return this.zpp_inner_zn.slack};dy.prototype.impulse=function(){var ea=new bY(1,1);ea.zpp_inner.x[0*ea.zpp_inner.n]=this.zpp_inner_zn.jAcc;return ea};dy.prototype.bodyImpulse=function(ea){if(!this.zpp_inner.active){return q.get()}else{return this.zpp_inner_zn.bodyImpulse(ea.zpp_inner)}};dy.prototype.visitBodies=function(ea){if((this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)!=null){ea(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)}if((this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=null&&(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)){ea(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)}if((this.zpp_inner_zn.b3==null?null:this.zpp_inner_zn.b3.outer)!=null&&(this.zpp_inner_zn.b3==null?null:this.zpp_inner_zn.b3.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)&&(this.zpp_inner_zn.b3==null?null:this.zpp_inner_zn.b3.outer)!=(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)){ea(this.zpp_inner_zn.b3==null?null:this.zpp_inner_zn.b3.outer)}if((this.zpp_inner_zn.b4==null?null:this.zpp_inner_zn.b4.outer)!=null&&(this.zpp_inner_zn.b4==null?null:this.zpp_inner_zn.b4.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)&&(this.zpp_inner_zn.b4==null?null:this.zpp_inner_zn.b4.outer)!=(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)&&(this.zpp_inner_zn.b4==null?null:this.zpp_inner_zn.b4.outer)!=(this.zpp_inner_zn.b3==null?null:this.zpp_inner_zn.b3.outer)){ea(this.zpp_inner_zn.b4==null?null:this.zpp_inner_zn.b4.outer)}};Object.defineProperty(dy.prototype,"body1",{get:dy.prototype.get_body1,set:dy.prototype.set_body1});Object.defineProperty(dy.prototype,"body2",{get:dy.prototype.get_body2,set:dy.prototype.set_body2});Object.defineProperty(dy.prototype,"body3",{get:dy.prototype.get_body3,set:dy.prototype.set_body3});Object.defineProperty(dy.prototype,"body4",{get:dy.prototype.get_body4,set:dy.prototype.set_body4});Object.defineProperty(dy.prototype,"anchor1",{get:dy.prototype.get_anchor1,set:dy.prototype.set_anchor1});Object.defineProperty(dy.prototype,"anchor2",{get:dy.prototype.get_anchor2,set:dy.prototype.set_anchor2});Object.defineProperty(dy.prototype,"anchor3",{get:dy.prototype.get_anchor3,set:dy.prototype.set_anchor3});Object.defineProperty(dy.prototype,"anchor4",{get:dy.prototype.get_anchor4,set:dy.prototype.set_anchor4});Object.defineProperty(dy.prototype,"jointMin",{get:dy.prototype.get_jointMin,set:dy.prototype.set_jointMin});Object.defineProperty(dy.prototype,"jointMax",{get:dy.prototype.get_jointMax,set:dy.prototype.set_jointMax});Object.defineProperty(dy.prototype,"ratio",{get:dy.prototype.get_ratio,set:dy.prototype.set_ratio});dy.prototype.__class__=dy;var aU=nape.constraint.UserConstraint=function(eb,ea){if(ea==null){ea=false}this.zpp_inner_zn=null;this.zpp_inner_zn=new b4(eb,ea);this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;cK.call(this)};aU.__name__=["nape","constraint","UserConstraint"];aU.__super__=cK;aU.prototype=Object.create(cK.prototype);aU.prototype.zpp_inner_zn=null;aU.prototype.__bindVec2=function(){var ea=new r();ea.zpp_inner._inuse=true;ea.zpp_inner._invalidate=(bo=this.zpp_inner_zn,dX(bo,bo.bindVec2_invalidate));return ea};aU.prototype.__copy=function(){return null};aU.prototype.__broken=function(){};aU.prototype.__validate=function(){};aU.prototype.__draw=function(ea){};aU.prototype.__prepare=function(){};aU.prototype.__position=function(ea){};aU.prototype.__velocity=function(ea){};aU.prototype.__eff_mass=function(ea){};aU.prototype.__clamp=function(ea){};aU.prototype.__impulse=function(ec,ea,eb){};aU.prototype.impulse=function(){var ea=new bY(this.zpp_inner_zn.dim,1);var ec=0;var ed=this.zpp_inner_zn.dim;while(ec<ed){var eb=ec++;ea.zpp_inner.x[eb*ea.zpp_inner.n]=this.zpp_inner_zn.jAcc[eb]}return ea};aU.prototype.bodyImpulse=function(ea){if(!this.zpp_inner.active){return q.get()}else{return this.zpp_inner_zn.bodyImpulse(ea.zpp_inner)}};aU.prototype.visitBodies=function(eb){var ed=0;var ec=this.zpp_inner_zn.bodies.length;while(ed<ec){var ea=this.zpp_inner_zn.bodies[ed];if(ea.body!=null){var ef=false;var ee=ed+1;while(ee<ec){if(this.zpp_inner_zn.bodies[ee++].body==ea.body){ef=true;break}}if(!ef){eb(ea.body.outer)}}++ed}};aU.prototype.__invalidate=function(){this.zpp_inner.immutable_midstep("UserConstraint::invalidate()");if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake()}};aU.prototype.__registerBody=function(ea,eb){this.zpp_inner.immutable_midstep("UserConstraint::registerBody(..)");if(ea!=eb){if(ea!=null){this.zpp_inner_zn.remBody(ea.zpp_inner);if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){ea.zpp_inner.wake()}}if(eb!=null){this.zpp_inner_zn.addBody(eb.zpp_inner)}this.zpp_inner.wake();if(eb!=null){eb.zpp_inner.wake()}}return eb};aU.prototype.__class__=aU;var cX=nape.constraint.WeldJoint=function(ef,ed,eA,ey,eb){if(eb==null){eb=0}this.zpp_inner_zn=null;this.zpp_inner_zn=new aC();this.zpp_inner=this.zpp_inner_zn;this.zpp_inner.outer=this;this.zpp_inner_zn.outer_zn=this;cK.call(this);this.zpp_inner.immutable_midstep("Constraint::body1");var em=ef==null?null:ef.zpp_inner;if(em!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=em;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&em!=null&&this.zpp_inner_zn.b2!=em){if(em!=null){em.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(em!=null){em.wake()}}}this.zpp_inner.immutable_midstep("Constraint::body2");var ej=ed==null?null:ed.zpp_inner;if(ej!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=ej;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&ej!=null&&this.zpp_inner_zn.b1!=ej){if(ej!=null){ej.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(ej!=null){ej.wake()}}}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var ep=this.zpp_inner_zn.wrap_a1;var ew=eA.zpp_inner;if(ew._validate!=null){ew._validate()}var ee=eA.zpp_inner.x;var ev=eA.zpp_inner;if(ev._validate!=null){ev._validate()}var ec=eA.zpp_inner.y;var ex;var et=ep.zpp_inner;if(et._validate!=null){et._validate()}if(ep.zpp_inner.x==ee){var es=ep.zpp_inner;if(es._validate!=null){es._validate()}ex=ep.zpp_inner.y==ec}else{ex=false}if(!ex){ep.zpp_inner.x=ee;ep.zpp_inner.y=ec;var er=ep.zpp_inner;if(er._invalidate!=null){er._invalidate(er)}}if(eA.zpp_inner.weak){var ez=eA.zpp_inner;eA.zpp_inner.outer=null;eA.zpp_inner=null;eA.zpp_pool=au.poolVec2;au.poolVec2=eA;if(ez.outer!=null){ez.outer.zpp_inner=null;ez.outer=null}ez._isimmutable=null;ez._validate=null;ez._invalidate=null;ez.next=bB.zpp_pool;bB.zpp_pool=ez}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var eo=this.zpp_inner_zn.wrap_a2;var el=ey.zpp_inner;if(el._validate!=null){el._validate()}var eu=ey.zpp_inner.x;var ei=ey.zpp_inner;if(ei._validate!=null){ei._validate()}var ea=ey.zpp_inner.y;var eh;var eg=eo.zpp_inner;if(eg._validate!=null){eg._validate()}if(eo.zpp_inner.x==eu){var en=eo.zpp_inner;if(en._validate!=null){en._validate()}eh=eo.zpp_inner.y==ea}else{eh=false}if(!eh){eo.zpp_inner.x=eu;eo.zpp_inner.y=ea;var ek=eo.zpp_inner;if(ek._invalidate!=null){ek._invalidate(ek)}}if(ey.zpp_inner.weak){var eq=ey.zpp_inner;ey.zpp_inner.outer=null;ey.zpp_inner=null;ey.zpp_pool=au.poolVec2;au.poolVec2=ey;if(eq.outer!=null){eq.outer.zpp_inner=null;eq.outer=null}eq._isimmutable=null;eq._validate=null;eq._invalidate=null;eq.next=bB.zpp_pool;bB.zpp_pool=eq}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}this.zpp_inner.immutable_midstep("WeldJoint::phase");if(this.zpp_inner_zn.phase!=eb){this.zpp_inner_zn.phase=eb;this.zpp_inner.wake()}};cX.__name__=["nape","constraint","WeldJoint"];cX.__super__=cK;cX.prototype=Object.create(cK.prototype);cX.prototype.zpp_inner_zn=null;cX.prototype.get_body1=function(){if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};cX.prototype.set_body1=function(ea){this.zpp_inner.immutable_midstep("Constraint::body1");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b2!=this.zpp_inner_zn.b1){if(this.zpp_inner_zn.b1!=null){this.zpp_inner_zn.b1.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b1.wake()}}this.zpp_inner_zn.b1=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b2!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b1==null){return null}else{return this.zpp_inner_zn.b1.outer}};cX.prototype.get_body2=function(){if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};cX.prototype.set_body2=function(ea){this.zpp_inner.immutable_midstep("Constraint::body2");var eb=ea==null?null:ea.zpp_inner;if(eb!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&this.zpp_inner_zn.b1!=this.zpp_inner_zn.b2){if(this.zpp_inner_zn.b2!=null){this.zpp_inner_zn.b2.constraints.remove(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner_zn.b2.wake()}}this.zpp_inner_zn.b2=eb;if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null&&eb!=null&&this.zpp_inner_zn.b1!=eb){if(eb!=null){eb.constraints.add(this.zpp_inner)}}if(this.zpp_inner.active&&(this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.wake();if(eb!=null){eb.wake()}}}if(this.zpp_inner_zn.b2==null){return null}else{return this.zpp_inner_zn.b2.outer}};cX.prototype.get_anchor1=function(){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};cX.prototype.set_anchor1=function(ej){if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}var ed=this.zpp_inner_zn.wrap_a1;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a1==null){this.zpp_inner_zn.setup_a1()}return this.zpp_inner_zn.wrap_a1};cX.prototype.get_anchor2=function(){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};cX.prototype.set_anchor2=function(ej){if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}var ed=this.zpp_inner_zn.wrap_a2;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner_zn.wrap_a2==null){this.zpp_inner_zn.setup_a2()}return this.zpp_inner_zn.wrap_a2};cX.prototype.get_phase=function(){return this.zpp_inner_zn.phase};cX.prototype.set_phase=function(ea){this.zpp_inner.immutable_midstep("WeldJoint::phase");if(this.zpp_inner_zn.phase!=ea){this.zpp_inner_zn.phase=ea;this.zpp_inner.wake()}return this.zpp_inner_zn.phase};cX.prototype.impulse=function(){var ea=new bY(3,1);ea.zpp_inner.x[0*ea.zpp_inner.n]=this.zpp_inner_zn.jAccx;ea.zpp_inner.x[ea.zpp_inner.n]=this.zpp_inner_zn.jAccy;ea.zpp_inner.x[ea.zpp_inner.n]=this.zpp_inner_zn.jAccz;return ea};cX.prototype.bodyImpulse=function(ea){if(!this.zpp_inner.active){return q.get()}else{return this.zpp_inner_zn.bodyImpulse(ea.zpp_inner)}};cX.prototype.visitBodies=function(ea){if((this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)!=null){ea(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)}if((this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=null&&(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)!=(this.zpp_inner_zn.b1==null?null:this.zpp_inner_zn.b1.outer)){ea(this.zpp_inner_zn.b2==null?null:this.zpp_inner_zn.b2.outer)}};Object.defineProperty(cX.prototype,"body1",{get:cX.prototype.get_body1,set:cX.prototype.set_body1});Object.defineProperty(cX.prototype,"body2",{get:cX.prototype.get_body2,set:cX.prototype.set_body2});Object.defineProperty(cX.prototype,"anchor1",{get:cX.prototype.get_anchor1,set:cX.prototype.set_anchor1});Object.defineProperty(cX.prototype,"anchor2",{get:cX.prototype.get_anchor2,set:cX.prototype.set_anchor2});Object.defineProperty(cX.prototype,"phase",{get:cX.prototype.get_phase,set:cX.prototype.set_phase});cX.prototype.__class__=cX;var aD=nape.dynamics.Arbiter=function(){this.zpp_inner=null};aD.__name__=["nape","dynamics","Arbiter"];aD.prototype.zpp_inner=null;aD.prototype.get_isSleeping=function(){return this.zpp_inner.sleeping};aD.prototype.get_type=function(){return j.types[this.zpp_inner.type]};aD.prototype.isCollisionArbiter=function(){return this.zpp_inner.type==j.COL};aD.prototype.isFluidArbiter=function(){return this.zpp_inner.type==j.FLUID};aD.prototype.isSensorArbiter=function(){return this.zpp_inner.type==j.SENSOR};aD.prototype.get_collisionArbiter=function(){if(this.zpp_inner.type==j.COL){return this.zpp_inner.colarb.outer_zn}else{return null}};aD.prototype.get_fluidArbiter=function(){if(this.zpp_inner.type==j.FLUID){return this.zpp_inner.fluidarb.outer_zn}else{return null}};aD.prototype.get_shape1=function(){if(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id){return this.zpp_inner.ws2.outer}else{return this.zpp_inner.ws1.outer}};aD.prototype.get_shape2=function(){if(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id){return this.zpp_inner.ws1.outer}else{return this.zpp_inner.ws2.outer}};aD.prototype.get_body1=function(){if(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id){return this.zpp_inner.b2.outer}else{return this.zpp_inner.b1.outer}};aD.prototype.get_body2=function(){if(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id){return this.zpp_inner.b1.outer}else{return this.zpp_inner.b2.outer}};aD.prototype.get_state=function(){var ea=this.zpp_inner.immState;if(ea==5){if(br.PreFlag_ACCEPT==null){br.internal=true;br.PreFlag_ACCEPT=new bq();br.internal=false}return br.PreFlag_ACCEPT}else{if(ea==1){if(br.PreFlag_ACCEPT_ONCE==null){br.internal=true;br.PreFlag_ACCEPT_ONCE=new bq();br.internal=false}return br.PreFlag_ACCEPT_ONCE}else{if(ea==6){if(br.PreFlag_IGNORE==null){br.internal=true;br.PreFlag_IGNORE=new bq();br.internal=false}return br.PreFlag_IGNORE}else{if(br.PreFlag_IGNORE_ONCE==null){br.internal=true;br.PreFlag_IGNORE_ONCE=new bq();br.internal=false}return br.PreFlag_IGNORE_ONCE}}}};aD.prototype.totalImpulse=function(ea,eb){if(eb==null){eb=false}return q.get(0,0,0)};aD.prototype.toString=function(){var ea=this.zpp_inner.type==j.COL?"CollisionArbiter":this.zpp_inner.type==j.FLUID?"FluidArbiter":"SensorArbiter";if(this.zpp_inner.cleared){return ea+"(object-pooled)"}else{var eb=ea+"("+(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id?this.zpp_inner.ws2.outer:this.zpp_inner.ws1.outer).toString()+"|"+(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id?this.zpp_inner.ws1.outer:this.zpp_inner.ws2.outer).toString()+")"+(this.zpp_inner.type==j.COL?"["+["SD","DD"][this.zpp_inner.colarb.stat?0:1]+"]":"")+"<-";var ed=this.zpp_inner.immState;var ec;if(ed==5){if(br.PreFlag_ACCEPT==null){br.internal=true;br.PreFlag_ACCEPT=new bq();br.internal=false}ec=br.PreFlag_ACCEPT}else{if(ed==1){if(br.PreFlag_ACCEPT_ONCE==null){br.internal=true;br.PreFlag_ACCEPT_ONCE=new bq();br.internal=false}ec=br.PreFlag_ACCEPT_ONCE}else{if(ed==6){if(br.PreFlag_IGNORE==null){br.internal=true;br.PreFlag_IGNORE=new bq();br.internal=false}ec=br.PreFlag_IGNORE}else{if(br.PreFlag_IGNORE_ONCE==null){br.internal=true;br.PreFlag_IGNORE_ONCE=new bq();br.internal=false}ec=br.PreFlag_IGNORE_ONCE}}}return eb+ec.toString()}};Object.defineProperty(aD.prototype,"isSleeping",{get:aD.prototype.get_isSleeping});Object.defineProperty(aD.prototype,"type",{get:aD.prototype.get_type});Object.defineProperty(aD.prototype,"collisionArbiter",{get:aD.prototype.get_collisionArbiter});Object.defineProperty(aD.prototype,"fluidArbiter",{get:aD.prototype.get_fluidArbiter});Object.defineProperty(aD.prototype,"shape1",{get:aD.prototype.get_shape1});Object.defineProperty(aD.prototype,"shape2",{get:aD.prototype.get_shape2});Object.defineProperty(aD.prototype,"body1",{get:aD.prototype.get_body1});Object.defineProperty(aD.prototype,"body2",{get:aD.prototype.get_body2});Object.defineProperty(aD.prototype,"state",{get:aD.prototype.get_state});aD.prototype.__class__=aD;var d0=nape.dynamics.ArbiterIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};d0.__name__=["nape","dynamics","ArbiterIterator"];d0.get=function(ec){var ea;if(d0.zpp_pool==null){U.internal=true;var ed=new d0();U.internal=false;ea=ed}else{var eb=d0.zpp_pool;d0.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};d0.prototype.zpp_inner=null;d0.prototype.zpp_i=null;d0.prototype.zpp_critical=null;d0.prototype.zpp_next=null;d0.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var ea=this.zpp_inner.zpp_gl();this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=d0.zpp_pool;d0.zpp_pool=this;this.zpp_inner=null;return false}};d0.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};d0.prototype.__class__=d0;var dD=nape.dynamics.ArbiterList=function(){this.zpp_inner=null;this.zpp_inner=new U();this.zpp_inner.outer=this};dD.__name__=["nape","dynamics","ArbiterList"];dD.fromArray=function(ed){var ea=new dD();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};dD.prototype.zpp_inner=null;dD.prototype.get_length=function(){return this.zpp_gl()};dD.prototype.zpp_gl=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ea=this.zpp_inner.inner.head;while(ea!=null){if(ea.elt.active){this.zpp_inner.user_length++}ea=ea.next}}return this.zpp_inner.user_length};dD.prototype.zpp_vm=function(){this.zpp_inner.valmod()};dD.prototype.has=function(ea){this.zpp_vm();return this.zpp_inner.inner.has(ea.zpp_inner)};dD.prototype.at=function(ea){this.zpp_vm();if(this.zpp_inner.reverse_flag){ea=this.zpp_gl()-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=0;this.zpp_inner.at_ite=this.zpp_inner.inner.head;while(!this.zpp_inner.at_ite.elt.active){this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next;while(!this.zpp_inner.at_ite.elt.active){this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.wrapper()};dD.prototype.push=function(eb){this.zpp_inner.modify_test();this.zpp_vm();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(eb):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(eb.zpp_inner)}else{if(this.zpp_inner.push_ite==null){this.zpp_inner.push_ite=this.empty()?null:this.zpp_inner.inner.iterator_at(this.zpp_gl()-1)}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,eb.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(eb)}}return ea};dD.prototype.unshift=function(eb){this.zpp_inner.modify_test();this.zpp_vm();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(eb):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){this.zpp_inner.push_ite=this.empty()?null:this.zpp_inner.inner.iterator_at(this.zpp_gl()-1)}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,eb.zpp_inner)}else{this.zpp_inner.inner.add(eb.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(eb)}}return ea};dD.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_vm();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec=this.zpp_gl()==1?null:this.zpp_inner.inner.iterator_at(this.zpp_gl()-2);if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.wrapper()};dD.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_vm();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec=this.zpp_gl()==1?null:this.zpp_inner.inner.iterator_at(this.zpp_gl()-2);if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.wrapper()};dD.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};dD.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_vm();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};dD.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(!this.empty()){this.pop()}}else{while(!this.empty()){this.shift()}}};dD.prototype.empty=function(){return this.zpp_gl()==0};dD.prototype.iterator=function(){this.zpp_vm();return d0.get(this)};dD.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new dD();var ef=this.iterator();while(true){ef.zpp_inner.zpp_inner.valmod();var ee=ef.zpp_inner.zpp_gl();ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=d0.zpp_pool;d0.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};dD.prototype.merge=function(eb){var ee=eb.iterator();while(true){ee.zpp_inner.zpp_inner.valmod();var ed=ee.zpp_inner.zpp_gl();ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=d0.zpp_pool;d0.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){this.add(ea)}}};dD.prototype.toString=function(){var eb="[";var ea=true;var ef=this.iterator();while(true){ef.zpp_inner.zpp_inner.valmod();var ee=ef.zpp_inner.zpp_gl();ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=d0.zpp_pool;d0.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};dD.prototype.foreach=function(ea){var ec=this.iterator();while(true){ec.zpp_inner.zpp_inner.valmod();var ed=ec.zpp_inner.zpp_gl();ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=d0.zpp_pool;d0.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=d0.zpp_pool;d0.zpp_pool=ec;ec.zpp_inner=null;break}}return this};dD.prototype.filter=function(eb){var ec=0;while(ec<this.zpp_gl()){var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(dD.prototype,"length",{get:dD.prototype.get_length});dD.prototype.__class__=dD;var av=nape.dynamics.ArbiterType=function(){};av.__name__=["nape","dynamics","ArbiterType"];av.COLLISION=null;av.get_COLLISION=function(){if(br.ArbiterType_COLLISION==null){br.internal=true;br.ArbiterType_COLLISION=new av();br.internal=false}return br.ArbiterType_COLLISION};av.SENSOR=null;av.get_SENSOR=function(){if(br.ArbiterType_SENSOR==null){br.internal=true;br.ArbiterType_SENSOR=new av();br.internal=false}return br.ArbiterType_SENSOR};av.FLUID=null;av.get_FLUID=function(){if(br.ArbiterType_FLUID==null){br.internal=true;br.ArbiterType_FLUID=new av();br.internal=false}return br.ArbiterType_FLUID};av.prototype.toString=function(){if(br.ArbiterType_COLLISION==null){br.internal=true;br.ArbiterType_COLLISION=new av();br.internal=false}if(this==br.ArbiterType_COLLISION){return"COLLISION"}else{if(br.ArbiterType_SENSOR==null){br.internal=true;br.ArbiterType_SENSOR=new av();br.internal=false}if(this==br.ArbiterType_SENSOR){return"SENSOR"}else{if(br.ArbiterType_FLUID==null){br.internal=true;br.ArbiterType_FLUID=new av();br.internal=false}if(this==br.ArbiterType_FLUID){return"FLUID"}else{return""}}}};Object.defineProperty(av,"COLLISION",{get:av.get_COLLISION});Object.defineProperty(av,"SENSOR",{get:av.get_SENSOR});Object.defineProperty(av,"FLUID",{get:av.get_FLUID});av.prototype.__class__=av;var ak=nape.dynamics.CollisionArbiter=function(){aD.call(this)};ak.__name__=["nape","dynamics","CollisionArbiter"];ak.__super__=aD;ak.prototype=Object.create(aD.prototype);ak.prototype.get_contacts=function(){if(this.zpp_inner.colarb.wrap_contacts==null){this.zpp_inner.colarb.setupcontacts()}return this.zpp_inner.colarb.wrap_contacts};ak.prototype.get_normal=function(){if(this.zpp_inner.colarb.wrap_normal==null){this.zpp_inner.colarb.getnormal()}return this.zpp_inner.colarb.wrap_normal};ak.prototype.get_radius=function(){return this.zpp_inner.colarb.radius};ak.prototype.get_referenceEdge1=function(){var ea=this.zpp_inner.colarb.__ref_edge1;if(ea!=null&&((this.zpp_inner.ws1.id>this.zpp_inner.ws2.id?this.zpp_inner.ws2.outer:this.zpp_inner.ws1.outer).zpp_inner.type!=1||(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id?this.zpp_inner.ws2.outer:this.zpp_inner.ws1.outer).zpp_inner!=ea.polygon)){ea=this.zpp_inner.colarb.__ref_edge2}if(ea==null){return null}else{return ea.wrapper()}};ak.prototype.get_referenceEdge2=function(){var ea=this.zpp_inner.colarb.__ref_edge1;if(ea!=null&&((this.zpp_inner.ws1.id>this.zpp_inner.ws2.id?this.zpp_inner.ws1.outer:this.zpp_inner.ws2.outer).zpp_inner.type!=1||(this.zpp_inner.ws1.id>this.zpp_inner.ws2.id?this.zpp_inner.ws1.outer:this.zpp_inner.ws2.outer).zpp_inner!=ea.polygon)){ea=this.zpp_inner.colarb.__ref_edge2}if(ea==null){return null}else{return ea.wrapper()}};ak.prototype.firstVertex=function(){if(this.zpp_inner.colarb.__ref_edge1!=null!=(this.zpp_inner.colarb.__ref_edge2!=null)){return this.zpp_inner.colarb.__ref_vertex==-1}else{return false}};ak.prototype.secondVertex=function(){if(this.zpp_inner.colarb.__ref_edge1!=null!=(this.zpp_inner.colarb.__ref_edge2!=null)){return this.zpp_inner.colarb.__ref_vertex==1}else{return false}};ak.prototype.normalImpulse=function(ef,eb){if(eb==null){eb=false}var em=0;var ek=0;var ei=0;var en=this.zpp_inner.colarb;if(!eb||en.oc1.fresh){var ea=en.oc1.wrapper().normalImpulse(ef);var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}em+=ea.zpp_inner.x;var el=ea.zpp_inner;if(el._validate!=null){el._validate()}ek+=ea.zpp_inner.y;var ej=ea.zpp_inner;if(ej._validate!=null){ej._validate()}ei+=ea.zpp_inner.z;ea.dispose()}if(en.hc2){if(!eb||en.oc2.fresh){var ec=en.oc2.wrapper().normalImpulse(ef);var eg=ec.zpp_inner;if(eg._validate!=null){eg._validate()}em+=ec.zpp_inner.x;var ee=ec.zpp_inner;if(ee._validate!=null){ee._validate()}ek+=ec.zpp_inner.y;var ed=ec.zpp_inner;if(ed._validate!=null){ed._validate()}ei+=ec.zpp_inner.z;ec.dispose()}}return q.get(em,ek,ei)};ak.prototype.tangentImpulse=function(ef,eb){if(eb==null){eb=false}var em=0;var ek=0;var ei=0;var en=this.zpp_inner.colarb;if(!eb||en.oc1.fresh){var ea=en.oc1.wrapper().tangentImpulse(ef);var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}em+=ea.zpp_inner.x;var el=ea.zpp_inner;if(el._validate!=null){el._validate()}ek+=ea.zpp_inner.y;var ej=ea.zpp_inner;if(ej._validate!=null){ej._validate()}ei+=ea.zpp_inner.z;ea.dispose()}if(en.hc2){if(!eb||en.oc2.fresh){var ec=en.oc2.wrapper().tangentImpulse(ef);var eg=ec.zpp_inner;if(eg._validate!=null){eg._validate()}em+=ec.zpp_inner.x;var ee=ec.zpp_inner;if(ee._validate!=null){ee._validate()}ek+=ec.zpp_inner.y;var ed=ec.zpp_inner;if(ed._validate!=null){ed._validate()}ei+=ec.zpp_inner.z;ec.dispose()}}return q.get(em,ek,ei)};ak.prototype.totalImpulse=function(ef,eb){if(eb==null){eb=false}var em=0;var ek=0;var ei=0;var en=this.zpp_inner.colarb;if(!eb||en.oc1.fresh){var ea=en.oc1.wrapper().totalImpulse(ef);var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}em+=ea.zpp_inner.x;var el=ea.zpp_inner;if(el._validate!=null){el._validate()}ek+=ea.zpp_inner.y;var ej=ea.zpp_inner;if(ej._validate!=null){ej._validate()}ei+=ea.zpp_inner.z;ea.dispose()}if(en.hc2){if(!eb||en.oc2.fresh){var ec=en.oc2.wrapper().totalImpulse(ef);var eg=ec.zpp_inner;if(eg._validate!=null){eg._validate()}em+=ec.zpp_inner.x;var ee=ec.zpp_inner;if(ee._validate!=null){ee._validate()}ek+=ec.zpp_inner.y;var ed=ec.zpp_inner;if(ed._validate!=null){ed._validate()}ei+=ec.zpp_inner.z;ec.dispose()}}return q.get(em,ek,ei)};ak.prototype.rollingImpulse=function(ea,eb){if(eb==null){eb=false}var ec=this.zpp_inner.colarb;if(!eb||ec.oc1.fresh){return ec.oc1.wrapper().rollingImpulse(ea)}else{return 0}};ak.prototype.get_elasticity=function(){var ea=this.zpp_inner.colarb;if(ea.invalidated){ea.invalidated=false;if(!ea.userdef_restitution){if(ea.s1.material.elasticity<=-Infinity||ea.s2.material.elasticity<=-Infinity){ea.restitution=0}else{if(ea.s1.material.elasticity>=Infinity||ea.s2.material.elasticity>=Infinity){ea.restitution=1}else{ea.restitution=(ea.s1.material.elasticity+ea.s2.material.elasticity)/2}}if(ea.restitution<0){ea.restitution=0}if(ea.restitution>1){ea.restitution=1}}if(!ea.userdef_dyn_fric){ea.dyn_fric=Math.sqrt(ea.s1.material.dynamicFriction*ea.s2.material.dynamicFriction)}if(!ea.userdef_stat_fric){ea.stat_fric=Math.sqrt(ea.s1.material.staticFriction*ea.s2.material.staticFriction)}if(!ea.userdef_rfric){ea.rfric=Math.sqrt(ea.s1.material.rollingFriction*ea.s2.material.rollingFriction)}}return ea.restitution};ak.prototype.set_elasticity=function(eb){var ea=this.zpp_inner.colarb;ea.restitution=eb;ea.userdef_restitution=true;var ec=this.zpp_inner.colarb;if(ec.invalidated){ec.invalidated=false;if(!ec.userdef_restitution){if(ec.s1.material.elasticity<=-Infinity||ec.s2.material.elasticity<=-Infinity){ec.restitution=0}else{if(ec.s1.material.elasticity>=Infinity||ec.s2.material.elasticity>=Infinity){ec.restitution=1}else{ec.restitution=(ec.s1.material.elasticity+ec.s2.material.elasticity)/2}}if(ec.restitution<0){ec.restitution=0}if(ec.restitution>1){ec.restitution=1}}if(!ec.userdef_dyn_fric){ec.dyn_fric=Math.sqrt(ec.s1.material.dynamicFriction*ec.s2.material.dynamicFriction)}if(!ec.userdef_stat_fric){ec.stat_fric=Math.sqrt(ec.s1.material.staticFriction*ec.s2.material.staticFriction)}if(!ec.userdef_rfric){ec.rfric=Math.sqrt(ec.s1.material.rollingFriction*ec.s2.material.rollingFriction)}}return ec.restitution};ak.prototype.get_dynamicFriction=function(){var ea=this.zpp_inner.colarb;if(ea.invalidated){ea.invalidated=false;if(!ea.userdef_restitution){if(ea.s1.material.elasticity<=-Infinity||ea.s2.material.elasticity<=-Infinity){ea.restitution=0}else{if(ea.s1.material.elasticity>=Infinity||ea.s2.material.elasticity>=Infinity){ea.restitution=1}else{ea.restitution=(ea.s1.material.elasticity+ea.s2.material.elasticity)/2}}if(ea.restitution<0){ea.restitution=0}if(ea.restitution>1){ea.restitution=1}}if(!ea.userdef_dyn_fric){ea.dyn_fric=Math.sqrt(ea.s1.material.dynamicFriction*ea.s2.material.dynamicFriction)}if(!ea.userdef_stat_fric){ea.stat_fric=Math.sqrt(ea.s1.material.staticFriction*ea.s2.material.staticFriction)}if(!ea.userdef_rfric){ea.rfric=Math.sqrt(ea.s1.material.rollingFriction*ea.s2.material.rollingFriction)}}return ea.dyn_fric};ak.prototype.set_dynamicFriction=function(ea){var eb=this.zpp_inner.colarb;eb.dyn_fric=ea;eb.userdef_dyn_fric=true;var ec=this.zpp_inner.colarb;if(ec.invalidated){ec.invalidated=false;if(!ec.userdef_restitution){if(ec.s1.material.elasticity<=-Infinity||ec.s2.material.elasticity<=-Infinity){ec.restitution=0}else{if(ec.s1.material.elasticity>=Infinity||ec.s2.material.elasticity>=Infinity){ec.restitution=1}else{ec.restitution=(ec.s1.material.elasticity+ec.s2.material.elasticity)/2}}if(ec.restitution<0){ec.restitution=0}if(ec.restitution>1){ec.restitution=1}}if(!ec.userdef_dyn_fric){ec.dyn_fric=Math.sqrt(ec.s1.material.dynamicFriction*ec.s2.material.dynamicFriction)}if(!ec.userdef_stat_fric){ec.stat_fric=Math.sqrt(ec.s1.material.staticFriction*ec.s2.material.staticFriction)}if(!ec.userdef_rfric){ec.rfric=Math.sqrt(ec.s1.material.rollingFriction*ec.s2.material.rollingFriction)}}return ec.dyn_fric};ak.prototype.get_staticFriction=function(){var ea=this.zpp_inner.colarb;if(ea.invalidated){ea.invalidated=false;if(!ea.userdef_restitution){if(ea.s1.material.elasticity<=-Infinity||ea.s2.material.elasticity<=-Infinity){ea.restitution=0}else{if(ea.s1.material.elasticity>=Infinity||ea.s2.material.elasticity>=Infinity){ea.restitution=1}else{ea.restitution=(ea.s1.material.elasticity+ea.s2.material.elasticity)/2}}if(ea.restitution<0){ea.restitution=0}if(ea.restitution>1){ea.restitution=1}}if(!ea.userdef_dyn_fric){ea.dyn_fric=Math.sqrt(ea.s1.material.dynamicFriction*ea.s2.material.dynamicFriction)}if(!ea.userdef_stat_fric){ea.stat_fric=Math.sqrt(ea.s1.material.staticFriction*ea.s2.material.staticFriction)}if(!ea.userdef_rfric){ea.rfric=Math.sqrt(ea.s1.material.rollingFriction*ea.s2.material.rollingFriction)}}return ea.stat_fric};ak.prototype.set_staticFriction=function(ec){var ea=this.zpp_inner.colarb;ea.stat_fric=ec;ea.userdef_stat_fric=true;var eb=this.zpp_inner.colarb;if(eb.invalidated){eb.invalidated=false;if(!eb.userdef_restitution){if(eb.s1.material.elasticity<=-Infinity||eb.s2.material.elasticity<=-Infinity){eb.restitution=0}else{if(eb.s1.material.elasticity>=Infinity||eb.s2.material.elasticity>=Infinity){eb.restitution=1}else{eb.restitution=(eb.s1.material.elasticity+eb.s2.material.elasticity)/2}}if(eb.restitution<0){eb.restitution=0}if(eb.restitution>1){eb.restitution=1}}if(!eb.userdef_dyn_fric){eb.dyn_fric=Math.sqrt(eb.s1.material.dynamicFriction*eb.s2.material.dynamicFriction)}if(!eb.userdef_stat_fric){eb.stat_fric=Math.sqrt(eb.s1.material.staticFriction*eb.s2.material.staticFriction)}if(!eb.userdef_rfric){eb.rfric=Math.sqrt(eb.s1.material.rollingFriction*eb.s2.material.rollingFriction)}}return eb.stat_fric};ak.prototype.get_rollingFriction=function(){var ea=this.zpp_inner.colarb;if(ea.invalidated){ea.invalidated=false;if(!ea.userdef_restitution){if(ea.s1.material.elasticity<=-Infinity||ea.s2.material.elasticity<=-Infinity){ea.restitution=0}else{if(ea.s1.material.elasticity>=Infinity||ea.s2.material.elasticity>=Infinity){ea.restitution=1}else{ea.restitution=(ea.s1.material.elasticity+ea.s2.material.elasticity)/2}}if(ea.restitution<0){ea.restitution=0}if(ea.restitution>1){ea.restitution=1}}if(!ea.userdef_dyn_fric){ea.dyn_fric=Math.sqrt(ea.s1.material.dynamicFriction*ea.s2.material.dynamicFriction)}if(!ea.userdef_stat_fric){ea.stat_fric=Math.sqrt(ea.s1.material.staticFriction*ea.s2.material.staticFriction)}if(!ea.userdef_rfric){ea.rfric=Math.sqrt(ea.s1.material.rollingFriction*ea.s2.material.rollingFriction)}}return ea.rfric};ak.prototype.set_rollingFriction=function(ec){var ea=this.zpp_inner.colarb;ea.rfric=ec;ea.userdef_rfric=true;var eb=this.zpp_inner.colarb;if(eb.invalidated){eb.invalidated=false;if(!eb.userdef_restitution){if(eb.s1.material.elasticity<=-Infinity||eb.s2.material.elasticity<=-Infinity){eb.restitution=0}else{if(eb.s1.material.elasticity>=Infinity||eb.s2.material.elasticity>=Infinity){eb.restitution=1}else{eb.restitution=(eb.s1.material.elasticity+eb.s2.material.elasticity)/2}}if(eb.restitution<0){eb.restitution=0}if(eb.restitution>1){eb.restitution=1}}if(!eb.userdef_dyn_fric){eb.dyn_fric=Math.sqrt(eb.s1.material.dynamicFriction*eb.s2.material.dynamicFriction)}if(!eb.userdef_stat_fric){eb.stat_fric=Math.sqrt(eb.s1.material.staticFriction*eb.s2.material.staticFriction)}if(!eb.userdef_rfric){eb.rfric=Math.sqrt(eb.s1.material.rollingFriction*eb.s2.material.rollingFriction)}}return eb.rfric};Object.defineProperty(ak.prototype,"contacts",{get:ak.prototype.get_contacts});Object.defineProperty(ak.prototype,"normal",{get:ak.prototype.get_normal});Object.defineProperty(ak.prototype,"radius",{get:ak.prototype.get_radius});Object.defineProperty(ak.prototype,"referenceEdge1",{get:ak.prototype.get_referenceEdge1});Object.defineProperty(ak.prototype,"referenceEdge2",{get:ak.prototype.get_referenceEdge2});Object.defineProperty(ak.prototype,"elasticity",{get:ak.prototype.get_elasticity,set:ak.prototype.set_elasticity});Object.defineProperty(ak.prototype,"dynamicFriction",{get:ak.prototype.get_dynamicFriction,set:ak.prototype.set_dynamicFriction});Object.defineProperty(ak.prototype,"staticFriction",{get:ak.prototype.get_staticFriction,set:ak.prototype.set_staticFriction});Object.defineProperty(ak.prototype,"rollingFriction",{get:ak.prototype.get_rollingFriction,set:ak.prototype.set_rollingFriction});ak.prototype.__class__=ak;var d8=nape.dynamics.Contact=function(){this.zpp_inner=null};d8.__name__=["nape","dynamics","Contact"];d8.prototype.zpp_inner=null;d8.prototype.get_arbiter=function(){if(this.zpp_inner.arbiter==null){return null}else{var ea=this.zpp_inner.arbiter.outer;if(ea.zpp_inner.type==j.COL){return ea.zpp_inner.colarb.outer_zn}else{return null}}};d8.prototype.get_penetration=function(){return -this.zpp_inner.dist};d8.prototype.get_position=function(){if(this.zpp_inner.wrap_position==null){this.zpp_inner.getposition()}return this.zpp_inner.wrap_position};d8.prototype.get_fresh=function(){return this.zpp_inner.fresh};d8.prototype.normalImpulse=function(eb){var ed=this.zpp_inner.arbiter.colarb;var ea=this.zpp_inner.inner;var ec=ea.jnAcc;if(eb==null){return q.get(ed.nx*ec,ed.ny*ec)}else{if(eb==ed.b1.outer){return q.get(ed.nx*-ec,ed.ny*-ec,-(ed.ny*ea.r1x-ed.nx*ea.r1y)*ec)}else{return q.get(ed.nx*ec,ed.ny*ec,(ed.ny*ea.r2x-ed.nx*ea.r2y)*ec)}}};d8.prototype.tangentImpulse=function(eb){var ed=this.zpp_inner.arbiter.colarb;var ea=this.zpp_inner.inner;var ec=ea.jtAcc;if(eb==null){return q.get(-ed.ny*ec,ed.nx*ec)}else{if(eb==ed.b1.outer){return q.get(ed.ny*ec,-ed.nx*ec,-(ea.r1x*ed.nx+ea.r1y*ed.ny)*ec)}else{return q.get(-ed.ny*ec,ed.nx*ec,(ea.r2x*ed.nx+ea.r2y*ed.ny)*ec)}}};d8.prototype.rollingImpulse=function(eb){var ec=this.zpp_inner.arbiter.colarb;var ea=this.zpp_inner.arbiter.colarb.jrAcc;if(eb==null){return ea}else{if(eb==ec.b1.outer){return -ea}else{return ea}}};d8.prototype.totalImpulse=function(ec){var eh=this.zpp_inner.arbiter.colarb;var eb=this.zpp_inner.inner;var ed=eb.jnAcc;var eg=eb.jtAcc;var ea=eh.jrAcc;if(ec==null){return q.get(eh.nx*ed-eh.ny*eg,eh.ny*ed+eh.nx*eg,ea)}else{var ef=eh.nx*ed-eh.ny*eg;var ee=eh.ny*ed+eh.nx*eg;if(ec==eh.b1.outer){return q.get(-ef,-ee,-(ee*eb.r1x-ef*eb.r1y)-ea)}else{return q.get(ef,ee,ee*eb.r2x-ef*eb.r2y+ea)}}};d8.prototype.get_friction=function(){return this.zpp_inner.inner.friction};d8.prototype.toString=function(){if(this.zpp_inner.arbiter==null||this.zpp_inner.arbiter.cleared){return"{object-pooled}"}else{return"{Contact}"}};Object.defineProperty(d8.prototype,"arbiter",{get:d8.prototype.get_arbiter});Object.defineProperty(d8.prototype,"penetration",{get:d8.prototype.get_penetration});Object.defineProperty(d8.prototype,"position",{get:d8.prototype.get_position});Object.defineProperty(d8.prototype,"fresh",{get:d8.prototype.get_fresh});Object.defineProperty(d8.prototype,"friction",{get:d8.prototype.get_friction});d8.prototype.__class__=d8;var d5=nape.dynamics.ContactIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};d5.__name__=["nape","dynamics","ContactIterator"];d5.get=function(ec){var ea;if(d5.zpp_pool==null){aB.internal=true;var ed=new d5();aB.internal=false;ea=ed}else{var eb=d5.zpp_pool;d5.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};d5.prototype.zpp_inner=null;d5.prototype.zpp_i=null;d5.prototype.zpp_critical=null;d5.prototype.zpp_next=null;d5.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var ed=this.zpp_inner;ed.zpp_inner.valmod();if(ed.zpp_inner.zip_length){ed.zpp_inner.zip_length=false;ed.zpp_inner.user_length=0;var eb=ed.zpp_inner.inner.next;while(eb!=null){var ea=eb;if(ea.active&&ea.arbiter.active){ed.zpp_inner.user_length++}eb=eb.next}}var ec=ed.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ec){return true}else{this.zpp_next=d5.zpp_pool;d5.zpp_pool=this;this.zpp_inner=null;return false}};d5.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};d5.prototype.__class__=d5;var d7=nape.dynamics.ContactList=function(){this.zpp_inner=null;this.zpp_inner=new aB();this.zpp_inner.outer=this};d7.__name__=["nape","dynamics","ContactList"];d7.fromArray=function(ed){var ea=new d7();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};d7.prototype.zpp_inner=null;d7.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var eb=this.zpp_inner.inner.next;while(eb!=null){var ea=eb;if(ea.active&&ea.arbiter.active){this.zpp_inner.user_length++}eb=eb.next}}return this.zpp_inner.user_length};d7.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};d7.prototype.at=function(ec){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ee=this.zpp_inner.inner.next;while(ee!=null){var ed=ee;if(ed.active&&ed.arbiter.active){this.zpp_inner.user_length++}ee=ee.next}}ec=this.zpp_inner.user_length-1-ec}if(ec<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=0;this.zpp_inner.at_ite=this.zpp_inner.inner.next;while(true){var ea=this.zpp_inner.at_ite;if(ea.active&&ea.arbiter.active){break}this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}while(this.zpp_inner.at_index!=ec){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next;while(true){var eb=this.zpp_inner.at_ite;if(eb.active&&eb.arbiter.active){break}this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.wrapper()};d7.prototype.push=function(eg){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(eg):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(eg.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var ed;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ec=this.zpp_inner.inner.next;while(ec!=null){var eb=ec;if(eb.active&&eb.arbiter.active){this.zpp_inner.user_length++}ec=ec.next}}if(this.zpp_inner.user_length==0){ed=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ef=this.zpp_inner.inner.next;while(ef!=null){var ee=ef;if(ee.active&&ee.arbiter.active){this.zpp_inner.user_length++}ef=ef.next}}ed=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=ed}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,eg.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(eg)}}return ea};d7.prototype.unshift=function(eg){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(eg):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var ed;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ec=this.zpp_inner.inner.next;while(ec!=null){var eb=ec;if(eb.active&&eb.arbiter.active){this.zpp_inner.user_length++}ec=ec.next}}if(this.zpp_inner.user_length==0){ed=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ef=this.zpp_inner.inner.next;while(ef!=null){var ee=ef;if(ee.active&&ee.arbiter.active){this.zpp_inner.user_length++}ef=ef.next}}ed=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=ed}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,eg.zpp_inner)}else{this.zpp_inner.inner.add(eg.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(eg)}}return ea};d7.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.next;var ea=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var eg;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ed=this.zpp_inner.inner.next;while(ed!=null){var ec=ed;if(ec.active&&ec.arbiter.active){this.zpp_inner.user_length++}ed=ed.next}}if(this.zpp_inner.user_length==1){eg=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ef=this.zpp_inner.inner.next;while(ef!=null){var ee=ef;if(ee.active&&ee.arbiter.active){this.zpp_inner.user_length++}ef=ef.next}}eg=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(eg==null){eb=this.zpp_inner.inner.next}else{eb=eg.next}var eh=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(eh)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(eg)}}this.zpp_inner.invalidate();return eb.wrapper()};d7.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var eg;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ed=this.zpp_inner.inner.next;while(ed!=null){var ec=ed;if(ec.active&&ec.arbiter.active){this.zpp_inner.user_length++}ed=ed.next}}if(this.zpp_inner.user_length==1){eg=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ef=this.zpp_inner.inner.next;while(ef!=null){var ee=ef;if(ee.active&&ee.arbiter.active){this.zpp_inner.user_length++}ef=ef.next}}eg=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(eg==null){eb=this.zpp_inner.inner.next}else{eb=eg.next}var ea=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(eg)}}else{eb=this.zpp_inner.inner.next;var eh=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(eh)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.wrapper()};d7.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};d7.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.next;while(eb!=null){if(eb==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};d7.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var eb=this.zpp_inner.inner.next;while(eb!=null){var ea=eb;if(ea.active&&ea.arbiter.active){this.zpp_inner.user_length++}eb=eb.next}}if(!(this.zpp_inner.user_length!=0)){break}this.pop()}}else{while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ed=this.zpp_inner.inner.next;while(ed!=null){var ec=ed;if(ec.active&&ec.arbiter.active){this.zpp_inner.user_length++}ed=ed.next}}if(!(this.zpp_inner.user_length!=0)){break}this.shift()}}};d7.prototype.empty=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var eb=this.zpp_inner.inner.next;while(eb!=null){var ea=eb;if(ea.active&&ea.arbiter.active){this.zpp_inner.user_length++}eb=eb.next}}return this.zpp_inner.user_length==0};d7.prototype.iterator=function(){this.zpp_inner.valmod();return d5.get(this)};d7.prototype.copy=function(ei){if(ei==null){ei=false}var eh=new d7();this.zpp_inner.valmod();var ef=d5.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=0;var eb=eg.zpp_inner.inner.next;while(eb!=null){var ed=eb;if(ed.active&&ed.arbiter.active){eg.zpp_inner.user_length++}eb=eb.next}}var ea=eg.zpp_inner.user_length;ef.zpp_critical=true;var ee;if(ef.zpp_i<ea){ee=true}else{ef.zpp_next=d5.zpp_pool;d5.zpp_pool=ef;ef.zpp_inner=null;ee=false}if(!ee){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eh.push(ei?null:ec)}return eh};d7.prototype.merge=function(eb){eb.zpp_inner.valmod();var eg=d5.get(eb);while(true){eg.zpp_inner.zpp_inner.valmod();var eh=eg.zpp_inner;eh.zpp_inner.valmod();if(eh.zpp_inner.zip_length){eh.zpp_inner.zip_length=false;eh.zpp_inner.user_length=0;var ee=eh.zpp_inner.inner.next;while(ee!=null){var ed=ee;if(ed.active&&ed.arbiter.active){eh.zpp_inner.user_length++}ee=ee.next}}var ef=eh.zpp_inner.user_length;eg.zpp_critical=true;var ec;if(eg.zpp_i<ef){ec=true}else{eg.zpp_next=d5.zpp_pool;d5.zpp_pool=eg;eg.zpp_inner=null;ec=false}if(!ec){break}eg.zpp_critical=false;var ea=eg.zpp_inner.at(eg.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};d7.prototype.toString=function(){var ei="[";var ea=true;this.zpp_inner.valmod();var eg=d5.get(this);while(true){eg.zpp_inner.zpp_inner.valmod();var eh=eg.zpp_inner;eh.zpp_inner.valmod();if(eh.zpp_inner.zip_length){eh.zpp_inner.zip_length=false;eh.zpp_inner.user_length=0;var ec=eh.zpp_inner.inner.next;while(ec!=null){var ee=ec;if(ee.active&&ee.arbiter.active){eh.zpp_inner.user_length++}ec=ec.next}}var eb=eh.zpp_inner.user_length;eg.zpp_critical=true;var ef;if(eg.zpp_i<eb){ef=true}else{eg.zpp_next=d5.zpp_pool;d5.zpp_pool=eg;eg.zpp_inner=null;ef=false}if(!ef){break}eg.zpp_critical=false;var ed=eg.zpp_inner.at(eg.zpp_i++);if(!ea){ei+=","}ei+=ed==null?"NULL":ed.toString();ea=false}return ei+"]"};d7.prototype.foreach=function(ea){this.zpp_inner.valmod();var ee=d5.get(this);while(true){ee.zpp_inner.zpp_inner.valmod();var eh=ee.zpp_inner;eh.zpp_inner.valmod();if(eh.zpp_inner.zip_length){eh.zpp_inner.zip_length=false;eh.zpp_inner.user_length=0;var ed=eh.zpp_inner.inner.next;while(ed!=null){var ec=ed;if(ec.active&&ec.arbiter.active){eh.zpp_inner.user_length++}ed=ed.next}}var ef=eh.zpp_inner.user_length;ee.zpp_critical=true;var eb;if(ee.zpp_i<ef){eb=true}else{ee.zpp_next=d5.zpp_pool;d5.zpp_pool=ee;ee.zpp_inner=null;eb=false}if(!eb){break}try{ee.zpp_critical=false;ea(ee.zpp_inner.at(ee.zpp_i++))}catch(eg){ee.zpp_next=d5.zpp_pool;d5.zpp_pool=ee;ee.zpp_inner=null;break}}return this};d7.prototype.filter=function(eb){var ed=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=0;var ec=this.zpp_inner.inner.next;while(ec!=null){var ee=ec;if(ee.active&&ee.arbiter.active){this.zpp_inner.user_length++}ec=ec.next}}if(!(ed<this.zpp_inner.user_length)){break}var ea=this.at(ed);try{if(eb(ea)){++ed}else{this.remove(ea)}}catch(ef){break}}return this};Object.defineProperty(d7.prototype,"length",{get:d7.prototype.get_length});d7.prototype.__class__=d7;var ab=nape.dynamics.FluidArbiter=function(){aD.call(this)};ab.__name__=["nape","dynamics","FluidArbiter"];ab.__super__=aD;ab.prototype=Object.create(aD.prototype);ab.prototype.get_position=function(){if(this.zpp_inner.fluidarb.wrap_position==null){this.zpp_inner.fluidarb.getposition()}return this.zpp_inner.fluidarb.wrap_position};ab.prototype.set_position=function(ec){if(this.zpp_inner.fluidarb.wrap_position==null){this.zpp_inner.fluidarb.getposition()}var ee=this.zpp_inner.fluidarb.wrap_position;var eh=ec.zpp_inner;if(eh._validate!=null){eh._validate()}var ej=ec.zpp_inner.x;var eg=ec.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ec.zpp_inner.y;var ea;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ej){var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}ea=ee.zpp_inner.y==ei}else{ea=false}if(!ea){ee.zpp_inner.x=ej;ee.zpp_inner.y=ei;var eb=ee.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ec.zpp_inner.weak){var ek=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner.fluidarb.wrap_position==null){this.zpp_inner.fluidarb.getposition()}return this.zpp_inner.fluidarb.wrap_position};ab.prototype.get_overlap=function(){return this.zpp_inner.fluidarb.overlap};ab.prototype.set_overlap=function(ea){this.zpp_inner.fluidarb.overlap=ea;return this.zpp_inner.fluidarb.overlap};ab.prototype.buoyancyImpulse=function(ea){var eb=this.zpp_inner.fluidarb;if(ea==null){return q.get(eb.buoyx,eb.buoyy,0)}else{if(ea.zpp_inner==this.zpp_inner.b2){return q.get(eb.buoyx,eb.buoyy,eb.buoyy*eb.r2x-eb.buoyx*eb.r2y)}else{return q.get(-eb.buoyx,-eb.buoyy,-(eb.buoyy*eb.r1x-eb.buoyx*eb.r1y))}}};ab.prototype.dragImpulse=function(ea){var eb=this.zpp_inner.fluidarb;var ec=ea==null||ea.zpp_inner==this.zpp_inner.b2?1:-1;return q.get(eb.dampx*ec,eb.dampy*ec,eb.adamp*ec)};ab.prototype.totalImpulse=function(ek,ea){if(ea==null){ea=false}var eh=this.buoyancyImpulse(ek);var eo=this.dragImpulse(ek);var em=eo.zpp_inner;if(em._validate!=null){em._validate()}var ee=eo.zpp_inner.x;var ep=eh.zpp_inner;if(ep._validate!=null){ep._validate()}eo.zpp_inner.x=ee+eh.zpp_inner.x;var en=eo.zpp_inner;if(en._validate!=null){en._validate()}var el=eo.zpp_inner;if(el._validate!=null){el._validate()}var ec=eo.zpp_inner.y;var ej=eh.zpp_inner;if(ej._validate!=null){ej._validate()}eo.zpp_inner.y=ec+eh.zpp_inner.y;var ei=eo.zpp_inner;if(ei._validate!=null){ei._validate()}var eg=eo.zpp_inner;if(eg._validate!=null){eg._validate()}var eb=eo.zpp_inner.z;var ef=eh.zpp_inner;if(ef._validate!=null){ef._validate()}eo.zpp_inner.z=eb+eh.zpp_inner.z;var ed=eo.zpp_inner;if(ed._validate!=null){ed._validate()}eh.dispose();return eo};Object.defineProperty(ab.prototype,"position",{get:ab.prototype.get_position,set:ab.prototype.set_position});Object.defineProperty(ab.prototype,"overlap",{get:ab.prototype.get_overlap,set:ab.prototype.set_overlap});ab.prototype.__class__=ab;var G=nape.dynamics.InteractionFilter=function(ef,ee,ec,eb,ed,ea){if(ea==null){ea=-1}if(ed==null){ed=1}if(eb==null){eb=-1}if(ec==null){ec=1}if(ee==null){ee=-1}if(ef==null){ef=1}this.zpp_inner=null;if(cA.zpp_pool==null){this.zpp_inner=new cA()}else{this.zpp_inner=cA.zpp_pool;cA.zpp_pool=this.zpp_inner.next;this.zpp_inner.next=null}this.zpp_inner.outer=this;if(this.zpp_inner.collisionGroup!=ef){this.zpp_inner.collisionGroup=ef;this.zpp_inner.invalidate()}if(this.zpp_inner.collisionMask!=ee){this.zpp_inner.collisionMask=ee;this.zpp_inner.invalidate()}if(this.zpp_inner.sensorGroup!=ec){this.zpp_inner.sensorGroup=ec;this.zpp_inner.invalidate()}if(this.zpp_inner.sensorMask!=eb){this.zpp_inner.sensorMask=eb;this.zpp_inner.invalidate()}if(this.zpp_inner.fluidGroup!=ed){this.zpp_inner.fluidGroup=ed;this.zpp_inner.invalidate()}if(this.zpp_inner.fluidMask!=ea){this.zpp_inner.fluidMask=ea;this.zpp_inner.invalidate()}};G.__name__=["nape","dynamics","InteractionFilter"];G.prototype.zpp_inner=null;G.prototype.get_userData=function(){if(this.zpp_inner.userData==null){this.zpp_inner.userData={}}return this.zpp_inner.userData};G.prototype.get_shapes=function(){if(this.zpp_inner.wrap_shapes==null){this.zpp_inner.wrap_shapes=aI.get(this.zpp_inner.shapes,true)}return this.zpp_inner.wrap_shapes};G.prototype.get_collisionGroup=function(){return this.zpp_inner.collisionGroup};G.prototype.set_collisionGroup=function(ea){if(this.zpp_inner.collisionGroup!=ea){this.zpp_inner.collisionGroup=ea;this.zpp_inner.invalidate()}return this.zpp_inner.collisionGroup};G.prototype.get_collisionMask=function(){return this.zpp_inner.collisionMask};G.prototype.set_collisionMask=function(ea){if(this.zpp_inner.collisionMask!=ea){this.zpp_inner.collisionMask=ea;this.zpp_inner.invalidate()}return this.zpp_inner.collisionMask};G.prototype.get_sensorGroup=function(){return this.zpp_inner.sensorGroup};G.prototype.set_sensorGroup=function(ea){if(this.zpp_inner.sensorGroup!=ea){this.zpp_inner.sensorGroup=ea;this.zpp_inner.invalidate()}return this.zpp_inner.sensorGroup};G.prototype.get_sensorMask=function(){return this.zpp_inner.sensorMask};G.prototype.set_sensorMask=function(ea){if(this.zpp_inner.sensorMask!=ea){this.zpp_inner.sensorMask=ea;this.zpp_inner.invalidate()}return this.zpp_inner.sensorMask};G.prototype.get_fluidGroup=function(){return this.zpp_inner.fluidGroup};G.prototype.set_fluidGroup=function(ea){if(this.zpp_inner.fluidGroup!=ea){this.zpp_inner.fluidGroup=ea;this.zpp_inner.invalidate()}return this.zpp_inner.fluidGroup};G.prototype.get_fluidMask=function(){return this.zpp_inner.fluidMask};G.prototype.set_fluidMask=function(ea){if(this.zpp_inner.fluidMask!=ea){this.zpp_inner.fluidMask=ea;this.zpp_inner.invalidate()}return this.zpp_inner.fluidMask};G.prototype.shouldCollide=function(eb){var ec=this.zpp_inner;var ea=eb.zpp_inner;if((ec.collisionMask&ea.collisionGroup)!=0){return(ea.collisionMask&ec.collisionGroup)!=0}else{return false}};G.prototype.shouldSense=function(eb){var ec=this.zpp_inner;var ea=eb.zpp_inner;if((ec.sensorMask&ea.sensorGroup)!=0){return(ea.sensorMask&ec.sensorGroup)!=0}else{return false}};G.prototype.shouldFlow=function(eb){var ec=this.zpp_inner;var ea=eb.zpp_inner;if((ec.fluidMask&ea.fluidGroup)!=0){return(ea.fluidMask&ec.fluidGroup)!=0}else{return false}};G.prototype.copy=function(){return new G(this.zpp_inner.collisionGroup,this.zpp_inner.collisionMask,this.zpp_inner.sensorGroup,this.zpp_inner.sensorMask,this.zpp_inner.fluidGroup,this.zpp_inner.fluidMask)};G.prototype.toString=function(){return"{ collision: "+aY.hex(this.zpp_inner.collisionGroup,8)+"~"+aY.hex(this.zpp_inner.collisionMask,8)+" sensor: "+aY.hex(this.zpp_inner.sensorGroup,8)+"~"+aY.hex(this.zpp_inner.sensorMask,8)+" fluid: "+aY.hex(this.zpp_inner.fluidGroup,8)+"~"+aY.hex(this.zpp_inner.fluidMask,8)+" }"};Object.defineProperty(G.prototype,"userData",{get:G.prototype.get_userData});Object.defineProperty(G.prototype,"shapes",{get:G.prototype.get_shapes});Object.defineProperty(G.prototype,"collisionGroup",{get:G.prototype.get_collisionGroup,set:G.prototype.set_collisionGroup});Object.defineProperty(G.prototype,"collisionMask",{get:G.prototype.get_collisionMask,set:G.prototype.set_collisionMask});Object.defineProperty(G.prototype,"sensorGroup",{get:G.prototype.get_sensorGroup,set:G.prototype.set_sensorGroup});Object.defineProperty(G.prototype,"sensorMask",{get:G.prototype.get_sensorMask,set:G.prototype.set_sensorMask});Object.defineProperty(G.prototype,"fluidGroup",{get:G.prototype.get_fluidGroup,set:G.prototype.set_fluidGroup});Object.defineProperty(G.prototype,"fluidMask",{get:G.prototype.get_fluidMask,set:G.prototype.set_fluidMask});G.prototype.__class__=G;var c=nape.dynamics.InteractionGroup=function(ea){if(ea==null){ea=false}this.zpp_inner=null;this.zpp_inner=new ax();this.zpp_inner.outer=this;if(this.zpp_inner.ignore!=ea){this.zpp_inner.invalidate(true);this.zpp_inner.ignore=ea}};c.__name__=["nape","dynamics","InteractionGroup"];c.prototype.zpp_inner=null;c.prototype.get_group=function(){if(this.zpp_inner.group==null){return null}else{return this.zpp_inner.group.outer}};c.prototype.set_group=function(ea){this.zpp_inner.setGroup(ea==null?null:ea.zpp_inner);if(this.zpp_inner.group==null){return null}else{return this.zpp_inner.group.outer}};c.prototype.get_ignore=function(){return this.zpp_inner.ignore};c.prototype.set_ignore=function(ea){if(this.zpp_inner.ignore!=ea){this.zpp_inner.invalidate(true);this.zpp_inner.ignore=ea}return this.zpp_inner.ignore};c.prototype.get_interactors=function(){if(this.zpp_inner.wrap_interactors==null){this.zpp_inner.wrap_interactors=i.get(this.zpp_inner.interactors,true)}return this.zpp_inner.wrap_interactors};c.prototype.get_groups=function(){if(this.zpp_inner.wrap_groups==null){this.zpp_inner.wrap_groups=bt.get(this.zpp_inner.groups,true)}return this.zpp_inner.wrap_groups};c.prototype.toString=function(){var ea="InteractionGroup";if(this.zpp_inner.ignore){ea="InteractionGroup:ignore"}return ea};Object.defineProperty(c.prototype,"group",{get:c.prototype.get_group,set:c.prototype.set_group});Object.defineProperty(c.prototype,"ignore",{get:c.prototype.get_ignore,set:c.prototype.set_ignore});Object.defineProperty(c.prototype,"interactors",{get:c.prototype.get_interactors});Object.defineProperty(c.prototype,"groups",{get:c.prototype.get_groups});c.prototype.__class__=c;var cL=nape.dynamics.InteractionGroupIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};cL.__name__=["nape","dynamics","InteractionGroupIterator"];cL.get=function(ec){var ea;if(cL.zpp_pool==null){bt.internal=true;var ed=new cL();bt.internal=false;ea=ed}else{var eb=cL.zpp_pool;cL.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};cL.prototype.zpp_inner=null;cL.prototype.zpp_i=null;cL.prototype.zpp_critical=null;cL.prototype.zpp_next=null;cL.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=cL.zpp_pool;cL.zpp_pool=this;this.zpp_inner=null;return false}};cL.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};cL.prototype.__class__=cL;var aS=nape.dynamics.InteractionGroupList=function(){this.zpp_inner=null;this.zpp_inner=new bt();this.zpp_inner.outer=this};aS.__name__=["nape","dynamics","InteractionGroupList"];aS.fromArray=function(ed){var ea=new aS();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};aS.prototype.zpp_inner=null;aS.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};aS.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};aS.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer};aS.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};aS.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};aS.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer};aS.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer};aS.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};aS.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};aS.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};aS.prototype.empty=function(){return this.zpp_inner.inner.head==null};aS.prototype.iterator=function(){this.zpp_inner.valmod();return cL.get(this)};aS.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new aS();this.zpp_inner.valmod();var ef=cL.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=cL.zpp_pool;cL.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};aS.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=cL.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=cL.zpp_pool;cL.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};aS.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=cL.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=cL.zpp_pool;cL.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};aS.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=cL.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=cL.zpp_pool;cL.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=cL.zpp_pool;cL.zpp_pool=ec;ec.zpp_inner=null;break}}return this};aS.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(aS.prototype,"length",{get:aS.prototype.get_length});aS.prototype.__class__=aS;var S=nape.geom.AABB=function(eb,ee,ed,ea){if(ea==null){ea=0}if(ed==null){ed=0}if(ee==null){ee=0}if(eb==null){eb=0}this.zpp_inner=null;var ec;if(bT.zpp_pool==null){ec=new bT()}else{ec=bT.zpp_pool;bT.zpp_pool=ec.next;ec.next=null}ec.minx=eb;ec.miny=ee;ec.maxx=eb+ed;ec.maxy=ee+ea;this.zpp_inner=ec;this.zpp_inner.outer=this};S.__name__=["nape","geom","AABB"];S.prototype.zpp_inner=null;S.prototype.copy=function(){var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}var ed=this.zpp_inner;var eb=ed.minx;var ea=ed.miny;var ef=ed.maxx;var ee=ed.maxy;var ec;if(bT.zpp_pool==null){ec=new bT()}else{ec=bT.zpp_pool;bT.zpp_pool=ec.next;ec.next=null}ec.minx=eb;ec.miny=ea;ec.maxx=ef;ec.maxy=ee;return ec.wrapper()};S.prototype.get_min=function(){return this.zpp_inner.getmin()};S.prototype.set_min=function(ea){var ee=this.zpp_inner.getmin();var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}var ej=ea.zpp_inner.x;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ea.zpp_inner.y;var eb;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ej){var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}eb=ee.zpp_inner.y==ei}else{eb=false}if(!eb){ee.zpp_inner.x=ej;ee.zpp_inner.y=ei;var ec=ee.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}if(ea.zpp_inner.weak){var ek=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}return this.zpp_inner.getmin()};S.prototype.get_max=function(){return this.zpp_inner.getmax()};S.prototype.set_max=function(ei){var ed=this.zpp_inner.getmax();var eg=ei.zpp_inner;if(eg._validate!=null){eg._validate()}var ej=ei.zpp_inner.x;var ef=ei.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ei.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ej){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ej;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ei.zpp_inner.weak){var ek=ei.zpp_inner;ei.zpp_inner.outer=null;ei.zpp_inner=null;ei.zpp_pool=au.poolVec2;au.poolVec2=ei;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}return this.zpp_inner.getmax()};S.prototype.get_x=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.minx};S.prototype.set_x=function(ea){var ed=this.zpp_inner;if(ed._validate!=null){ed._validate()}if(this.zpp_inner.minx!=ea){this.zpp_inner.maxx+=ea-this.zpp_inner.minx;this.zpp_inner.minx=ea;var ec=this.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}return this.zpp_inner.minx};S.prototype.get_y=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.miny};S.prototype.set_y=function(ed){var ec=this.zpp_inner;if(ec._validate!=null){ec._validate()}if(this.zpp_inner.miny!=ed){this.zpp_inner.maxy+=ed-this.zpp_inner.miny;this.zpp_inner.miny=ed;var eb=this.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.miny};S.prototype.get_width=function(){var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}var ea=this.zpp_inner;return ea.maxx-ea.minx};S.prototype.set_width=function(ed){var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}var ef=this.zpp_inner;if(ef.maxx-ef.minx!=ed){var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}this.zpp_inner.maxx=this.zpp_inner.minx+ed;var ec=this.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}var ea=this.zpp_inner;return ea.maxx-ea.minx};S.prototype.get_height=function(){var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}var ea=this.zpp_inner;return ea.maxy-ea.miny};S.prototype.set_height=function(ea){var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}var ef=this.zpp_inner;if(ef.maxy-ef.miny!=ea){var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}this.zpp_inner.maxy=this.zpp_inner.miny+ea;var ed=this.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}var ec=this.zpp_inner;if(ec._validate!=null){ec._validate()}var eb=this.zpp_inner;return eb.maxy-eb.miny};S.prototype.toString=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.toString()};Object.defineProperty(S.prototype,"min",{get:S.prototype.get_min,set:S.prototype.set_min});Object.defineProperty(S.prototype,"max",{get:S.prototype.get_max,set:S.prototype.set_max});Object.defineProperty(S.prototype,"x",{get:S.prototype.get_x,set:S.prototype.set_x});Object.defineProperty(S.prototype,"y",{get:S.prototype.get_y,set:S.prototype.set_y});Object.defineProperty(S.prototype,"width",{get:S.prototype.get_width,set:S.prototype.set_width});Object.defineProperty(S.prototype,"height",{get:S.prototype.get_height,set:S.prototype.set_height});S.prototype.__class__=S;var bJ=nape.geom.ConvexResult=function(){this.zpp_inner=null};bJ.__name__=["nape","geom","ConvexResult"];bJ.prototype.zpp_inner=null;bJ.prototype.get_normal=function(){return this.zpp_inner.normal};bJ.prototype.get_position=function(){return this.zpp_inner.position};bJ.prototype.get_toi=function(){return this.zpp_inner.toiDistance};bJ.prototype.get_shape=function(){return this.zpp_inner.shape};bJ.prototype.dispose=function(){this.zpp_inner.free()};bJ.prototype.toString=function(){return"{ shape: "+ag.string(this.zpp_inner.shape)+" toi: "+this.zpp_inner.toiDistance+" }"};Object.defineProperty(bJ.prototype,"normal",{get:bJ.prototype.get_normal});Object.defineProperty(bJ.prototype,"position",{get:bJ.prototype.get_position});Object.defineProperty(bJ.prototype,"toi",{get:bJ.prototype.get_toi});Object.defineProperty(bJ.prototype,"shape",{get:bJ.prototype.get_shape});bJ.prototype.__class__=bJ;var v=nape.geom.ConvexResultIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};v.__name__=["nape","geom","ConvexResultIterator"];v.get=function(ec){var ea;if(v.zpp_pool==null){dE.internal=true;var ed=new v();dE.internal=false;ea=ed}else{var eb=v.zpp_pool;v.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};v.prototype.zpp_inner=null;v.prototype.zpp_i=null;v.prototype.zpp_critical=null;v.prototype.zpp_next=null;v.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=v.zpp_pool;v.zpp_pool=this;this.zpp_inner=null;return false}};v.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};v.prototype.__class__=v;var cs=nape.geom.ConvexResultList=function(){this.zpp_inner=null;this.zpp_inner=new dE();this.zpp_inner.outer=this};cs.__name__=["nape","geom","ConvexResultList"];cs.fromArray=function(ed){var ea=new cs();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};cs.prototype.zpp_inner=null;cs.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};cs.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea)};cs.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt};cs.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};cs.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec)}else{this.zpp_inner.inner.add(ec)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};cs.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb};cs.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb};cs.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};cs.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec)}this.zpp_inner.invalidate()}return ea};cs.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};cs.prototype.empty=function(){return this.zpp_inner.inner.head==null};cs.prototype.iterator=function(){this.zpp_inner.valmod();return v.get(this)};cs.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new cs();this.zpp_inner.valmod();var ef=v.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=v.zpp_pool;v.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};cs.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=v.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=v.zpp_pool;v.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};cs.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=v.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=v.zpp_pool;v.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};cs.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=v.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=v.zpp_pool;v.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=v.zpp_pool;v.zpp_pool=ec;ec.zpp_inner=null;break}}return this};cs.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(cs.prototype,"length",{get:cs.prototype.get_length});cs.prototype.__class__=cs;var K=nape.geom.Geom=function(){};K.__name__=["nape","geom","Geom"];K.distanceBody=function(eb,ea,ef,ee){var ec=eb.zpp_inner.shapes.head;while(ec!=null){bM.validateShape(ec.elt);ec=ec.next}var ed=ea.zpp_inner.shapes.head;while(ed!=null){bM.validateShape(ed.elt);ed=ed.next}return de.distanceBody(eb.zpp_inner,ea.zpp_inner,ef.zpp_inner,ee.zpp_inner)};K.distance=function(f4,f3,eJ,eH){bM.validateShape(f4.zpp_inner);bM.validateShape(f3.zpp_inner);var eq;if(bB.zpp_pool==null){eq=new bB()}else{eq=bB.zpp_pool;bB.zpp_pool=eq.next;eq.next=null}eq.weak=false;var ep=f4.zpp_inner;var en=f3.zpp_inner;var fp=eJ.zpp_inner;var fo=eH.zpp_inner;var fn;if(ep.type==0&&en.type==0){var f2=ep.circle;var f1=en.circle;var ek;var fE=0;var fC=0;fE=f1.worldCOMx-f2.worldCOMx;fC=f1.worldCOMy-f2.worldCOMy;var fW=Math.sqrt(fE*fE+fC*fC);ek=fW-(f2.radius+f1.radius);if(ek<1e+100){if(fW==0){fE=1;fC=0}else{var ff=1/fW;fE*=ff;fC*=ff}var gg=f2.radius;fp.x=f2.worldCOMx+fE*gg;fp.y=f2.worldCOMy+fC*gg;var gf=-f1.radius;fo.x=f1.worldCOMx+fE*gf;fo.y=f1.worldCOMy+fC*gf;eq.x=fE;eq.y=fC}fn=ek}else{var eZ=false;if(ep.type==0&&en.type==1){var eR=ep;ep=en;en=eR;var eN=fp;fp=fo;fo=eN;eZ=true}if(ep.type==1&&en.type==0){var e6=ep.polygon;var fu=en.circle;var ez=-1e+100;var ea=null;var f0=e6.edges.head;while(f0!=null){var fz=f0.elt;var eX=fz.gnormx*fu.worldCOMx+fz.gnormy*fu.worldCOMy-fz.gprojection-fu.radius;if(eX>1e+100){ez=eX;break}if(eX>0){if(eX>ez){ez=eX;ea=fz}}else{if(ez<0&&eX>ez){ez=eX;ea=fz}}f0=f0.next}if(ez<1e+100){var fR=ea.gp0;var fP=ea.gp1;var eL=fu.worldCOMy*ea.gnormx-fu.worldCOMx*ea.gnormy;if(eL<=fR.y*ea.gnormx-fR.x*ea.gnormy){var f6=0;var fZ=0;f6=fu.worldCOMx-fR.x;fZ=fu.worldCOMy-fR.y;var fG=Math.sqrt(f6*f6+fZ*fZ);ez=fG-fu.radius;if(ez<1e+100){if(fG==0){f6=1;fZ=0}else{var ge=1/fG;f6*=ge;fZ*=ge}fp.x=fR.x+f6*0;fp.y=fR.y+fZ*0;var gd=-fu.radius;fo.x=fu.worldCOMx+f6*gd;fo.y=fu.worldCOMy+fZ*gd;eq.x=f6;eq.y=fZ}}else{if(eL>=fP.y*ea.gnormx-fP.x*ea.gnormy){var f5=0;var fX=0;f5=fu.worldCOMx-fP.x;fX=fu.worldCOMy-fP.y;var fF=Math.sqrt(f5*f5+fX*fX);ez=fF-fu.radius;if(ez<1e+100){if(fF==0){f5=1;fX=0}else{var gc=1/fF;f5*=gc;fX*=gc}fp.x=fP.x+f5*0;fp.y=fP.y+fX*0;var gb=-fu.radius;fo.x=fu.worldCOMx+f5*gb;fo.y=fu.worldCOMy+fX*gb;eq.x=f5;eq.y=fX}}else{var f9=-fu.radius;fo.x=fu.worldCOMx+ea.gnormx*f9;fo.y=fu.worldCOMy+ea.gnormy*f9;var f8=-ez;fp.x=fo.x+ea.gnormx*f8;fp.y=fo.y+ea.gnormy*f8;eq.x=ea.gnormx;eq.y=ea.gnormy}}}if(eZ){eq.x=-eq.x;eq.y=-eq.y}fn=ez}else{var fK=ep.polygon;var fI=en.polygon;var fy=-1e+100;var gq=null;var gp=null;var eU=0;var fT=fK.edges.head;while(fT!=null){var go=fT.elt;var gj=1e+100;var fS=fI.gverts.next;while(fS!=null){var fe=fS;var fq=go.gnormx*fe.x+go.gnormy*fe.y;if(fq<gj){gj=fq}fS=fS.next}gj-=go.gprojection;if(gj>1e+100){fy=gj;break}if(gj>0){if(gj>fy){fy=gj;gq=go;eU=1}}else{if(fy<0&&gj>fy){fy=gj;gq=go;eU=1}}fT=fT.next}if(fy<1e+100){var fQ=fI.edges.head;while(fQ!=null){var gn=fQ.elt;var fs=1e+100;var fO=fK.gverts.next;while(fO!=null){var fN=fO;var fd=gn.gnormx*fN.x+gn.gnormy*fN.y;if(fd<fs){fs=fd}fO=fO.next}fs-=gn.gprojection;if(fs>1e+100){fy=fs;break}if(fs>0){if(fs>fy){fy=fs;gp=gn;eU=2}}else{if(fy<0&&fs>fy){fy=fs;gp=gn;eU=2}}fQ=fQ.next}if(fy<1e+100){var fh;var fV;if(eU==1){fh=fI;fV=gq}else{fh=fK;fV=gp;var eM=fp;fp=fo;fo=eM;eZ=!eZ}var fU=null;var fr=1e+100;var fM=fh.edges.head;while(fM!=null){var gl=fM.elt;var fc=fV.gnormx*gl.gnormx+fV.gnormy*gl.gnormy;if(fc<fr){fr=fc;fU=gl}fM=fM.next}if(eZ){eq.x=-fV.gnormx;eq.y=-fV.gnormy}else{eq.x=fV.gnormx;eq.y=fV.gnormy}if(fy>=0){var e5=fV.gp0;var es=fV.gp1;var fk=fU.gp0;var fj=fU.gp1;var e4=0;var e3=0;var ei=0;var eh=0;e4=es.x-e5.x;e3=es.y-e5.y;ei=fj.x-fk.x;eh=fj.y-fk.y;var e9=1/(e4*e4+e3*e3);var eW=1/(ei*ei+eh*eh);var eI=-(e4*(e5.x-fk.x)+e3*(e5.y-fk.y))*e9;var gm=-(e4*(e5.x-fj.x)+e3*(e5.y-fj.y))*e9;var eQ=-(ei*(fk.x-e5.x)+eh*(fk.y-e5.y))*eW;var ed=-(ei*(fk.x-es.x)+eh*(fk.y-es.y))*eW;if(eI<0){eI=0}else{if(eI>1){eI=1}}if(gm<0){gm=0}else{if(gm>1){gm=1}}if(eQ<0){eQ=0}else{if(eQ>1){eQ=1}}if(ed<0){ed=0}else{if(ed>1){ed=1}}var e0=0;var eY=0;var f7=eI;e0=e5.x+e4*f7;eY=e5.y+e3*f7;var el=0;var ej=0;var eK=gm;el=e5.x+e4*eK;ej=e5.y+e3*eK;var eT=0;var eP=0;var eG=eQ;eT=fk.x+ei*eG;eP=fk.y+eh*eG;var ef=0;var ec=0;var eE=ed;ef=fk.x+ei*eE;ec=fk.y+eh*eE;var fw=fk.x;var ft=fk.y;var eF=0;var eD=0;eF=e0-fw;eD=eY-ft;var fB=eF*eF+eD*eD;var eV=fj.x;var eg=fj.y;var eB=0;var gk=0;eB=el-eV;gk=ej-eg;var fA=eB*eB+gk*gk;var eS=e5.x;var ee=e5.y;var ey=0;var gi=0;ey=eT-eS;gi=eP-ee;var fb=ey*ey+gi*gi;var eO=es.x;var eb=es.y;var ew=0;var gh=0;ew=ef-eO;gh=ec-eb;var fa=ew*ew+gh*gh;var fJ=0;var fH=0;var eu=null;if(fB<fA){fJ=e0;fH=eY;eu=fk}else{fJ=el;fH=ej;eu=fj;fB=fA}var fi=0;var fg=0;var er=null;if(fb<fa){fi=eT;fg=eP;er=e5}else{fi=ef;fg=ec;er=es;fb=fa}if(fB<fb){fp.x=fJ;fp.y=fH;fo.x=eu.x;fo.y=eu.y;fy=Math.sqrt(fB)}else{fo.x=fi;fo.y=fg;fp.x=er.x;fp.y=er.y;fy=Math.sqrt(fb)}if(fy!=0){eq.x=fo.x-fp.x;eq.y=fo.y-fp.y;var eC=1/fy;eq.x*=eC;eq.y*=eC;if(eZ){eq.x=-eq.x;eq.y=-eq.y}}fn=fy}else{var fx=0;var fv=0;fx=fU.gp0.x;fv=fU.gp0.y;var e8=0;var e7=0;e8=fU.gp1.x;e7=fU.gp1.y;var eo=0;var em=0;eo=e8-fx;em=e7-fv;var fD=fV.gnormy*fx-fV.gnormx*fv;var fY=fV.gnormy*e8-fV.gnormx*e7;var ga=1/(fY-fD);var eA=(-fV.tp1-fD)*ga;if(eA>P.epsilon){fx+=eo*eA;fv+=em*eA}var ex=(-fV.tp0-fY)*ga;if(ex<-P.epsilon){e8+=eo*ex;e7+=em*ex}var fL=fx*fV.gnormx+fv*fV.gnormy-fV.gprojection;var fl=e8*fV.gnormx+e7*fV.gnormy-fV.gprojection;if(fL<fl){fo.x=fx;fo.y=fv;var ev=-fL;fp.x=fo.x+fV.gnormx*ev;fp.y=fo.y+fV.gnormy*ev;fn=fL}else{fo.x=e8;fo.y=e7;var et=-fl;fp.x=fo.x+fV.gnormx*et;fp.y=fo.y+fV.gnormy*et;fn=fl}}}else{fn=1e+100}}else{fn=1e+100}}}var fm=eq;if(fm.outer!=null){fm.outer.zpp_inner=null;fm.outer=null}fm._isimmutable=null;fm._validate=null;fm._invalidate=null;fm.next=bB.zpp_pool;bB.zpp_pool=fm;return fn};K.intersectsBody=function(ea,ei){var eb=ea.zpp_inner.shapes.head;while(eb!=null){bM.validateShape(eb.elt);eb=eb.next}var eg=ei.zpp_inner.shapes.head;while(eg!=null){bM.validateShape(eg.elt);eg=eg.next}var ec=ea.zpp_inner.aabb;var ef=ei.zpp_inner.aabb;if(!(ef.miny<=ec.maxy&&ec.miny<=ef.maxy&&ef.minx<=ec.maxx&&ec.minx<=ef.maxx)){return false}else{var ee=ea.zpp_inner.shapes.head;while(ee!=null){var eh=ee.elt;var ed=ei.zpp_inner.shapes.head;while(ed!=null){if(b7.testCollide_safe(eh,ed.elt)){return true}ed=ed.next}ee=ee.next}return false}};K.intersects=function(ec,eb){bM.validateShape(ec.zpp_inner);bM.validateShape(eb.zpp_inner);var ed=ec.zpp_inner.aabb;var ea=eb.zpp_inner.aabb;if(ea.miny<=ed.maxy&&ed.miny<=ea.maxy&&ea.minx<=ed.maxx&&ed.minx<=ea.maxx){return b7.testCollide_safe(ec.zpp_inner,eb.zpp_inner)}else{return false}};K.contains=function(eb,ea){bM.validateShape(eb.zpp_inner);bM.validateShape(ea.zpp_inner);return b7.containTest(eb.zpp_inner,ea.zpp_inner)};K.prototype.__class__=K;var a7=nape.geom.GeomPoly=function(eb){this.zpp_inner=null;this.zpp_pool=null;this.zpp_inner=new b5(this);if(eb!=null){if((eb instanceof Array)&&eb.__enum__==null){var ew=eb;var eZ=0;while(eZ<ew.length){var ep=ew[eZ];++eZ;var eN=ep;var ed=eN.zpp_inner;if(ed._validate!=null){ed._validate()}var eJ=eN.zpp_inner.x;var eQ=eN.zpp_inner;if(eQ._validate!=null){eQ._validate()}var eF=eN.zpp_inner.y;var ey;if(dr.zpp_pool==null){ey=new dr()}else{ey=dr.zpp_pool;dr.zpp_pool=ey.next;ey.next=null}ey.forced=false;ey.x=eJ;ey.y=eF;var ea=ey;if(this.zpp_inner.vertices==null){this.zpp_inner.vertices=ea.prev=ea.next=ea}else{ea.prev=this.zpp_inner.vertices;ea.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=ea;this.zpp_inner.vertices.next=ea}this.zpp_inner.vertices=ea}}else{if(dc.__instanceof(eb,aN)){var ev=eb;var eV=ev.iterator();while(true){eV.zpp_inner.zpp_inner.valmod();var er=eV.zpp_inner.zpp_gl();eV.zpp_critical=true;var eS;if(eV.zpp_i<er){eS=true}else{eV.zpp_next=dW.zpp_pool;dW.zpp_pool=eV;eV.zpp_inner=null;eS=false}if(!eS){break}eV.zpp_critical=false;var e4=eV.zpp_inner.at(eV.zpp_i++);var eP=e4.zpp_inner;if(eP._validate!=null){eP._validate()}var eo=e4.zpp_inner.x;var eM=e4.zpp_inner;if(eM._validate!=null){eM._validate()}var e6=e4.zpp_inner.y;var eK;if(dr.zpp_pool==null){eK=new dr()}else{eK=dr.zpp_pool;dr.zpp_pool=eK.next;eK.next=null}eK.forced=false;eK.x=eo;eK.y=e6;var ee=eK;if(this.zpp_inner.vertices==null){this.zpp_inner.vertices=ee.prev=ee.next=ee}else{ee.prev=this.zpp_inner.vertices;ee.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=ee;this.zpp_inner.vertices.next=ee}this.zpp_inner.vertices=ee}}else{if(dc.__instanceof(eb,a7)){var eu=eb;var eX=eu.zpp_inner.vertices;if(eX!=null){var eY=eX;while(true){var en=eY.x;var e5=eY.y;var eG;if(au.poolVec2==null){eG=new r()}else{eG=au.poolVec2;au.poolVec2=eG.zpp_pool;eG.zpp_pool=null}if(eG.zpp_inner==null){var eD;if(bB.zpp_pool==null){eD=new bB()}else{eD=bB.zpp_pool;bB.zpp_pool=eD.next;eD.next=null}eD.weak=false;eD._immutable=false;eD.x=en;eD.y=e5;eG.zpp_inner=eD;eG.zpp_inner.outer=eG}else{var e1;var eL=eG.zpp_inner;if(eL._validate!=null){eL._validate()}if(eG.zpp_inner.x==en){var eI=eG.zpp_inner;if(eI._validate!=null){eI._validate()}e1=eG.zpp_inner.y==e5}else{e1=false}if(!e1){eG.zpp_inner.x=en;eG.zpp_inner.y=e5;var eE=eG.zpp_inner;if(eE._invalidate!=null){eE._invalidate(eE)}}}eG.zpp_inner.weak=false;var e2=eG;eY=eY.next;var eC=e2.zpp_inner;if(eC._validate!=null){eC._validate()}var em=e2.zpp_inner.x;var eB=e2.zpp_inner;if(eB._validate!=null){eB._validate()}var e3=e2.zpp_inner.y;var eA;if(dr.zpp_pool==null){eA=new dr()}else{eA=dr.zpp_pool;dr.zpp_pool=eA.next;eA.next=null}eA.forced=false;eA.x=em;eA.y=e3;var ec=eA;if(this.zpp_inner.vertices==null){this.zpp_inner.vertices=ec.prev=ec.next=ec}else{ec.prev=this.zpp_inner.vertices;ec.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=ec;this.zpp_inner.vertices.next=ec}this.zpp_inner.vertices=ec;var ex=e2.zpp_inner;e2.zpp_inner.outer=null;e2.zpp_inner=null;var eU=e2;eU.zpp_pool=au.poolVec2;au.poolVec2=eU;var ek=ex;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek;if(eY==eX){break}}}}}}this.skipForward(1);if((eb instanceof Array)&&eb.__enum__==null){var et=eb;var eW=0;while(eW<et.length){var ef=et[eW];var e0;if(ef.zpp_inner.weak){var eT=ef.zpp_inner;ef.zpp_inner.outer=null;ef.zpp_inner=null;var ej=ef;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;var ei=eT;if(ei.outer!=null){ei.outer.zpp_inner=null;ei.outer=null}ei._isimmutable=null;ei._validate=null;ei._invalidate=null;ei.next=bB.zpp_pool;bB.zpp_pool=ei;e0=true}else{e0=false}if(e0){et.splice(eW,1);continue}++eW}}else{if(dc.__instanceof(eb,aN)){var es=eb;if(es.zpp_inner._validate!=null){es.zpp_inner._validate()}var eH=es.zpp_inner.inner;var eO=null;var eq=eH.head;while(eq!=null){var el=eq.elt;if(el.outer.zpp_inner.weak){eq=eH.erase(eO);if(el.outer.zpp_inner.weak){var ez=el.outer;var eR=ez.zpp_inner;ez.zpp_inner.outer=null;ez.zpp_inner=null;var eh=ez;eh.zpp_pool=au.poolVec2;au.poolVec2=eh;var eg=eR;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg._isimmutable=null;eg._validate=null;eg._invalidate=null;eg.next=bB.zpp_pool;bB.zpp_pool=eg}}else{eO=eq;eq=eq.next}}}}}};a7.__name__=["nape","geom","GeomPoly"];a7.get=function(eb){var ey;if(au.poolGeomPoly==null){ey=new a7()}else{ey=au.poolGeomPoly;au.poolGeomPoly=ey.zpp_pool;ey.zpp_pool=null}if(eb!=null){if((eb instanceof Array)&&eb.__enum__==null){var ew=eb;var e0=0;while(e0<ew.length){var ep=ew[e0];++e0;var eO=ep;var ed=eO.zpp_inner;if(ed._validate!=null){ed._validate()}var eK=eO.zpp_inner.x;var eR=eO.zpp_inner;if(eR._validate!=null){eR._validate()}var eG=eO.zpp_inner.y;var eL;if(dr.zpp_pool==null){eL=new dr()}else{eL=dr.zpp_pool;dr.zpp_pool=eL.next;eL.next=null}eL.forced=false;eL.x=eK;eL.y=eG;var ea=eL;if(ey.zpp_inner.vertices==null){ey.zpp_inner.vertices=ea.prev=ea.next=ea}else{ea.prev=ey.zpp_inner.vertices;ea.next=ey.zpp_inner.vertices.next;ey.zpp_inner.vertices.next.prev=ea;ey.zpp_inner.vertices.next=ea}ey.zpp_inner.vertices=ea}}else{if(dc.__instanceof(eb,aN)){var ev=eb;var eW=ev.iterator();while(true){eW.zpp_inner.zpp_inner.valmod();var er=eW.zpp_inner.zpp_gl();eW.zpp_critical=true;var eT;if(eW.zpp_i<er){eT=true}else{eW.zpp_next=dW.zpp_pool;dW.zpp_pool=eW;eW.zpp_inner=null;eT=false}if(!eT){break}eW.zpp_critical=false;var e5=eW.zpp_inner.at(eW.zpp_i++);var eQ=e5.zpp_inner;if(eQ._validate!=null){eQ._validate()}var eo=e5.zpp_inner.x;var eN=e5.zpp_inner;if(eN._validate!=null){eN._validate()}var e7=e5.zpp_inner.y;var eH;if(dr.zpp_pool==null){eH=new dr()}else{eH=dr.zpp_pool;dr.zpp_pool=eH.next;eH.next=null}eH.forced=false;eH.x=eo;eH.y=e7;var ee=eH;if(ey.zpp_inner.vertices==null){ey.zpp_inner.vertices=ee.prev=ee.next=ee}else{ee.prev=ey.zpp_inner.vertices;ee.next=ey.zpp_inner.vertices.next;ey.zpp_inner.vertices.next.prev=ee;ey.zpp_inner.vertices.next=ee}ey.zpp_inner.vertices=ee}}else{if(dc.__instanceof(eb,a7)){var eu=eb;var eY=eu.zpp_inner.vertices;if(eY!=null){var eZ=eY;while(true){var en=eZ.x;var e6=eZ.y;var eE;if(au.poolVec2==null){eE=new r()}else{eE=au.poolVec2;au.poolVec2=eE.zpp_pool;eE.zpp_pool=null}if(eE.zpp_inner==null){var eC;if(bB.zpp_pool==null){eC=new bB()}else{eC=bB.zpp_pool;bB.zpp_pool=eC.next;eC.next=null}eC.weak=false;eC._immutable=false;eC.x=en;eC.y=e6;eE.zpp_inner=eC;eE.zpp_inner.outer=eE}else{var e2;var eM=eE.zpp_inner;if(eM._validate!=null){eM._validate()}if(eE.zpp_inner.x==en){var eJ=eE.zpp_inner;if(eJ._validate!=null){eJ._validate()}e2=eE.zpp_inner.y==e6}else{e2=false}if(!e2){eE.zpp_inner.x=en;eE.zpp_inner.y=e6;var eF=eE.zpp_inner;if(eF._invalidate!=null){eF._invalidate(eF)}}}eE.zpp_inner.weak=false;var e3=eE;eZ=eZ.next;var eD=e3.zpp_inner;if(eD._validate!=null){eD._validate()}var em=e3.zpp_inner.x;var eB=e3.zpp_inner;if(eB._validate!=null){eB._validate()}var e4=e3.zpp_inner.y;var eA;if(dr.zpp_pool==null){eA=new dr()}else{eA=dr.zpp_pool;dr.zpp_pool=eA.next;eA.next=null}eA.forced=false;eA.x=em;eA.y=e4;var ec=eA;if(ey.zpp_inner.vertices==null){ey.zpp_inner.vertices=ec.prev=ec.next=ec}else{ec.prev=ey.zpp_inner.vertices;ec.next=ey.zpp_inner.vertices.next;ey.zpp_inner.vertices.next.prev=ec;ey.zpp_inner.vertices.next=ec}ey.zpp_inner.vertices=ec;var ex=e3.zpp_inner;e3.zpp_inner.outer=null;e3.zpp_inner=null;var eV=e3;eV.zpp_pool=au.poolVec2;au.poolVec2=eV;var ek=ex;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek;if(!(eZ!=eY)){break}}}}}}ey.skipForward(1);if((eb instanceof Array)&&eb.__enum__==null){var et=eb;var eX=0;while(eX<et.length){var ef=et[eX];var e1;if(ef.zpp_inner.weak){var eU=ef.zpp_inner;ef.zpp_inner.outer=null;ef.zpp_inner=null;var ej=ef;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;var ei=eU;if(ei.outer!=null){ei.outer.zpp_inner=null;ei.outer=null}ei._isimmutable=null;ei._validate=null;ei._invalidate=null;ei.next=bB.zpp_pool;bB.zpp_pool=ei;e1=true}else{e1=false}if(e1){et.splice(eX,1);continue}++eX}}else{if(dc.__instanceof(eb,aN)){var es=eb;if(es.zpp_inner._validate!=null){es.zpp_inner._validate()}var eI=es.zpp_inner.inner;var eP=null;var eq=eI.head;while(eq!=null){var el=eq.elt;if(el.outer.zpp_inner.weak){eq=eI.erase(eP);if(el.outer.zpp_inner.weak){var ez=el.outer;var eS=ez.zpp_inner;ez.zpp_inner.outer=null;ez.zpp_inner=null;var eh=ez;eh.zpp_pool=au.poolVec2;au.poolVec2=eh;var eg=eS;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg._isimmutable=null;eg._validate=null;eg._invalidate=null;eg.next=bB.zpp_pool;bB.zpp_pool=eg}}else{eP=eq;eq=eq.next}}}}}return ey};a7.prototype.zpp_pool=null;a7.prototype.zpp_inner=null;a7.prototype.empty=function(){return this.zpp_inner.vertices==null};a7.prototype.size=function(){var eb=0;var ec=this.zpp_inner.vertices;var ea=this.zpp_inner.vertices;if(ec!=null){var ed=ec;while(true){++eb;ed=ed.next;if(!(ed!=ea)){break}}}return eb};a7.prototype.iterator=function(){return dn.get(this.zpp_inner.vertices,true)};a7.prototype.forwardIterator=function(){return dn.get(this.zpp_inner.vertices,true)};a7.prototype.backwardsIterator=function(){return dn.get(this.zpp_inner.vertices,false)};a7.prototype.current=function(){var ec=this.zpp_inner.vertices;if(ec.wrap==null){var ei=ec.x;var eg=ec.y;var ee;if(au.poolVec2==null){ee=new r()}else{ee=au.poolVec2;au.poolVec2=ee.zpp_pool;ee.zpp_pool=null}if(ee.zpp_inner==null){var eh;if(bB.zpp_pool==null){eh=new bB()}else{eh=bB.zpp_pool;bB.zpp_pool=eh.next;eh.next=null}eh.weak=false;eh._immutable=false;eh.x=ei;eh.y=eg;ee.zpp_inner=eh;ee.zpp_inner.outer=ee}else{var ea;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ei){var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}ea=ee.zpp_inner.y==eg}else{ea=false}if(!ea){ee.zpp_inner.x=ei;ee.zpp_inner.y=eg;var eb=ee.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}}ee.zpp_inner.weak=false;ec.wrap=ee;ec.wrap.zpp_inner._inuse=true;ec.wrap.zpp_inner._invalidate=dX(ec,ec.modwrap);ec.wrap.zpp_inner._validate=dX(ec,ec.getwrap)}return ec.wrap};a7.prototype.push=function(ee){var eh=ee.zpp_inner;if(eh._validate!=null){eh._validate()}var ea=ee.zpp_inner.x;var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}var eg=ee.zpp_inner.y;var ec;if(dr.zpp_pool==null){ec=new dr()}else{ec=dr.zpp_pool;dr.zpp_pool=ec.next;ec.next=null}ec.forced=false;ec.x=ea;ec.y=eg;var ef=ec;if(this.zpp_inner.vertices==null){this.zpp_inner.vertices=ef.prev=ef.next=ef}else{ef.prev=this.zpp_inner.vertices;ef.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=ef;this.zpp_inner.vertices.next=ef}this.zpp_inner.vertices=ef;if(ee.zpp_inner.weak){var eb=ee.zpp_inner;ee.zpp_inner.outer=null;ee.zpp_inner=null;ee.zpp_pool=au.poolVec2;au.poolVec2=ee;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}return this};a7.prototype.pop=function(){var ec=this.zpp_inner.vertices;var eb;if(this.zpp_inner.vertices!=null&&this.zpp_inner.vertices.prev==this.zpp_inner.vertices){this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;eb=null}else{var ed=this.zpp_inner.vertices.prev;this.zpp_inner.vertices.prev.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=this.zpp_inner.vertices.prev;this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;this.zpp_inner.vertices=null;eb=ed}this.zpp_inner.vertices=eb;if(ec.wrap!=null){ec.wrap.zpp_inner._inuse=false;var ee=ec.wrap;var ea=ee.zpp_inner;ee.zpp_inner.outer=null;ee.zpp_inner=null;ee.zpp_pool=au.poolVec2;au.poolVec2=ee;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;ec.wrap=null}ec.prev=ec.next=null;ec.next=dr.zpp_pool;dr.zpp_pool=ec;return this};a7.prototype.unshift=function(ee){var eh=ee.zpp_inner;if(eh._validate!=null){eh._validate()}var ea=ee.zpp_inner.x;var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}var eg=ee.zpp_inner.y;var ec;if(dr.zpp_pool==null){ec=new dr()}else{ec=dr.zpp_pool;dr.zpp_pool=ec.next;ec.next=null}ec.forced=false;ec.x=ea;ec.y=eg;var ef=ec;if(this.zpp_inner.vertices==null){this.zpp_inner.vertices=ef.prev=ef.next=ef}else{ef.next=this.zpp_inner.vertices;ef.prev=this.zpp_inner.vertices.prev;this.zpp_inner.vertices.prev.next=ef;this.zpp_inner.vertices.prev=ef}this.zpp_inner.vertices=ef;if(ee.zpp_inner.weak){var eb=ee.zpp_inner;ee.zpp_inner.outer=null;ee.zpp_inner=null;ee.zpp_pool=au.poolVec2;au.poolVec2=ee;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}return this};a7.prototype.shift=function(){var ec=this.zpp_inner.vertices;var eb;if(this.zpp_inner.vertices!=null&&this.zpp_inner.vertices.prev==this.zpp_inner.vertices){this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;eb=this.zpp_inner.vertices=null}else{var ed=this.zpp_inner.vertices.next;this.zpp_inner.vertices.prev.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=this.zpp_inner.vertices.prev;this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;this.zpp_inner.vertices=null;eb=ed}this.zpp_inner.vertices=eb;if(ec.wrap!=null){ec.wrap.zpp_inner._inuse=false;var ee=ec.wrap;var ea=ee.zpp_inner;ee.zpp_inner.outer=null;ee.zpp_inner=null;ee.zpp_pool=au.poolVec2;au.poolVec2=ee;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;ec.wrap=null}ec.prev=ec.next=null;ec.next=dr.zpp_pool;dr.zpp_pool=ec;return this};a7.prototype.skipForward=function(ea){if(this.zpp_inner.vertices!=null){if(ea>0){while(ea-->0){this.zpp_inner.vertices=this.zpp_inner.vertices.next}}else{if(ea<0){while(ea++<0){this.zpp_inner.vertices=this.zpp_inner.vertices.prev}}}}return this};a7.prototype.skipBackwards=function(ea){return this.skipForward(-ea)};a7.prototype.erase=function(ef){while(ef!=0&&this.zpp_inner.vertices!=null){var ed=this.zpp_inner.vertices;if(ef>0){var ec;if(this.zpp_inner.vertices!=null&&this.zpp_inner.vertices.prev==this.zpp_inner.vertices){this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;ec=this.zpp_inner.vertices=null}else{var eg=this.zpp_inner.vertices.next;this.zpp_inner.vertices.prev.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=this.zpp_inner.vertices.prev;this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;this.zpp_inner.vertices=null;ec=eg}this.zpp_inner.vertices=ec;--ef}else{if(ef<0){var ee;if(this.zpp_inner.vertices!=null&&this.zpp_inner.vertices.prev==this.zpp_inner.vertices){this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;ee=null}else{var eb=this.zpp_inner.vertices.prev;this.zpp_inner.vertices.prev.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=this.zpp_inner.vertices.prev;this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;this.zpp_inner.vertices=null;ee=eb}this.zpp_inner.vertices=ee;++ef}}if(ed.wrap!=null){ed.wrap.zpp_inner._inuse=false;var eh=ed.wrap;var ea=eh.zpp_inner;eh.zpp_inner.outer=null;eh.zpp_inner=null;eh.zpp_pool=au.poolVec2;au.poolVec2=eh;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;ed.wrap=null}ed.prev=ed.next=null;ed.next=dr.zpp_pool;dr.zpp_pool=ed}return this};a7.prototype.clear=function(){while(this.zpp_inner.vertices!=null){var eb=this.zpp_inner.vertices;var ec;if(this.zpp_inner.vertices!=null&&this.zpp_inner.vertices.prev==this.zpp_inner.vertices){this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;ec=this.zpp_inner.vertices=null}else{var ed=this.zpp_inner.vertices.next;this.zpp_inner.vertices.prev.next=this.zpp_inner.vertices.next;this.zpp_inner.vertices.next.prev=this.zpp_inner.vertices.prev;this.zpp_inner.vertices.next=this.zpp_inner.vertices.prev=null;this.zpp_inner.vertices=null;ec=ed}this.zpp_inner.vertices=ec;if(eb.wrap!=null){eb.wrap.zpp_inner._inuse=false;var ee=eb.wrap;var ea=ee.zpp_inner;ee.zpp_inner.outer=null;ee.zpp_inner=null;ee.zpp_pool=au.poolVec2;au.poolVec2=ee;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;eb.wrap=null}eb.prev=eb.next=null;eb.next=dr.zpp_pool;dr.zpp_pool=eb}return this};a7.prototype.copy=function(){var ec=a7.get();var ei=this.zpp_inner.vertices;var ed=this.zpp_inner.vertices;if(ei!=null){var ea=ei;while(true){var eh=ea;var eg=eh.x;var ee=eh.y;var ef;if(dr.zpp_pool==null){ef=new dr()}else{ef=dr.zpp_pool;dr.zpp_pool=ef.next;ef.next=null}ef.forced=false;ef.x=eg;ef.y=ee;var eb=ef;if(ec.zpp_inner.vertices==null){ec.zpp_inner.vertices=eb.prev=eb.next=eb}else{eb.prev=ec.zpp_inner.vertices;eb.next=ec.zpp_inner.vertices.next;ec.zpp_inner.vertices.next.prev=eb;ec.zpp_inner.vertices.next=eb}ec.zpp_inner.vertices=eb;ea=ea.next;if(!(ea!=ed)){break}}}return ec.skipForward(1)};a7.prototype.dispose=function(){this.clear();var ea=this;ea.zpp_pool=au.poolGeomPoly;au.poolGeomPoly=ea};a7.prototype.toString=function(){var ec="GeomPoly[";var ed=this.zpp_inner.vertices;var ea=this.zpp_inner.vertices;if(ed!=null){var ee=ed;while(true){var eb=ee;if(eb!=this.zpp_inner.vertices){ec+=","}ec+="{"+eb.x+","+eb.y+"}";ee=ee.next;if(!(ee!=ea)){break}}}return ec+"]"};a7.prototype.area=function(){if(this.zpp_inner.vertices==null||this.zpp_inner.vertices.next==null||this.zpp_inner.vertices.prev==this.zpp_inner.vertices.next){return 0}else{var ee=0;var ed=this.zpp_inner.vertices;var ea=this.zpp_inner.vertices;if(ed!=null){var ef=ed;while(true){var eb=ef;ee+=eb.x*(eb.next.y-eb.prev.y);ef=ef.next;if(!(ef!=ea)){break}}}var ec=ee*0.5;if(ec<0){return -ec}else{return ec}}};a7.prototype.winding=function(){if(this.zpp_inner.vertices==null||this.zpp_inner.vertices.next==null||this.zpp_inner.vertices.prev==this.zpp_inner.vertices.next){if(br.Winding_UNDEFINED==null){br.internal=true;br.Winding_UNDEFINED=new X();br.internal=false}return br.Winding_UNDEFINED}else{var ee=0;var ed=this.zpp_inner.vertices;var ea=this.zpp_inner.vertices;if(ed!=null){var ef=ed;while(true){var ec=ef;ee+=ec.x*(ec.next.y-ec.prev.y);ef=ef.next;if(!(ef!=ea)){break}}}var eb=ee*0.5;if(eb>0){if(br.Winding_CLOCKWISE==null){br.internal=true;br.Winding_CLOCKWISE=new X();br.internal=false}return br.Winding_CLOCKWISE}else{if(eb==0){if(br.Winding_UNDEFINED==null){br.internal=true;br.Winding_UNDEFINED=new X();br.internal=false}return br.Winding_UNDEFINED}else{if(br.Winding_ANTICLOCKWISE==null){br.internal=true;br.Winding_ANTICLOCKWISE=new X();br.internal=false}return br.Winding_ANTICLOCKWISE}}}};a7.prototype.contains=function(ek){var ed=ek.zpp_inner;if(ed._validate!=null){ed._validate()}var ej=ek.zpp_inner.x;var ef=ek.zpp_inner;if(ef._validate!=null){ef._validate()}var ei=ek.zpp_inner.y;var ee=false;var el=this.zpp_inner.vertices;var eg=this.zpp_inner.vertices;if(el!=null){var ec=el;while(true){var eb=ec;var ea=eb.prev;if((eb.y<ei&&ea.y>=ei||ea.y<ei&&eb.y>=ei)&&(eb.x<=ej||ea.x<=ej)){if(eb.x+(ei-eb.y)/(ea.y-eb.y)*(ea.x-eb.x)<ej){ee=!ee}}ec=ec.next;if(!(ec!=eg)){break}}}var eh=ee;if(ek.zpp_inner.weak){var em=ek.zpp_inner;ek.zpp_inner.outer=null;ek.zpp_inner=null;ek.zpp_pool=au.poolVec2;au.poolVec2=ek;if(em.outer!=null){em.outer.zpp_inner=null;em.outer=null}em._isimmutable=null;em._validate=null;em._invalidate=null;em.next=bB.zpp_pool;bB.zpp_pool=em}return eh};a7.prototype.isClockwise=function(){var ea=this.winding();if(br.Winding_CLOCKWISE==null){br.internal=true;br.Winding_CLOCKWISE=new X();br.internal=false}return ea==br.Winding_CLOCKWISE};a7.prototype.isConvex=function(){if(this.zpp_inner.vertices==null||this.zpp_inner.vertices.next==null||this.zpp_inner.vertices.prev==this.zpp_inner.vertices.next){return true}else{var ec=false;var ei=false;var ee=true;var em=this.zpp_inner.vertices;var eh=this.zpp_inner.vertices;if(em!=null){var ed=em;while(true){var ek=ed;var el=ek.prev;var ej=ek.next;var ea=0;var en=0;ea=ej.x-ek.x;en=ej.y-ek.y;var eg=0;var ef=0;eg=ek.x-el.x;ef=ek.y-el.y;var eb=ef*ea-eg*en;if(eb>0){ei=true}else{if(eb<0){ec=true}}if(ei&&ec){ee=false;break}ed=ed.next;if(!(ed!=eh)){break}}}return ee}};a7.prototype.isSimple=function(){if(this.zpp_inner.vertices==null||this.zpp_inner.vertices.next==null||this.zpp_inner.vertices.prev==this.zpp_inner.vertices.next){return true}else{return bv.isSimple(this.zpp_inner.vertices)}};a7.prototype.isMonotone=function(){if(this.zpp_inner.vertices==null||this.zpp_inner.vertices.next==null||this.zpp_inner.vertices.prev==this.zpp_inner.vertices.next){return true}else{return aE.isMonotone(this.zpp_inner.vertices)}};a7.prototype.isDegenerate=function(){if(this.zpp_inner.vertices==null||this.zpp_inner.vertices.next==null||this.zpp_inner.vertices.prev==this.zpp_inner.vertices.next){return true}else{return this.area()<P.epsilon}};a7.prototype.simplify=function(ec){if(this.zpp_inner.vertices==null||this.zpp_inner.vertices.next==null||this.zpp_inner.vertices.prev==this.zpp_inner.vertices.next){return this.copy()}else{var ea=aL.simplify(this.zpp_inner.vertices,ec);var eb=a7.get();eb.zpp_inner.vertices=ea;return eb}};a7.prototype.simpleDecomposition=function(ec){if(a.sharedGVList==null){a.sharedGVList=new dA()}var eb=bv.decompose(this.zpp_inner.vertices,a.sharedGVList);var ed=ec==null?new u():ec;while(eb.head!=null){var ee=eb.pop_unsafe();var ea=a7.get();ea.zpp_inner.vertices=ee;if(ed.zpp_inner.reverse_flag){ed.push(ea)}else{ed.unshift(ea)}}return ed};a7.prototype.monotoneDecomposition=function(ec){if(aE.sharedPPoly==null){aE.sharedPPoly=new a()}var ef=aE.decompose(this.zpp_inner.vertices,aE.sharedPPoly);if(a.sharedGVList==null){a.sharedGVList=new dA()}var eb=ef.extract(a.sharedGVList);var ed=ec==null?new u():ec;while(eb.head!=null){var ee=eb.pop_unsafe();var ea=a7.get();ea.zpp_inner.vertices=ee;if(ed.zpp_inner.reverse_flag){ed.push(ea)}else{ed.unshift(ea)}}return ed};a7.prototype.convexDecomposition=function(ei,eb){if(ei==null){ei=false}if(aE.sharedPPoly==null){aE.sharedPPoly=new a()}var ea=aE.decompose(this.zpp_inner.vertices,aE.sharedPPoly);if(a.sharedPPList==null){a.sharedPPList=new bu()}var eh=ea.extract_partitions(a.sharedPPList);var ed=eb==null?new u():eb;while(eh.head!=null){var ef=eh.pop_unsafe();z.triangulate(ef);if(ei){z.optimise(ef)}an.optimise(ef);if(a.sharedGVList==null){a.sharedGVList=new dA()}var ec=ef.extract(a.sharedGVList);ef.next=a.zpp_pool;a.zpp_pool=ef;while(ec.head!=null){var ee=ec.pop_unsafe();var eg=a7.get();eg.zpp_inner.vertices=ee;if(ed.zpp_inner.reverse_flag){ed.push(eg)}else{ed.unshift(eg)}}}return ed};a7.prototype.triangularDecomposition=function(ei,eb){if(ei==null){ei=false}if(aE.sharedPPoly==null){aE.sharedPPoly=new a()}var ea=aE.decompose(this.zpp_inner.vertices,aE.sharedPPoly);if(a.sharedPPList==null){a.sharedPPList=new bu()}var eh=ea.extract_partitions(a.sharedPPList);var ed=eb==null?new u():eb;while(eh.head!=null){var ef=eh.pop_unsafe();z.triangulate(ef);if(ei){z.optimise(ef)}if(a.sharedGVList==null){a.sharedGVList=new dA()}var ec=ef.extract(a.sharedGVList);ef.next=a.zpp_pool;a.zpp_pool=ef;while(ec.head!=null){var ee=ec.pop_unsafe();var eg=a7.get();eg.zpp_inner.vertices=ee;if(ed.zpp_inner.reverse_flag){ed.push(eg)}else{ed.unshift(eg)}}}return ed};a7.prototype.inflate=function(eF){var ep=a7.get();var eB=this.winding();if(br.Winding_CLOCKWISE==null){br.internal=true;br.Winding_CLOCKWISE=new X();br.internal=false}if(eB==br.Winding_CLOCKWISE){eF=-eF}var ek=this.zpp_inner.vertices;var ej=this.zpp_inner.vertices;if(ek!=null){var eb=ek;while(true){var eC=eb;var el=eC.prev;var ec=eC.next;var ed=0;var ea=0;var ex=0;var ev=0;ed=eC.x-el.x;ea=eC.y-el.y;ex=ec.x-eC.x;ev=ec.y-eC.y;var eJ=0;var eI=0;var eE=0;var eD=0;eJ=ed;eI=ea;var ew=1/Math.sqrt(eJ*eJ+eI*eI);eJ*=ew;eI*=ew;var eA=eJ;eJ=-eI;eI=eA;var er=eF;eJ*=er;eI*=er;eE=ex;eD=ev;var es=1/Math.sqrt(eE*eE+eD*eD);eE*=es;eD*=es;var eq=eE;eE=-eD;eD=eq;var eo=eF;eE*=eo;eD*=eo;var eh=0;var ef=0;eh=eE-eJ;ef=eD-eI;var eH=ev*eh-ex*ef;var en=eH==0?0:eH/(ev*ed-ex*ea);var ei=0;var eg=0;ei=eC.x+eJ;eg=eC.y+eI;var em=en;ei+=ed*em;eg+=ea*em;var eu;if(au.poolVec2==null){eu=new r()}else{eu=au.poolVec2;au.poolVec2=eu.zpp_pool;eu.zpp_pool=null}if(eu.zpp_inner==null){var et;if(bB.zpp_pool==null){et=new bB()}else{et=bB.zpp_pool;bB.zpp_pool=et.next;et.next=null}et.weak=false;et._immutable=false;et.x=ei;et.y=eg;eu.zpp_inner=et;eu.zpp_inner.outer=eu}else{var eG;var ee=eu.zpp_inner;if(ee._validate!=null){ee._validate()}if(eu.zpp_inner.x==ei){var ez=eu.zpp_inner;if(ez._validate!=null){ez._validate()}eG=eu.zpp_inner.y==eg}else{eG=false}if(!eG){eu.zpp_inner.x=ei;eu.zpp_inner.y=eg;var ey=eu.zpp_inner;if(ey._invalidate!=null){ey._invalidate(ey)}}}eu.zpp_inner.weak=false;ep.push(eu);eb=eb.next;if(!(eb!=ej)){break}}}return ep.skipForward(1)};a7.prototype.cut=function(eh,ec,eb,eg,ee){if(eg==null){eg=false}if(eb==null){eb=false}var ef=az.run(this.zpp_inner.vertices,eh,ec,eb,eg,ee);if(eh.zpp_inner.weak){var ed=eh.zpp_inner;eh.zpp_inner.outer=null;eh.zpp_inner=null;eh.zpp_pool=au.poolVec2;au.poolVec2=eh;if(ed.outer!=null){ed.outer.zpp_inner=null;ed.outer=null}ed._isimmutable=null;ed._validate=null;ed._invalidate=null;ed.next=bB.zpp_pool;bB.zpp_pool=ed}if(ec.zpp_inner.weak){var ea=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}return ef};a7.prototype.transform=function(ec){var ee=this.zpp_inner.vertices;var ea=this.zpp_inner.vertices;if(ee!=null){var ef=ee;while(true){var eb=ef;var ed=ec.zpp_inner.a*eb.x+ec.zpp_inner.b*eb.y+ec.zpp_inner.tx;eb.y=ec.zpp_inner.c*eb.x+ec.zpp_inner.d*eb.y+ec.zpp_inner.ty;eb.x=ed;ef=ef.next;if(!(ef!=ea)){break}}}return this};a7.prototype.bounds=function(){var ec=1e+100;var eb=1e+100;var eh=-1e+100;var eg=-1e+100;var ee=this.zpp_inner.vertices;var ea=this.zpp_inner.vertices;if(ee!=null){var ef=ee;while(true){var ed=ef;if(ed.x<ec){ec=ed.x}if(ed.y<eb){eb=ed.y}if(ed.x>eh){eh=ed.x}if(ed.y>eg){eg=ed.y}ef=ef.next;if(!(ef!=ea)){break}}}return new S(ec,eb,eh-ec,eg-eb)};a7.prototype.top=function(){var eb=this.zpp_inner.vertices;var em=this.zpp_inner.vertices.next;var eh=this.zpp_inner.vertices;if(em!=null){var ea=em;while(true){var el=ea;if(el.y<eb.y){eb=el}ea=ea.next;if(!(ea!=eh)){break}}}if(eb.wrap==null){var ek=eb.x;var ej=eb.y;var ef;if(au.poolVec2==null){ef=new r()}else{ef=au.poolVec2;au.poolVec2=ef.zpp_pool;ef.zpp_pool=null}if(ef.zpp_inner==null){var ei;if(bB.zpp_pool==null){ei=new bB()}else{ei=bB.zpp_pool;bB.zpp_pool=ei.next;ei.next=null}ei.weak=false;ei._immutable=false;ei.x=ek;ei.y=ej;ef.zpp_inner=ei;ef.zpp_inner.outer=ef}else{var ec;var ed=ef.zpp_inner;if(ed._validate!=null){ed._validate()}if(ef.zpp_inner.x==ek){var eg=ef.zpp_inner;if(eg._validate!=null){eg._validate()}ec=ef.zpp_inner.y==ej}else{ec=false}if(!ec){ef.zpp_inner.x=ek;ef.zpp_inner.y=ej;var ee=ef.zpp_inner;if(ee._invalidate!=null){ee._invalidate(ee)}}}ef.zpp_inner.weak=false;eb.wrap=ef;eb.wrap.zpp_inner._inuse=true;eb.wrap.zpp_inner._invalidate=dX(eb,eb.modwrap);eb.wrap.zpp_inner._validate=dX(eb,eb.getwrap)}return eb.wrap};a7.prototype.bottom=function(){var ej=this.zpp_inner.vertices;var em=this.zpp_inner.vertices.next;var eg=this.zpp_inner.vertices;if(em!=null){var ea=em;while(true){var el=ea;if(el.y>ej.y){ej=el}ea=ea.next;if(!(ea!=eg)){break}}}if(ej.wrap==null){var ek=ej.x;var ei=ej.y;var ee;if(au.poolVec2==null){ee=new r()}else{ee=au.poolVec2;au.poolVec2=ee.zpp_pool;ee.zpp_pool=null}if(ee.zpp_inner==null){var eh;if(bB.zpp_pool==null){eh=new bB()}else{eh=bB.zpp_pool;bB.zpp_pool=eh.next;eh.next=null}eh.weak=false;eh._immutable=false;eh.x=ek;eh.y=ei;ee.zpp_inner=eh;ee.zpp_inner.outer=ee}else{var eb;var ec=ee.zpp_inner;if(ec._validate!=null){ec._validate()}if(ee.zpp_inner.x==ek){var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}eb=ee.zpp_inner.y==ei}else{eb=false}if(!eb){ee.zpp_inner.x=ek;ee.zpp_inner.y=ei;var ed=ee.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}ee.zpp_inner.weak=false;ej.wrap=ee;ej.wrap.zpp_inner._inuse=true;ej.wrap.zpp_inner._invalidate=dX(ej,ej.modwrap);ej.wrap.zpp_inner._validate=dX(ej,ej.getwrap)}return ej.wrap};a7.prototype.left=function(){var eb=this.zpp_inner.vertices;var em=this.zpp_inner.vertices.next;var eh=this.zpp_inner.vertices;if(em!=null){var ea=em;while(true){var el=ea;if(el.x<eb.x){eb=el}ea=ea.next;if(!(ea!=eh)){break}}}if(eb.wrap==null){var ek=eb.x;var ej=eb.y;var ef;if(au.poolVec2==null){ef=new r()}else{ef=au.poolVec2;au.poolVec2=ef.zpp_pool;ef.zpp_pool=null}if(ef.zpp_inner==null){var ei;if(bB.zpp_pool==null){ei=new bB()}else{ei=bB.zpp_pool;bB.zpp_pool=ei.next;ei.next=null}ei.weak=false;ei._immutable=false;ei.x=ek;ei.y=ej;ef.zpp_inner=ei;ef.zpp_inner.outer=ef}else{var ec;var ed=ef.zpp_inner;if(ed._validate!=null){ed._validate()}if(ef.zpp_inner.x==ek){var eg=ef.zpp_inner;if(eg._validate!=null){eg._validate()}ec=ef.zpp_inner.y==ej}else{ec=false}if(!ec){ef.zpp_inner.x=ek;ef.zpp_inner.y=ej;var ee=ef.zpp_inner;if(ee._invalidate!=null){ee._invalidate(ee)}}}ef.zpp_inner.weak=false;eb.wrap=ef;eb.wrap.zpp_inner._inuse=true;eb.wrap.zpp_inner._invalidate=dX(eb,eb.modwrap);eb.wrap.zpp_inner._validate=dX(eb,eb.getwrap)}return eb.wrap};a7.prototype.right=function(){var ej=this.zpp_inner.vertices;var em=this.zpp_inner.vertices.next;var eg=this.zpp_inner.vertices;if(em!=null){var ea=em;while(true){var el=ea;if(el.x>ej.x){ej=el}ea=ea.next;if(!(ea!=eg)){break}}}if(ej.wrap==null){var ek=ej.x;var ei=ej.y;var ee;if(au.poolVec2==null){ee=new r()}else{ee=au.poolVec2;au.poolVec2=ee.zpp_pool;ee.zpp_pool=null}if(ee.zpp_inner==null){var eh;if(bB.zpp_pool==null){eh=new bB()}else{eh=bB.zpp_pool;bB.zpp_pool=eh.next;eh.next=null}eh.weak=false;eh._immutable=false;eh.x=ek;eh.y=ei;ee.zpp_inner=eh;ee.zpp_inner.outer=ee}else{var eb;var ec=ee.zpp_inner;if(ec._validate!=null){ec._validate()}if(ee.zpp_inner.x==ek){var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}eb=ee.zpp_inner.y==ei}else{eb=false}if(!eb){ee.zpp_inner.x=ek;ee.zpp_inner.y=ei;var ed=ee.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}ee.zpp_inner.weak=false;ej.wrap=ee;ej.wrap.zpp_inner._inuse=true;ej.wrap.zpp_inner._invalidate=dX(ej,ej.modwrap);ej.wrap.zpp_inner._validate=dX(ej,ej.getwrap)}return ej.wrap};a7.prototype.__class__=a7;var bL=nape.geom.GeomPolyIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};bL.__name__=["nape","geom","GeomPolyIterator"];bL.get=function(ec){var ea;if(bL.zpp_pool==null){dl.internal=true;var ed=new bL();dl.internal=false;ea=ed}else{var eb=bL.zpp_pool;bL.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};bL.prototype.zpp_inner=null;bL.prototype.zpp_i=null;bL.prototype.zpp_critical=null;bL.prototype.zpp_next=null;bL.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=bL.zpp_pool;bL.zpp_pool=this;this.zpp_inner=null;return false}};bL.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};bL.prototype.__class__=bL;var u=nape.geom.GeomPolyList=function(){this.zpp_inner=null;this.zpp_inner=new dl();this.zpp_inner.outer=this};u.__name__=["nape","geom","GeomPolyList"];u.fromArray=function(ed){var ea=new u();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};u.prototype.zpp_inner=null;u.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};u.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};u.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer};u.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};u.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};u.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer};u.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer};u.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};u.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};u.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};u.prototype.empty=function(){return this.zpp_inner.inner.head==null};u.prototype.iterator=function(){this.zpp_inner.valmod();return bL.get(this)};u.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new u();this.zpp_inner.valmod();var ef=bL.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=bL.zpp_pool;bL.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};u.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=bL.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=bL.zpp_pool;bL.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};u.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=bL.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=bL.zpp_pool;bL.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};u.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=bL.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=bL.zpp_pool;bL.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=bL.zpp_pool;bL.zpp_pool=ec;ec.zpp_inner=null;break}}return this};u.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(u.prototype,"length",{get:u.prototype.get_length});u.prototype.__class__=u;var cz=nape.geom.GeomVertexIterator=function(){};cz.__name__=["nape","geom","GeomVertexIterator"];cz.prototype.zpp_inner=null;cz.prototype.hasNext=function(){var ea=this.zpp_inner.ptr!=this.zpp_inner.start||this.zpp_inner.first;this.zpp_inner.first=false;if(!ea){var eb=this.zpp_inner;eb.outer.zpp_inner=null;eb.ptr=eb.start=null;eb.next=dn.zpp_pool;dn.zpp_pool=eb}return ea};cz.prototype.next=function(){var ec=this.zpp_inner.ptr;if(ec.wrap==null){var ej=ec.x;var eh=ec.y;var ee;if(au.poolVec2==null){ee=new r()}else{ee=au.poolVec2;au.poolVec2=ee.zpp_pool;ee.zpp_pool=null}if(ee.zpp_inner==null){var ei;if(bB.zpp_pool==null){ei=new bB()}else{ei=bB.zpp_pool;bB.zpp_pool=ei.next;ei.next=null}ei.weak=false;ei._immutable=false;ei.x=ej;ei.y=eh;ee.zpp_inner=ei;ee.zpp_inner.outer=ee}else{var ea;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ej){var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}ea=ee.zpp_inner.y==eh}else{ea=false}if(!ea){ee.zpp_inner.x=ej;ee.zpp_inner.y=eh;var eb=ee.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}}ee.zpp_inner.weak=false;ec.wrap=ee;ec.wrap.zpp_inner._inuse=true;ec.wrap.zpp_inner._invalidate=dX(ec,ec.modwrap);ec.wrap.zpp_inner._validate=dX(ec,ec.getwrap)}var eg=ec.wrap;this.zpp_inner.ptr=this.zpp_inner.forward?this.zpp_inner.ptr.next:this.zpp_inner.ptr.prev;return eg};cz.prototype.__class__=cz;var F=nape.geom.MarchingSquares=function(){};F.__name__=["nape","geom","MarchingSquares"];F.run=function(ec,ep,eh,ed,eo,eD,ej){if(eD==null){eD=true}if(ed==null){ed=2}var en=ej!=null?ej:new u();if(eo==null){var eb=ep.zpp_inner;if(eb._validate!=null){eb._validate()}var eE=ep.zpp_inner.minx;var eC=ep.zpp_inner;if(eC._validate!=null){eC._validate()}var eZ=ep.zpp_inner.miny;var eB=ep.zpp_inner.getmax();var eA=eB.zpp_inner;if(eA._validate!=null){eA._validate()}var eY=eB.zpp_inner.x;var ez=ep.zpp_inner.getmax();var ex=ez.zpp_inner;if(ex._validate!=null){ex._validate()}bc.run(ec,eE,eZ,eY,ez.zpp_inner.y,eh,ed,eD,en)}else{var ew=ep.zpp_inner;if(ew._validate!=null){ew._validate()}var eu=ep.zpp_inner;var eV=eu.maxx-eu.minx;var et=eo.zpp_inner;if(et._validate!=null){et._validate()}var eq=eV/eo.zpp_inner.x;var es=ep.zpp_inner;if(es._validate!=null){es._validate()}var eX=ep.zpp_inner;var eT=eX.maxy-eX.miny;var eU=eo.zpp_inner;if(eU._validate!=null){eU._validate()}var eg=eT/eo.zpp_inner.y;var er=eq|0;var ei=eg|0;if(er!=eq){++er}if(ei!=eg){++ei}var eN=0;var eW=er;while(eN<eW){var ey=eN++;var eS=ep.zpp_inner;if(eS._validate!=null){eS._validate()}var eR=ep.zpp_inner.minx;var eQ=eo.zpp_inner;if(eQ._validate!=null){eQ._validate()}var ef=eR+eo.zpp_inner.x*ey;var ee;if(ey==er-1){var eP=ep.zpp_inner.getmax();var eM=eP.zpp_inner;if(eM._validate!=null){eM._validate()}ee=eP.zpp_inner.x}else{var eL=eo.zpp_inner;if(eL._validate!=null){eL._validate()}ee=ef+eo.zpp_inner.x}var eJ=0;var eK=ei;while(eJ<eK){var ev=eJ++;var eI=ep.zpp_inner;if(eI._validate!=null){eI._validate()}var eO=ep.zpp_inner.miny;var eH=eo.zpp_inner;if(eH._validate!=null){eH._validate()}var ea=eO+eo.zpp_inner.y*ev;var e0;if(ev==ei-1){var eG=ep.zpp_inner.getmax();var em=eG.zpp_inner;if(em._validate!=null){em._validate()}e0=eG.zpp_inner.y}else{var el=eo.zpp_inner;if(el._validate!=null){el._validate()}e0=ea+eo.zpp_inner.y}bc.run(ec,ef,ea,ee,e0,eh,ed,eD,en)}}}if(eh.zpp_inner.weak){var ek=eh.zpp_inner;eh.zpp_inner.outer=null;eh.zpp_inner=null;eh.zpp_pool=au.poolVec2;au.poolVec2=eh;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(eo!=null){if(eo.zpp_inner.weak){var eF=eo.zpp_inner;eo.zpp_inner.outer=null;eo.zpp_inner=null;eo.zpp_pool=au.poolVec2;au.poolVec2=eo;if(eF.outer!=null){eF.outer.zpp_inner=null;eF.outer=null}eF._isimmutable=null;eF._validate=null;eF._invalidate=null;eF.next=bB.zpp_pool;bB.zpp_pool=eF}}return en};F.prototype.__class__=F;var cI=nape.geom.Mat23=function(el,ek,ej,eh,eb,ea){if(ea==null){ea=0}if(eb==null){eb=0}if(eh==null){eh=1}if(ej==null){ej=0}if(ek==null){ek=0}if(el==null){el=1}this.zpp_inner=null;this.zpp_inner=cm.get();this.zpp_inner.outer=this;this.zpp_inner.a=el;var ef=this.zpp_inner;if(ef._invalidate!=null){ef._invalidate()}this.zpp_inner.b=ek;var ei=this.zpp_inner;if(ei._invalidate!=null){ei._invalidate()}this.zpp_inner.tx=eb;var eg=this.zpp_inner;if(eg._invalidate!=null){eg._invalidate()}this.zpp_inner.c=ej;var ee=this.zpp_inner;if(ee._invalidate!=null){ee._invalidate()}this.zpp_inner.d=eh;var ed=this.zpp_inner;if(ed._invalidate!=null){ed._invalidate()}this.zpp_inner.ty=ea;var ec=this.zpp_inner;if(ec._invalidate!=null){ec._invalidate()}};cI.__name__=["nape","geom","Mat23"];cI.rotation=function(ec){var eb=Math.cos(ec);var ea=Math.sin(ec);return new cI(eb,-ea,ea,eb,0,0)};cI.translation=function(eb,ea){return new cI(1,0,0,1,eb,ea)};cI.scale=function(eb,ea){return new cI(eb,0,0,ea,0,0)};cI.prototype.zpp_inner=null;cI.prototype.get_a=function(){return this.zpp_inner.a};cI.prototype.set_a=function(ea){this.zpp_inner.a=ea;var eb=this.zpp_inner;if(eb._invalidate!=null){eb._invalidate()}return this.zpp_inner.a};cI.prototype.get_b=function(){return this.zpp_inner.b};cI.prototype.set_b=function(ea){this.zpp_inner.b=ea;var eb=this.zpp_inner;if(eb._invalidate!=null){eb._invalidate()}return this.zpp_inner.b};cI.prototype.get_c=function(){return this.zpp_inner.c};cI.prototype.set_c=function(eb){this.zpp_inner.c=eb;var ea=this.zpp_inner;if(ea._invalidate!=null){ea._invalidate()}return this.zpp_inner.c};cI.prototype.get_d=function(){return this.zpp_inner.d};cI.prototype.set_d=function(ea){this.zpp_inner.d=ea;var eb=this.zpp_inner;if(eb._invalidate!=null){eb._invalidate()}return this.zpp_inner.d};cI.prototype.get_tx=function(){return this.zpp_inner.tx};cI.prototype.set_tx=function(ea){this.zpp_inner.tx=ea;var eb=this.zpp_inner;if(eb._invalidate!=null){eb._invalidate()}return this.zpp_inner.tx};cI.prototype.get_ty=function(){return this.zpp_inner.ty};cI.prototype.set_ty=function(ea){this.zpp_inner.ty=ea;var eb=this.zpp_inner;if(eb._invalidate!=null){eb._invalidate()}return this.zpp_inner.ty};cI.prototype.copy=function(){return new cI(this.zpp_inner.a,this.zpp_inner.b,this.zpp_inner.c,this.zpp_inner.d,this.zpp_inner.tx,this.zpp_inner.ty)};cI.prototype.set=function(eb){var ea=eb.zpp_inner;this.zpp_inner.setas(ea.a,ea.b,ea.c,ea.d,ea.tx,ea.ty);var ec=this.zpp_inner;if(ec._invalidate!=null){ec._invalidate()}return this};cI.prototype.setAs=function(ed,eb,eg,ee,ec,ea){if(ea==null){ea=0}if(ec==null){ec=0}if(ee==null){ee=1}if(eg==null){eg=0}if(eb==null){eb=0}if(ed==null){ed=1}this.zpp_inner.setas(ed,eb,eg,ee,ec,ea);var ef=this.zpp_inner;if(ef._invalidate!=null){ef._invalidate()}return this};cI.prototype.reset=function(){return this.setAs()};cI.prototype.get_determinant=function(){return this.zpp_inner.a*this.zpp_inner.d-this.zpp_inner.b*this.zpp_inner.c};cI.prototype.singular=function(){var eb=this.zpp_inner.a*this.zpp_inner.a+this.zpp_inner.b*this.zpp_inner.b+this.zpp_inner.c*this.zpp_inner.c+this.zpp_inner.d*this.zpp_inner.d;var ea=this.zpp_inner.a*this.zpp_inner.d-this.zpp_inner.b*this.zpp_inner.c;if(ea<0){ea=-ea}return eb>P.illConditionedThreshold*ea};cI.prototype.inverse=function(){var ea=1/(this.zpp_inner.a*this.zpp_inner.d-this.zpp_inner.b*this.zpp_inner.c);return new cI(this.zpp_inner.d*ea,-this.zpp_inner.b*ea,-this.zpp_inner.c*ea,this.zpp_inner.a*ea,(this.zpp_inner.b*this.zpp_inner.ty-this.zpp_inner.d*this.zpp_inner.tx)*ea,(this.zpp_inner.c*this.zpp_inner.tx-this.zpp_inner.a*this.zpp_inner.ty)*ea)};cI.prototype.transpose=function(){return new cI(this.zpp_inner.a,this.zpp_inner.c,this.zpp_inner.b,this.zpp_inner.d,-this.zpp_inner.a*this.zpp_inner.tx-this.zpp_inner.c*this.zpp_inner.ty,-this.zpp_inner.b*this.zpp_inner.tx-this.zpp_inner.d*this.zpp_inner.ty)};cI.prototype.concat=function(ea){return new cI(ea.zpp_inner.a*this.zpp_inner.a+ea.zpp_inner.b*this.zpp_inner.c,ea.zpp_inner.a*this.zpp_inner.b+ea.zpp_inner.b*this.zpp_inner.d,ea.zpp_inner.c*this.zpp_inner.a+ea.zpp_inner.d*this.zpp_inner.c,ea.zpp_inner.c*this.zpp_inner.b+ea.zpp_inner.d*this.zpp_inner.d,ea.zpp_inner.a*this.zpp_inner.tx+ea.zpp_inner.b*this.zpp_inner.ty+ea.zpp_inner.tx,ea.zpp_inner.c*this.zpp_inner.tx+ea.zpp_inner.d*this.zpp_inner.ty+ea.zpp_inner.ty)};cI.prototype.transform=function(eu,el,ef){if(ef==null){ef=false}if(el==null){el=false}var eG;if(el){var ex=eu.zpp_inner;if(ex._validate!=null){ex._validate()}var eE=eu.zpp_inner.x*this.zpp_inner.a;var eD=eu.zpp_inner;if(eD._validate!=null){eD._validate()}var eh=eE+eu.zpp_inner.y*this.zpp_inner.b;var eC=eu.zpp_inner;if(eC._validate!=null){eC._validate()}var ep=eu.zpp_inner.x*this.zpp_inner.c;var eA=eu.zpp_inner;if(eA._validate!=null){eA._validate()}var eg=ep+eu.zpp_inner.y*this.zpp_inner.d;var ee;if(au.poolVec2==null){ee=new r()}else{ee=au.poolVec2;au.poolVec2=ee.zpp_pool;ee.zpp_pool=null}if(ee.zpp_inner==null){var ed;if(bB.zpp_pool==null){ed=new bB()}else{ed=bB.zpp_pool;bB.zpp_pool=ed.next;ed.next=null}ed.weak=false;ed._immutable=false;ed.x=eh;ed.y=eg;ee.zpp_inner=ed;ee.zpp_inner.outer=ee}else{var em;var ez=ee.zpp_inner;if(ez._validate!=null){ez._validate()}if(ee.zpp_inner.x==eh){var ey=ee.zpp_inner;if(ey._validate!=null){ey._validate()}em=ee.zpp_inner.y==eg}else{em=false}if(!em){ee.zpp_inner.x=eh;ee.zpp_inner.y=eg;var ew=ee.zpp_inner;if(ew._invalidate!=null){ew._invalidate(ew)}}}ee.zpp_inner.weak=ef;eG=ee}else{var et=eu.zpp_inner;if(et._validate!=null){et._validate()}var ek=eu.zpp_inner.x*this.zpp_inner.a;var er=eu.zpp_inner;if(er._validate!=null){er._validate()}var eB=ek+eu.zpp_inner.y*this.zpp_inner.b+this.zpp_inner.tx;var eo=eu.zpp_inner;if(eo._validate!=null){eo._validate()}var ej=eu.zpp_inner.x*this.zpp_inner.c;var ev=eu.zpp_inner;if(ev._validate!=null){ev._validate()}var ea=ej+eu.zpp_inner.y*this.zpp_inner.d+this.zpp_inner.ty;var ec;if(au.poolVec2==null){ec=new r()}else{ec=au.poolVec2;au.poolVec2=ec.zpp_pool;ec.zpp_pool=null}if(ec.zpp_inner==null){var eb;if(bB.zpp_pool==null){eb=new bB()}else{eb=bB.zpp_pool;bB.zpp_pool=eb.next;eb.next=null}eb.weak=false;eb._immutable=false;eb.x=eB;eb.y=ea;ec.zpp_inner=eb;ec.zpp_inner.outer=ec}else{var ei;var es=ec.zpp_inner;if(es._validate!=null){es._validate()}if(ec.zpp_inner.x==eB){var eq=ec.zpp_inner;if(eq._validate!=null){eq._validate()}ei=ec.zpp_inner.y==ea}else{ei=false}if(!ei){ec.zpp_inner.x=eB;ec.zpp_inner.y=ea;var en=ec.zpp_inner;if(en._invalidate!=null){en._invalidate(en)}}}ec.zpp_inner.weak=ef;eG=ec}if(eu.zpp_inner.weak){var eF=eu.zpp_inner;eu.zpp_inner.outer=null;eu.zpp_inner=null;eu.zpp_pool=au.poolVec2;au.poolVec2=eu;if(eF.outer!=null){eF.outer.zpp_inner=null;eF.outer=null}eF._isimmutable=null;eF._validate=null;eF._invalidate=null;eF.next=bB.zpp_pool;bB.zpp_pool=eF}return eG};cI.prototype.inverseTransform=function(es,el,ef){if(ef==null){ef=false}if(el==null){el=false}var eC=1/(this.zpp_inner.a*this.zpp_inner.d-this.zpp_inner.b*this.zpp_inner.c);var eF;if(el){var ev=es.zpp_inner;if(ev._validate!=null){ev._validate()}var eD=es.zpp_inner.x*this.zpp_inner.d;var eB=es.zpp_inner;if(eB._validate!=null){eB._validate()}var eh=(eD-es.zpp_inner.y*this.zpp_inner.b)*eC;var eA=es.zpp_inner;if(eA._validate!=null){eA._validate()}var eo=es.zpp_inner.y*this.zpp_inner.a;var ey=es.zpp_inner;if(ey._validate!=null){ey._validate()}var eg=(eo-es.zpp_inner.x*this.zpp_inner.c)*eC;var ee;if(au.poolVec2==null){ee=new r()}else{ee=au.poolVec2;au.poolVec2=ee.zpp_pool;ee.zpp_pool=null}if(ee.zpp_inner==null){var ed;if(bB.zpp_pool==null){ed=new bB()}else{ed=bB.zpp_pool;bB.zpp_pool=ed.next;ed.next=null}ed.weak=false;ed._immutable=false;ed.x=eh;ed.y=eg;ee.zpp_inner=ed;ee.zpp_inner.outer=ee}else{var em;var ex=ee.zpp_inner;if(ex._validate!=null){ex._validate()}if(ee.zpp_inner.x==eh){var ew=ee.zpp_inner;if(ew._validate!=null){ew._validate()}em=ee.zpp_inner.y==eg}else{em=false}if(!em){ee.zpp_inner.x=eh;ee.zpp_inner.y=eg;var eu=ee.zpp_inner;if(eu._invalidate!=null){eu._invalidate(eu)}}}ee.zpp_inner.weak=ef;eF=ee}else{var er=es.zpp_inner;if(er._validate!=null){er._validate()}var ej=es.zpp_inner.x-this.zpp_inner.tx;var ep=es.zpp_inner;if(ep._validate!=null){ep._validate()}var ei=es.zpp_inner.y-this.zpp_inner.ty;var ez=(ej*this.zpp_inner.d-ei*this.zpp_inner.b)*eC;var ea=(ei*this.zpp_inner.a-ej*this.zpp_inner.c)*eC;var ec;if(au.poolVec2==null){ec=new r()}else{ec=au.poolVec2;au.poolVec2=ec.zpp_pool;ec.zpp_pool=null}if(ec.zpp_inner==null){var eb;if(bB.zpp_pool==null){eb=new bB()}else{eb=bB.zpp_pool;bB.zpp_pool=eb.next;eb.next=null}eb.weak=false;eb._immutable=false;eb.x=ez;eb.y=ea;ec.zpp_inner=eb;ec.zpp_inner.outer=ec}else{var ek;var en=ec.zpp_inner;if(en._validate!=null){en._validate()}if(ec.zpp_inner.x==ez){var et=ec.zpp_inner;if(et._validate!=null){et._validate()}ek=ec.zpp_inner.y==ea}else{ek=false}if(!ek){ec.zpp_inner.x=ez;ec.zpp_inner.y=ea;var eq=ec.zpp_inner;if(eq._invalidate!=null){eq._invalidate(eq)}}}ec.zpp_inner.weak=ef;eF=ec}if(es.zpp_inner.weak){var eE=es.zpp_inner;es.zpp_inner.outer=null;es.zpp_inner=null;es.zpp_pool=au.poolVec2;au.poolVec2=es;if(eE.outer!=null){eE.outer.zpp_inner=null;eE.outer=null}eE._isimmutable=null;eE._validate=null;eE._invalidate=null;eE.next=bB.zpp_pool;bB.zpp_pool=eE}return eF};cI.prototype.toString=function(){return"{ a: "+this.zpp_inner.a+" b: "+this.zpp_inner.b+" c: "+this.zpp_inner.c+" d: "+this.zpp_inner.d+" tx: "+this.zpp_inner.tx+" ty: "+this.zpp_inner.ty+" }"};cI.prototype.equiorthogonal=function(){if(this.singular()){return false}else{var ea=this.zpp_inner.a*this.zpp_inner.b+this.zpp_inner.c*this.zpp_inner.d;if(ea*ea<P.epsilon){var eb=this.zpp_inner.a*this.zpp_inner.a+this.zpp_inner.b*this.zpp_inner.b-this.zpp_inner.c*this.zpp_inner.c-this.zpp_inner.d*this.zpp_inner.d;return eb*eb<P.epsilon}else{return false}}};cI.prototype.orthogonal=function(){var ea=this.zpp_inner.a*this.zpp_inner.b+this.zpp_inner.c*this.zpp_inner.d;if(ea*ea<P.epsilon){var ec=this.zpp_inner.a*this.zpp_inner.a+this.zpp_inner.b*this.zpp_inner.b-1;var eb=this.zpp_inner.c*this.zpp_inner.c+this.zpp_inner.d*this.zpp_inner.d-1;if(ec*ec<P.epsilon){return eb*eb<P.epsilon}else{return false}}else{return false}};cI.prototype.equiorthogonalise=function(){if(!this.equiorthogonal()){var ef=Math.sqrt(this.zpp_inner.a*this.zpp_inner.a+this.zpp_inner.c*this.zpp_inner.c);var ee=Math.sqrt(this.zpp_inner.b*this.zpp_inner.b+this.zpp_inner.d*this.zpp_inner.d);var en=(ef+ee)/2;ef=en/ef;ee=en/ee;var ec=this;ec.zpp_inner.a=ec.zpp_inner.a*ef;var em=ec.zpp_inner;if(em._invalidate!=null){em._invalidate()}var ei=this;ei.zpp_inner.c=ei.zpp_inner.c*ef;var es=ei.zpp_inner;if(es._invalidate!=null){es._invalidate()}var eh=this;eh.zpp_inner.b=eh.zpp_inner.b*ee;var er=eh.zpp_inner;if(er._invalidate!=null){er._invalidate()}var eg=this;eg.zpp_inner.d=eg.zpp_inner.d*ee;var eq=eg.zpp_inner;if(eq._invalidate!=null){eq._invalidate()}var et=0.25*Math.PI-0.5*Math.acos((this.zpp_inner.a*this.zpp_inner.b+this.zpp_inner.c*this.zpp_inner.d)/(en*en));if(this.zpp_inner.a*this.zpp_inner.d-this.zpp_inner.b*this.zpp_inner.c>0){et=-et}var ea=Math.sin(et);var eb=Math.cos(et);var eu=this.zpp_inner.a*eb-this.zpp_inner.c*ea;var ed=this.zpp_inner.b*eb+this.zpp_inner.d*ea;this.zpp_inner.c=this.zpp_inner.c*eb+this.zpp_inner.a*ea;var ep=this.zpp_inner;if(ep._invalidate!=null){ep._invalidate()}this.zpp_inner.a=eu;var eo=this.zpp_inner;if(eo._invalidate!=null){eo._invalidate()}this.zpp_inner.d=this.zpp_inner.d*eb-this.zpp_inner.b*ea;var el=this.zpp_inner;if(el._invalidate!=null){el._invalidate()}this.zpp_inner.b=ed;var ek=this.zpp_inner;if(ek._invalidate!=null){ek._invalidate()}var ej=this.zpp_inner;if(ej._invalidate!=null){ej._invalidate()}}return this};cI.prototype.orthogonalise=function(){if(!this.orthogonal()){var ef=Math.sqrt(this.zpp_inner.a*this.zpp_inner.a+this.zpp_inner.c*this.zpp_inner.c);var ee=Math.sqrt(this.zpp_inner.b*this.zpp_inner.b+this.zpp_inner.d*this.zpp_inner.d);ef=1/ef;ee=1/ee;var ec=this;ec.zpp_inner.a=ec.zpp_inner.a*ef;var em=ec.zpp_inner;if(em._invalidate!=null){em._invalidate()}var ei=this;ei.zpp_inner.c=ei.zpp_inner.c*ef;var er=ei.zpp_inner;if(er._invalidate!=null){er._invalidate()}var eh=this;eh.zpp_inner.b=eh.zpp_inner.b*ee;var eq=eh.zpp_inner;if(eq._invalidate!=null){eq._invalidate()}var eg=this;eg.zpp_inner.d=eg.zpp_inner.d*ee;var ep=eg.zpp_inner;if(ep._invalidate!=null){ep._invalidate()}var es=0.25*Math.PI-0.5*Math.acos((this.zpp_inner.a*this.zpp_inner.b+this.zpp_inner.c*this.zpp_inner.d)/1);if(this.zpp_inner.a*this.zpp_inner.d-this.zpp_inner.b*this.zpp_inner.c>0){es=-es}var ea=Math.sin(es);var eb=Math.cos(es);var et=this.zpp_inner.a*eb-this.zpp_inner.c*ea;var ed=this.zpp_inner.b*eb+this.zpp_inner.d*ea;this.zpp_inner.c=this.zpp_inner.c*eb+this.zpp_inner.a*ea;var eo=this.zpp_inner;if(eo._invalidate!=null){eo._invalidate()}this.zpp_inner.a=et;var en=this.zpp_inner;if(en._invalidate!=null){en._invalidate()}this.zpp_inner.d=this.zpp_inner.d*eb-this.zpp_inner.b*ea;var el=this.zpp_inner;if(el._invalidate!=null){el._invalidate()}this.zpp_inner.b=ed;var ek=this.zpp_inner;if(ek._invalidate!=null){ek._invalidate()}var ej=this.zpp_inner;if(ej._invalidate!=null){ej._invalidate()}}return this};Object.defineProperty(cI.prototype,"a",{get:cI.prototype.get_a,set:cI.prototype.set_a});Object.defineProperty(cI.prototype,"b",{get:cI.prototype.get_b,set:cI.prototype.set_b});Object.defineProperty(cI.prototype,"c",{get:cI.prototype.get_c,set:cI.prototype.set_c});Object.defineProperty(cI.prototype,"d",{get:cI.prototype.get_d,set:cI.prototype.set_d});Object.defineProperty(cI.prototype,"tx",{get:cI.prototype.get_tx,set:cI.prototype.set_tx});Object.defineProperty(cI.prototype,"ty",{get:cI.prototype.get_ty,set:cI.prototype.set_ty});Object.defineProperty(cI.prototype,"determinant",{get:cI.prototype.get_determinant});cI.prototype.__class__=cI;var bY=nape.geom.MatMN=function(ea,eb){this.zpp_inner=null;this.zpp_inner=new bI(ea,eb);this.zpp_inner.outer=this};bY.__name__=["nape","geom","MatMN"];bY.prototype.zpp_inner=null;bY.prototype.get_rows=function(){return this.zpp_inner.m};bY.prototype.get_cols=function(){return this.zpp_inner.n};bY.prototype.x=function(eb,ea){return this.zpp_inner.x[eb*this.zpp_inner.n+ea]};bY.prototype.setx=function(ec,eb,ea){return this.zpp_inner.x[ec*this.zpp_inner.n+eb]=ea};bY.prototype.toString=function(){var eb="{ ";var ea=true;var ef=0;var eg=this.zpp_inner.m;while(ef<eg){var ec=ef++;if(!ea){eb+="; "}ea=false;var ed=0;var ee=this.zpp_inner.n;while(ed<ee){eb+=this.zpp_inner.x[ec*this.zpp_inner.n+ed++]+" "}}eb+="}";return eb};bY.prototype.transpose=function(){var eb=new bY(this.zpp_inner.n,this.zpp_inner.m);var ef=0;var eg=this.zpp_inner.m;while(ef<eg){var ec=ef++;var ed=0;var ee=this.zpp_inner.n;while(ed<ee){var ea=ed++;eb.zpp_inner.x[ea*eb.zpp_inner.n+ec]=this.zpp_inner.x[ec*this.zpp_inner.n+ea]}}return eb};bY.prototype.mul=function(ek){var eh=new bY(this.zpp_inner.m,ek.zpp_inner.n);var ej=0;var ed=this.zpp_inner.m;while(ej<ed){var ec=ej++;var eg=0;var ei=ek.zpp_inner.n;while(eg<ei){var eb=eg++;var el=0;var ee=0;var ef=this.zpp_inner.n;while(ee<ef){var ea=ee++;el+=this.zpp_inner.x[ec*this.zpp_inner.n+ea]*ek.zpp_inner.x[ea*ek.zpp_inner.n+eb]}eh.zpp_inner.x[ec*eh.zpp_inner.n+eb]=el}}return eh};Object.defineProperty(bY.prototype,"rows",{get:bY.prototype.get_rows});Object.defineProperty(bY.prototype,"cols",{get:bY.prototype.get_cols});bY.prototype.__class__=bY;var ad=nape.geom.Ray=function(ev,et){this.zpp_inner=null;this.zpp_inner=new bf();var ej=this.zpp_inner.origin;var er=ev.zpp_inner;if(er._validate!=null){er._validate()}var ec=ev.zpp_inner.x;var ep=ev.zpp_inner;if(ep._validate!=null){ep._validate()}var eb=ev.zpp_inner.y;var es;var eo=ej.zpp_inner;if(eo._validate!=null){eo._validate()}if(ej.zpp_inner.x==ec){var en=ej.zpp_inner;if(en._validate!=null){en._validate()}es=ej.zpp_inner.y==eb}else{es=false}if(!es){ej.zpp_inner.x=ec;ej.zpp_inner.y=eb;var em=ej.zpp_inner;if(em._invalidate!=null){em._invalidate(em)}}if(ev.zpp_inner.weak){var eu=ev.zpp_inner;ev.zpp_inner.outer=null;ev.zpp_inner=null;ev.zpp_pool=au.poolVec2;au.poolVec2=ev;if(eu.outer!=null){eu.outer.zpp_inner=null;eu.outer=null}eu._isimmutable=null;eu._validate=null;eu._invalidate=null;eu.next=bB.zpp_pool;bB.zpp_pool=eu}var ek=this.zpp_inner.direction;var eh=et.zpp_inner;if(eh._validate!=null){eh._validate()}var eq=et.zpp_inner.x;var ef=et.zpp_inner;if(ef._validate!=null){ef._validate()}var ea=et.zpp_inner.y;var ee;var ed=ek.zpp_inner;if(ed._validate!=null){ed._validate()}if(ek.zpp_inner.x==eq){var ei=ek.zpp_inner;if(ei._validate!=null){ei._validate()}ee=ek.zpp_inner.y==ea}else{ee=false}if(!ee){ek.zpp_inner.x=eq;ek.zpp_inner.y=ea;var eg=ek.zpp_inner;if(eg._invalidate!=null){eg._invalidate(eg)}}if(et.zpp_inner.weak){var el=et.zpp_inner;et.zpp_inner.outer=null;et.zpp_inner=null;et.zpp_pool=au.poolVec2;au.poolVec2=et;if(el.outer!=null){el.outer.zpp_inner=null;el.outer=null}el._isimmutable=null;el._validate=null;el._invalidate=null;el.next=bB.zpp_pool;bB.zpp_pool=el}this.zpp_inner.zip_dir=true;this.zpp_inner.maxdist=Infinity};ad.__name__=["nape","geom","Ray"];ad.fromSegment=function(ec,ed){var eh=new ad(ec,ed.sub(ec,true));var ef=ec.zpp_inner;if(ef._validate!=null){ef._validate()}var ea=ec.zpp_inner.x;var ej=ec.zpp_inner;if(ej._validate!=null){ej._validate()}var eo=ec.zpp_inner.y;var eg=ed.zpp_inner;if(eg._validate!=null){eg._validate()}var ek=ed.zpp_inner.x;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}var ei=ed.zpp_inner.y;var en=0;var el=0;en=ea-ek;el=eo-ei;eh.zpp_inner.maxdist=Math.sqrt(en*en+el*el);if(ec.zpp_inner.weak){var em=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(em.outer!=null){em.outer.zpp_inner=null;em.outer=null}em._isimmutable=null;em._validate=null;em._invalidate=null;em.next=bB.zpp_pool;bB.zpp_pool=em}if(ed.zpp_inner.weak){var eb=ed.zpp_inner;ed.zpp_inner.outer=null;ed.zpp_inner=null;ed.zpp_pool=au.poolVec2;au.poolVec2=ed;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}return eh};ad.prototype.zpp_inner=null;ad.prototype.get_userData=function(){if(this.zpp_inner.userData==null){this.zpp_inner.userData={}}return this.zpp_inner.userData};ad.prototype.get_origin=function(){return this.zpp_inner.origin};ad.prototype.set_origin=function(ej){var ed=this.zpp_inner.origin;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}return this.zpp_inner.origin};ad.prototype.get_direction=function(){return this.zpp_inner.direction};ad.prototype.set_direction=function(ei){var ed=this.zpp_inner.direction;var eg=ei.zpp_inner;if(eg._validate!=null){eg._validate()}var ej=ei.zpp_inner.x;var ef=ei.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ei.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ej){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ej;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ei.zpp_inner.weak){var ek=ei.zpp_inner;ei.zpp_inner.outer=null;ei.zpp_inner=null;ei.zpp_pool=au.poolVec2;au.poolVec2=ei;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}this.zpp_inner.zip_dir=true;return this.zpp_inner.direction};ad.prototype.get_maxDistance=function(){return this.zpp_inner.maxdist};ad.prototype.set_maxDistance=function(ea){this.zpp_inner.maxdist=ea;return this.zpp_inner.maxdist};ad.prototype.aabb=function(){return this.zpp_inner.rayAABB().wrapper()};ad.prototype.at=function(ea,ef){if(ef==null){ef=false}this.zpp_inner.validate_dir();var eg=this.zpp_inner.origin;var ek=eg.zpp_inner;if(ek._validate!=null){ek._validate()}var en=eg.zpp_inner.x+ea*this.zpp_inner.dirx;var ej=this.zpp_inner.origin;var eh=ej.zpp_inner;if(eh._validate!=null){eh._validate()}var em=ej.zpp_inner.y+ea*this.zpp_inner.diry;var ei;if(au.poolVec2==null){ei=new r()}else{ei=au.poolVec2;au.poolVec2=ei.zpp_pool;ei.zpp_pool=null}if(ei.zpp_inner==null){var el;if(bB.zpp_pool==null){el=new bB()}else{el=bB.zpp_pool;bB.zpp_pool=el.next;el.next=null}el.weak=false;el._immutable=false;el.x=en;el.y=em;ei.zpp_inner=el;ei.zpp_inner.outer=ei}else{var ec;var ee=ei.zpp_inner;if(ee._validate!=null){ee._validate()}if(ei.zpp_inner.x==en){var ed=ei.zpp_inner;if(ed._validate!=null){ed._validate()}ec=ei.zpp_inner.y==em}else{ec=false}if(!ec){ei.zpp_inner.x=en;ei.zpp_inner.y=em;var eb=ei.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}}ei.zpp_inner.weak=ef;return ei};ad.prototype.copy=function(){var ea=new ad(this.zpp_inner.origin,this.zpp_inner.direction);ea.zpp_inner.maxdist=this.zpp_inner.maxdist;return ea};Object.defineProperty(ad.prototype,"userData",{get:ad.prototype.get_userData});Object.defineProperty(ad.prototype,"origin",{get:ad.prototype.get_origin,set:ad.prototype.set_origin});Object.defineProperty(ad.prototype,"direction",{get:ad.prototype.get_direction,set:ad.prototype.set_direction});Object.defineProperty(ad.prototype,"maxDistance",{get:ad.prototype.get_maxDistance,set:ad.prototype.set_maxDistance});ad.prototype.__class__=ad;var df=nape.geom.RayResult=function(){this.zpp_inner=null};df.__name__=["nape","geom","RayResult"];df.prototype.zpp_inner=null;df.prototype.get_normal=function(){return this.zpp_inner.normal};df.prototype.get_distance=function(){return this.zpp_inner.toiDistance};df.prototype.get_inner=function(){return this.zpp_inner.inner};df.prototype.get_shape=function(){return this.zpp_inner.shape};df.prototype.dispose=function(){this.zpp_inner.free()};df.prototype.toString=function(){return"{ shape: "+ag.string(this.zpp_inner.shape)+" distance: "+this.zpp_inner.toiDistance+" ?inner: "+ag.string(this.zpp_inner.inner)+" }"};Object.defineProperty(df.prototype,"normal",{get:df.prototype.get_normal});Object.defineProperty(df.prototype,"distance",{get:df.prototype.get_distance});Object.defineProperty(df.prototype,"inner",{get:df.prototype.get_inner});Object.defineProperty(df.prototype,"shape",{get:df.prototype.get_shape});df.prototype.__class__=df;var du=nape.geom.RayResultIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};du.__name__=["nape","geom","RayResultIterator"];du.get=function(ec){var ea;if(du.zpp_pool==null){bw.internal=true;var ed=new du();bw.internal=false;ea=ed}else{var eb=du.zpp_pool;du.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};du.prototype.zpp_inner=null;du.prototype.zpp_i=null;du.prototype.zpp_critical=null;du.prototype.zpp_next=null;du.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=du.zpp_pool;du.zpp_pool=this;this.zpp_inner=null;return false}};du.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};du.prototype.__class__=du;var aa=nape.geom.RayResultList=function(){this.zpp_inner=null;this.zpp_inner=new bw();this.zpp_inner.outer=this};aa.__name__=["nape","geom","RayResultList"];aa.fromArray=function(ed){var ea=new aa();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};aa.prototype.zpp_inner=null;aa.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};aa.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea)};aa.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt};aa.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};aa.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec)}else{this.zpp_inner.inner.add(ec)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};aa.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb};aa.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb};aa.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};aa.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec)}this.zpp_inner.invalidate()}return ea};aa.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};aa.prototype.empty=function(){return this.zpp_inner.inner.head==null};aa.prototype.iterator=function(){this.zpp_inner.valmod();return du.get(this)};aa.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new aa();this.zpp_inner.valmod();var ef=du.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=du.zpp_pool;du.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};aa.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=du.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=du.zpp_pool;du.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};aa.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=du.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=du.zpp_pool;du.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};aa.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=du.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=du.zpp_pool;du.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=du.zpp_pool;du.zpp_pool=ec;ec.zpp_inner=null;break}}return this};aa.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(aa.prototype,"length",{get:aa.prototype.get_length});aa.prototype.__class__=aa;var r=nape.geom.Vec2=function(ea,ec){if(ec==null){ec=0}if(ea==null){ea=0}this.zpp_pool=null;this.zpp_inner=null;var eb;if(bB.zpp_pool==null){eb=new bB()}else{eb=bB.zpp_pool;bB.zpp_pool=eb.next;eb.next=null}eb.weak=false;eb._immutable=false;eb.x=ea;eb.y=ec;this.zpp_inner=eb;this.zpp_inner.outer=this};r.__name__=["nape","geom","Vec2"];r.weak=function(ea,eh){if(eh==null){eh=0}if(ea==null){ea=0}var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=true;return eb};r.get=function(ei,eg,eb){if(eb==null){eb=false}if(eg==null){eg=0}if(ei==null){ei=0}var ee;if(au.poolVec2==null){ee=new r()}else{ee=au.poolVec2;au.poolVec2=ee.zpp_pool;ee.zpp_pool=null}if(ee.zpp_inner==null){var eh;if(bB.zpp_pool==null){eh=new bB()}else{eh=bB.zpp_pool;bB.zpp_pool=eh.next;eh.next=null}eh.weak=false;eh._immutable=false;eh.x=ei;eh.y=eg;ee.zpp_inner=eh;ee.zpp_inner.outer=ee}else{var ea;var ec=ee.zpp_inner;if(ec._validate!=null){ec._validate()}if(ee.zpp_inner.x==ei){var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}ea=ee.zpp_inner.y==eg}else{ea=false}if(!ea){ee.zpp_inner.x=ei;ee.zpp_inner.y=eg;var ed=ee.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}ee.zpp_inner.weak=eb;return ee};r.fromPolar=function(ea,eb,ed){if(ed==null){ed=false}var ek=ea*Math.cos(eb);var ei=ea*Math.sin(eb);var eg;if(au.poolVec2==null){eg=new r()}else{eg=au.poolVec2;au.poolVec2=eg.zpp_pool;eg.zpp_pool=null}if(eg.zpp_inner==null){var ej;if(bB.zpp_pool==null){ej=new bB()}else{ej=bB.zpp_pool;bB.zpp_pool=ej.next;ej.next=null}ej.weak=false;ej._immutable=false;ej.x=ek;ej.y=ei;eg.zpp_inner=ej;eg.zpp_inner.outer=eg}else{var ec;var ee=eg.zpp_inner;if(ee._validate!=null){ee._validate()}if(eg.zpp_inner.x==ek){var eh=eg.zpp_inner;if(eh._validate!=null){eh._validate()}ec=eg.zpp_inner.y==ei}else{ec=false}if(!ec){eg.zpp_inner.x=ek;eg.zpp_inner.y=ei;var ef=eg.zpp_inner;if(ef._invalidate!=null){ef._invalidate(ef)}}}eg.zpp_inner.weak=ed;return eg};r.dsq=function(ek,ej){var ed=ek.zpp_inner;if(ed._validate!=null){ed._validate()}var ea=ek.zpp_inner.x;var eh=ek.zpp_inner;if(eh._validate!=null){eh._validate()}var eo=ek.zpp_inner.y;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var ei=ej.zpp_inner.x;var ec=ej.zpp_inner;if(ec._validate!=null){ec._validate()}var eg=ej.zpp_inner.y;var en=0;var el=0;en=ea-ei;el=eo-eg;var ee=en*en+el*el;if(ek.zpp_inner.weak){var em=ek.zpp_inner;ek.zpp_inner.outer=null;ek.zpp_inner=null;ek.zpp_pool=au.poolVec2;au.poolVec2=ek;if(em.outer!=null){em.outer.zpp_inner=null;em.outer=null}em._isimmutable=null;em._validate=null;em._invalidate=null;em.next=bB.zpp_pool;bB.zpp_pool=em}if(ej.zpp_inner.weak){var eb=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}return ee};r.distance=function(ek,ej){var ed=ek.zpp_inner;if(ed._validate!=null){ed._validate()}var ea=ek.zpp_inner.x;var eh=ek.zpp_inner;if(eh._validate!=null){eh._validate()}var eo=ek.zpp_inner.y;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var ei=ej.zpp_inner.x;var ec=ej.zpp_inner;if(ec._validate!=null){ec._validate()}var eg=ej.zpp_inner.y;var en=0;var el=0;en=ea-ei;el=eo-eg;var ee=Math.sqrt(en*en+el*el);if(ek.zpp_inner.weak){var em=ek.zpp_inner;ek.zpp_inner.outer=null;ek.zpp_inner=null;ek.zpp_pool=au.poolVec2;au.poolVec2=ek;if(em.outer!=null){em.outer.zpp_inner=null;em.outer=null}em._isimmutable=null;em._validate=null;em._invalidate=null;em.next=bB.zpp_pool;bB.zpp_pool=em}if(ej.zpp_inner.weak){var eb=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}return ee};r.prototype.zpp_inner=null;r.prototype.zpp_pool=null;r.prototype.dispose=function(){var ea=this.zpp_inner;this.zpp_inner.outer=null;this.zpp_inner=null;var eb=this;eb.zpp_pool=au.poolVec2;au.poolVec2=eb;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea};r.prototype.copy=function(ec){if(ec==null){ec=false}var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}var ek=this.zpp_inner.x;var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var ei=this.zpp_inner.y;var eg;if(au.poolVec2==null){eg=new r()}else{eg=au.poolVec2;au.poolVec2=eg.zpp_pool;eg.zpp_pool=null}if(eg.zpp_inner==null){var ej;if(bB.zpp_pool==null){ej=new bB()}else{ej=bB.zpp_pool;bB.zpp_pool=ej.next;ej.next=null}ej.weak=false;ej._immutable=false;ej.x=ek;ej.y=ei;eg.zpp_inner=ej;eg.zpp_inner.outer=eg}else{var ea;var ef=eg.zpp_inner;if(ef._validate!=null){ef._validate()}if(eg.zpp_inner.x==ek){var ed=eg.zpp_inner;if(ed._validate!=null){ed._validate()}ea=eg.zpp_inner.y==ei}else{ea=false}if(!ea){eg.zpp_inner.x=ek;eg.zpp_inner.y=ei;var eb=eg.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}}eg.zpp_inner.weak=ec;return eg};r.prototype.get_x=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.x};r.prototype.set_x=function(ea){var ed=this.zpp_inner;if(ed._validate!=null){ed._validate()}if(this.zpp_inner.x!=ea){this.zpp_inner.x=ea;var ec=this.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}return this.zpp_inner.x};r.prototype.get_y=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.y};r.prototype.set_y=function(ed){var ec=this.zpp_inner;if(ec._validate!=null){ec._validate()}if(this.zpp_inner.y!=ed){this.zpp_inner.y=ed;var eb=this.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.y};r.prototype.get_length=function(){var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}var ea=this.zpp_inner.x;var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}var ee=ea*this.zpp_inner.x;var ed=this.zpp_inner;if(ed._validate!=null){ed._validate()}var ec=this.zpp_inner.y;var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}return Math.sqrt(ee+ec*this.zpp_inner.y)};r.prototype.set_length=function(eb){var ev=this.zpp_inner;if(ev._validate!=null){ev._validate()}var eC=this.zpp_inner.x;var eB=this.zpp_inner;if(eB._validate!=null){eB._validate()}var ep=eC*this.zpp_inner.x;var eA=this.zpp_inner;if(eA._validate!=null){eA._validate()}var em=this.zpp_inner.y;var ez=this.zpp_inner;if(ez._validate!=null){ez._validate()}var ee=eb/Math.sqrt(ep+em*this.zpp_inner.y);var ea=this;var ey=ea.zpp_inner;if(ey._validate!=null){ey._validate()}var ed=ea.zpp_inner.x*ee;var ex=ea.zpp_inner;if(ex._validate!=null){ex._validate()}if(ea.zpp_inner.x!=ed){ea.zpp_inner.x=ed;var ew=ea.zpp_inner;if(ew._invalidate!=null){ew._invalidate(ew)}}var et=ea.zpp_inner;if(et._validate!=null){et._validate()}var eg=this;var er=eg.zpp_inner;if(er._validate!=null){er._validate()}var ec=eg.zpp_inner.y*ee;var eo=eg.zpp_inner;if(eo._validate!=null){eo._validate()}if(eg.zpp_inner.y!=ec){eg.zpp_inner.y=ec;var eu=eg.zpp_inner;if(eu._invalidate!=null){eu._invalidate(eu)}}var es=eg.zpp_inner;if(es._validate!=null){es._validate()}var eq=this.zpp_inner;if(eq._invalidate!=null){eq._invalidate(eq)}var en=this.zpp_inner;if(en._validate!=null){en._validate()}var ek=this.zpp_inner.x;var el=this.zpp_inner;if(el._validate!=null){el._validate()}var ei=ek*this.zpp_inner.x;var ej=this.zpp_inner;if(ej._validate!=null){ej._validate()}var ef=this.zpp_inner.y;var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}return Math.sqrt(ei+ef*this.zpp_inner.y)};r.prototype.lsq=function(){var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}var ea=this.zpp_inner.x;var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}var ee=ea*this.zpp_inner.x;var ed=this.zpp_inner;if(ed._validate!=null){ed._validate()}var ec=this.zpp_inner.y;var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}return ee+ec*this.zpp_inner.y};r.prototype.set=function(ea){var ed=ea.zpp_inner;if(ed._validate!=null){ed._validate()}var ej=ea.zpp_inner.x;var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}var ei=ea.zpp_inner.y;var eb;var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}if(this.zpp_inner.x==ej){var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}eb=this.zpp_inner.y==ei}else{eb=false}if(!eb){this.zpp_inner.x=ej;this.zpp_inner.y=ei;var ec=this.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}var ef=this;if(ea.zpp_inner.weak){var ek=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}return ef};r.prototype.setxy=function(ea,ef){var eb;var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}if(this.zpp_inner.x==ea){var ed=this.zpp_inner;if(ed._validate!=null){ed._validate()}eb=this.zpp_inner.y==ef}else{eb=false}if(!eb){this.zpp_inner.x=ea;this.zpp_inner.y=ef;var ec=this.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}return this};r.prototype.get_angle=function(){var eb;var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var ef=this.zpp_inner.x;var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}if(ef==this.zpp_inner.y){var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}eb=this.zpp_inner.x==0}else{eb=false}if(eb){return 0}else{var ed=this.zpp_inner;if(ed._validate!=null){ed._validate()}var ec=this.zpp_inner.y;var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return Math.atan2(ec,this.zpp_inner.x)}};r.prototype.set_angle=function(ev){var eo=this.zpp_inner;if(eo._validate!=null){eo._validate()}var ew=this.zpp_inner.x;var eu=this.zpp_inner;if(eu._validate!=null){eu._validate()}var ei=ew*this.zpp_inner.x;var et=this.zpp_inner;if(et._validate!=null){et._validate()}var eg=this.zpp_inner.y;var es=this.zpp_inner;if(es._validate!=null){es._validate()}var em=Math.sqrt(ei+eg*this.zpp_inner.y);var eb=em*Math.cos(ev);var ea=em*Math.sin(ev);var ef;var er=this.zpp_inner;if(er._validate!=null){er._validate()}if(this.zpp_inner.x==eb){var eq=this.zpp_inner;if(eq._validate!=null){eq._validate()}ef=this.zpp_inner.y==ea}else{ef=false}if(!ef){this.zpp_inner.x=eb;this.zpp_inner.y=ea;var ep=this.zpp_inner;if(ep._invalidate!=null){ep._invalidate(ep)}}var ee;var el=this.zpp_inner;if(el._validate!=null){el._validate()}var ed=this.zpp_inner.x;var ej=this.zpp_inner;if(ej._validate!=null){ej._validate()}if(ed==this.zpp_inner.y){var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}ee=this.zpp_inner.x==0}else{ee=false}if(ee){return 0}else{var en=this.zpp_inner;if(en._validate!=null){en._validate()}var ec=this.zpp_inner.y;var ek=this.zpp_inner;if(ek._validate!=null){ek._validate()}return Math.atan2(ec,this.zpp_inner.x)}};r.prototype.rotate=function(ed){if(ed%(Math.PI*2)!=0){var ec=Math.sin(ed);var eb=Math.cos(ed);var ea=eb*this.zpp_inner.x-ec*this.zpp_inner.y;this.zpp_inner.y=this.zpp_inner.x*ec+this.zpp_inner.y*eb;this.zpp_inner.x=ea;var ee=this.zpp_inner;if(ee._invalidate!=null){ee._invalidate(ee)}}return this};r.prototype.reflect=function(ea,ed){if(ed==null){ed=false}var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}var en=this.zpp_inner.x;var ej=this.zpp_inner;if(ej._validate!=null){ej._validate()}var el=this.zpp_inner.y;var ei;if(au.poolVec2==null){ei=new r()}else{ei=au.poolVec2;au.poolVec2=ei.zpp_pool;ei.zpp_pool=null}if(ei.zpp_inner==null){var em;if(bB.zpp_pool==null){em=new bB()}else{em=bB.zpp_pool;bB.zpp_pool=em.next;em.next=null}em.weak=false;em._immutable=false;em.x=en;em.y=el;ei.zpp_inner=em;ei.zpp_inner.outer=ei}else{var eb;var eh=ei.zpp_inner;if(eh._validate!=null){eh._validate()}if(ei.zpp_inner.x==en){var ee=ei.zpp_inner;if(ee._validate!=null){ee._validate()}eb=ei.zpp_inner.y==el}else{eb=false}if(!eb){ei.zpp_inner.x=en;ei.zpp_inner.y=el;var ec=ei.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}}ei.zpp_inner.weak=true;var eg=ei.normalise();var ek=ea.sub(eg.muleq(2*eg.dot(ea)),ed);if(ea.zpp_inner.weak){var eo=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eo.outer!=null){eo.outer.zpp_inner=null;eo.outer=null}eo._isimmutable=null;eo._validate=null;eo._invalidate=null;eo.next=bB.zpp_pool;bB.zpp_pool=eo}return ek};r.prototype.normalise=function(){var em=this.zpp_inner;if(em._validate!=null){em._validate()}var eu=this.zpp_inner.x;var et=this.zpp_inner;if(et._validate!=null){et._validate()}var eg=eu*this.zpp_inner.x;var es=this.zpp_inner;if(es._validate!=null){es._validate()}var ee=this.zpp_inner.y;var er=this.zpp_inner;if(er._validate!=null){er._validate()}var eq=1/Math.sqrt(eg+ee*this.zpp_inner.y);var ea=this;var ep=ea.zpp_inner;if(ep._validate!=null){ep._validate()}var ec=ea.zpp_inner.x*eq;var eo=ea.zpp_inner;if(eo._validate!=null){eo._validate()}if(ea.zpp_inner.x!=ec){ea.zpp_inner.x=ec;var en=ea.zpp_inner;if(en._invalidate!=null){en._invalidate(en)}}var ek=ea.zpp_inner;if(ek._validate!=null){ek._validate()}var ed=this;var ei=ed.zpp_inner;if(ei._validate!=null){ei._validate()}var eb=ed.zpp_inner.y*eq;var ef=ed.zpp_inner;if(ef._validate!=null){ef._validate()}if(ed.zpp_inner.y!=eb){ed.zpp_inner.y=eb;var el=ed.zpp_inner;if(el._invalidate!=null){el._invalidate(el)}}var ej=ed.zpp_inner;if(ej._validate!=null){ej._validate()}var eh=this.zpp_inner;if(eh._invalidate!=null){eh._invalidate(eh)}return this};r.prototype.unit=function(eb){if(eb==null){eb=false}var ej=this.zpp_inner;if(ej._validate!=null){ej._validate()}var eq=this.zpp_inner.x;var ep=this.zpp_inner;if(ep._validate!=null){ep._validate()}var eg=eq*this.zpp_inner.x;var eo=this.zpp_inner;if(eo._validate!=null){eo._validate()}var ef=this.zpp_inner.y;var en=this.zpp_inner;if(en._validate!=null){en._validate()}var es=1/Math.sqrt(eg+ef*this.zpp_inner.y);var em=this.zpp_inner;if(em._validate!=null){em._validate()}var ed=this.zpp_inner.x*es;var el=this.zpp_inner;if(el._validate!=null){el._validate()}var ec=this.zpp_inner.y*es;var er;if(au.poolVec2==null){er=new r()}else{er=au.poolVec2;au.poolVec2=er.zpp_pool;er.zpp_pool=null}if(er.zpp_inner==null){var ea;if(bB.zpp_pool==null){ea=new bB()}else{ea=bB.zpp_pool;bB.zpp_pool=ea.next;ea.next=null}ea.weak=false;ea._immutable=false;ea.x=ed;ea.y=ec;er.zpp_inner=ea;er.zpp_inner.outer=er}else{var ee;var ek=er.zpp_inner;if(ek._validate!=null){ek._validate()}if(er.zpp_inner.x==ed){var ei=er.zpp_inner;if(ei._validate!=null){ei._validate()}ee=er.zpp_inner.y==ec}else{ee=false}if(!ee){er.zpp_inner.x=ed;er.zpp_inner.y=ec;var eh=er.zpp_inner;if(eh._invalidate!=null){eh._invalidate(eh)}}}er.zpp_inner.weak=eb;return er};r.prototype.add=function(ea,ed){if(ed==null){ed=false}var ei=this.zpp_inner;if(ei._validate!=null){ei._validate()}var ep=this.zpp_inner.x;var eo=ea.zpp_inner;if(eo._validate!=null){eo._validate()}var ef=ep+ea.zpp_inner.x;var en=this.zpp_inner;if(en._validate!=null){en._validate()}var eh=this.zpp_inner.y;var em=ea.zpp_inner;if(em._validate!=null){em._validate()}var ee=eh+ea.zpp_inner.y;var er;if(au.poolVec2==null){er=new r()}else{er=au.poolVec2;au.poolVec2=er.zpp_pool;er.zpp_pool=null}if(er.zpp_inner==null){var ec;if(bB.zpp_pool==null){ec=new bB()}else{ec=bB.zpp_pool;bB.zpp_pool=ec.next;ec.next=null}ec.weak=false;ec._immutable=false;ec.x=ef;ec.y=ee;er.zpp_inner=ec;er.zpp_inner.outer=er}else{var eg;var el=er.zpp_inner;if(el._validate!=null){el._validate()}if(er.zpp_inner.x==ef){var ek=er.zpp_inner;if(ek._validate!=null){ek._validate()}eg=er.zpp_inner.y==ee}else{eg=false}if(!eg){er.zpp_inner.x=ef;er.zpp_inner.y=ee;var ej=er.zpp_inner;if(ej._invalidate!=null){ej._invalidate(ej)}}}er.zpp_inner.weak=ed;var eb=er;if(ea.zpp_inner.weak){var eq=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eq.outer!=null){eq.outer.zpp_inner=null;eq.outer=null}eq._isimmutable=null;eq._validate=null;eq._invalidate=null;eq.next=bB.zpp_pool;bB.zpp_pool=eq}return eb};r.prototype.addMul=function(ea,es,ed){if(ed==null){ed=false}var ei=this.zpp_inner;if(ei._validate!=null){ei._validate()}var ep=this.zpp_inner.x;var eo=ea.zpp_inner;if(eo._validate!=null){eo._validate()}var ef=ep+ea.zpp_inner.x*es;var en=this.zpp_inner;if(en._validate!=null){en._validate()}var eh=this.zpp_inner.y;var em=ea.zpp_inner;if(em._validate!=null){em._validate()}var ee=eh+ea.zpp_inner.y*es;var er;if(au.poolVec2==null){er=new r()}else{er=au.poolVec2;au.poolVec2=er.zpp_pool;er.zpp_pool=null}if(er.zpp_inner==null){var ec;if(bB.zpp_pool==null){ec=new bB()}else{ec=bB.zpp_pool;bB.zpp_pool=ec.next;ec.next=null}ec.weak=false;ec._immutable=false;ec.x=ef;ec.y=ee;er.zpp_inner=ec;er.zpp_inner.outer=er}else{var eg;var el=er.zpp_inner;if(el._validate!=null){el._validate()}if(er.zpp_inner.x==ef){var ek=er.zpp_inner;if(ek._validate!=null){ek._validate()}eg=er.zpp_inner.y==ee}else{eg=false}if(!eg){er.zpp_inner.x=ef;er.zpp_inner.y=ee;var ej=er.zpp_inner;if(ej._invalidate!=null){ej._invalidate(ej)}}}er.zpp_inner.weak=ed;var eb=er;if(ea.zpp_inner.weak){var eq=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eq.outer!=null){eq.outer.zpp_inner=null;eq.outer=null}eq._isimmutable=null;eq._validate=null;eq._invalidate=null;eq.next=bB.zpp_pool;bB.zpp_pool=eq}return eb};r.prototype.sub=function(ea,ed){if(ed==null){ed=false}var ei=this.zpp_inner;if(ei._validate!=null){ei._validate()}var ep=this.zpp_inner.x;var eo=ea.zpp_inner;if(eo._validate!=null){eo._validate()}var ef=ep-ea.zpp_inner.x;var en=this.zpp_inner;if(en._validate!=null){en._validate()}var eh=this.zpp_inner.y;var em=ea.zpp_inner;if(em._validate!=null){em._validate()}var ee=eh-ea.zpp_inner.y;var er;if(au.poolVec2==null){er=new r()}else{er=au.poolVec2;au.poolVec2=er.zpp_pool;er.zpp_pool=null}if(er.zpp_inner==null){var ec;if(bB.zpp_pool==null){ec=new bB()}else{ec=bB.zpp_pool;bB.zpp_pool=ec.next;ec.next=null}ec.weak=false;ec._immutable=false;ec.x=ef;ec.y=ee;er.zpp_inner=ec;er.zpp_inner.outer=er}else{var eg;var el=er.zpp_inner;if(el._validate!=null){el._validate()}if(er.zpp_inner.x==ef){var ek=er.zpp_inner;if(ek._validate!=null){ek._validate()}eg=er.zpp_inner.y==ee}else{eg=false}if(!eg){er.zpp_inner.x=ef;er.zpp_inner.y=ee;var ej=er.zpp_inner;if(ej._invalidate!=null){ej._invalidate(ej)}}}er.zpp_inner.weak=ed;var eb=er;if(ea.zpp_inner.weak){var eq=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eq.outer!=null){eq.outer.zpp_inner=null;eq.outer=null}eq._isimmutable=null;eq._validate=null;eq._invalidate=null;eq.next=bB.zpp_pool;bB.zpp_pool=eq}return eb};r.prototype.mul=function(ea,ed){if(ed==null){ed=false}var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}var el=this.zpp_inner.x*ea;var ei=this.zpp_inner;if(ei._validate!=null){ei._validate()}var ej=this.zpp_inner.y*ea;var eh;if(au.poolVec2==null){eh=new r()}else{eh=au.poolVec2;au.poolVec2=eh.zpp_pool;eh.zpp_pool=null}if(eh.zpp_inner==null){var ek;if(bB.zpp_pool==null){ek=new bB()}else{ek=bB.zpp_pool;bB.zpp_pool=ek.next;ek.next=null}ek.weak=false;ek._immutable=false;ek.x=el;ek.y=ej;eh.zpp_inner=ek;eh.zpp_inner.outer=eh}else{var eb;var eg=eh.zpp_inner;if(eg._validate!=null){eg._validate()}if(eh.zpp_inner.x==el){var ee=eh.zpp_inner;if(ee._validate!=null){ee._validate()}eb=eh.zpp_inner.y==ej}else{eb=false}if(!eb){eh.zpp_inner.x=el;eh.zpp_inner.y=ej;var ec=eh.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}}eh.zpp_inner.weak=ed;return eh};r.prototype.addeq=function(ea){var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var ee=this.zpp_inner.x;var ek=ea.zpp_inner;if(ek._validate!=null){ek._validate()}var em=ee+ea.zpp_inner.x;var ej=this.zpp_inner;if(ej._validate!=null){ej._validate()}var ec=this.zpp_inner.y;var ei=ea.zpp_inner;if(ei._validate!=null){ei._validate()}var el=ec+ea.zpp_inner.y;var eb;var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}if(this.zpp_inner.x==em){var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}eb=this.zpp_inner.y==el}else{eb=false}if(!eb){this.zpp_inner.x=em;this.zpp_inner.y=el;var ed=this.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}if(ea.zpp_inner.weak){var en=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(en.outer!=null){en.outer.zpp_inner=null;en.outer=null}en._isimmutable=null;en._validate=null;en._invalidate=null;en.next=bB.zpp_pool;bB.zpp_pool=en}return this};r.prototype.subeq=function(ea){var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var ee=this.zpp_inner.x;var ek=ea.zpp_inner;if(ek._validate!=null){ek._validate()}var em=ee-ea.zpp_inner.x;var ej=this.zpp_inner;if(ej._validate!=null){ej._validate()}var ec=this.zpp_inner.y;var ei=ea.zpp_inner;if(ei._validate!=null){ei._validate()}var el=ec-ea.zpp_inner.y;var eb;var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}if(this.zpp_inner.x==em){var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}eb=this.zpp_inner.y==el}else{eb=false}if(!eb){this.zpp_inner.x=em;this.zpp_inner.y=el;var ed=this.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}if(ea.zpp_inner.weak){var en=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(en.outer!=null){en.outer.zpp_inner=null;en.outer=null}en._isimmutable=null;en._validate=null;en._invalidate=null;en.next=bB.zpp_pool;bB.zpp_pool=en}return this};r.prototype.muleq=function(ea){var ed=this.zpp_inner;if(ed._validate!=null){ed._validate()}var ei=this.zpp_inner.x*ea;var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}var eh=this.zpp_inner.y*ea;var eb;var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}if(this.zpp_inner.x==ei){var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}eb=this.zpp_inner.y==eh}else{eb=false}if(!eb){this.zpp_inner.x=ei;this.zpp_inner.y=eh;var ec=this.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}return this};r.prototype.dot=function(ea){var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}var ed=this.zpp_inner.x;var ei=ea.zpp_inner;if(ei._validate!=null){ei._validate()}var ec=ed*ea.zpp_inner.x;var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var eb=this.zpp_inner.y;var ef=ea.zpp_inner;if(ef._validate!=null){ef._validate()}var eg=ec+eb*ea.zpp_inner.y;if(ea.zpp_inner.weak){var ej=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ej.outer!=null){ej.outer.zpp_inner=null;ej.outer=null}ej._isimmutable=null;ej._validate=null;ej._invalidate=null;ej.next=bB.zpp_pool;bB.zpp_pool=ej}return eg};r.prototype.cross=function(ea){var ee=ea.zpp_inner;if(ee._validate!=null){ee._validate()}var ed=ea.zpp_inner.y;var ei=this.zpp_inner;if(ei._validate!=null){ei._validate()}var ec=ed*this.zpp_inner.x;var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}var eb=ea.zpp_inner.x;var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}var eg=ec-eb*this.zpp_inner.y;if(ea.zpp_inner.weak){var ej=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ej.outer!=null){ej.outer.zpp_inner=null;ej.outer=null}ej._isimmutable=null;ej._validate=null;ej._invalidate=null;ej.next=bB.zpp_pool;bB.zpp_pool=ej}return eg};r.prototype.perp=function(ec){if(ec==null){ec=false}var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}var ek=-this.zpp_inner.y;var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var ei=this.zpp_inner.x;var eg;if(au.poolVec2==null){eg=new r()}else{eg=au.poolVec2;au.poolVec2=eg.zpp_pool;eg.zpp_pool=null}if(eg.zpp_inner==null){var ej;if(bB.zpp_pool==null){ej=new bB()}else{ej=bB.zpp_pool;bB.zpp_pool=ej.next;ej.next=null}ej.weak=false;ej._immutable=false;ej.x=ek;ej.y=ei;eg.zpp_inner=ej;eg.zpp_inner.outer=eg}else{var ea;var ef=eg.zpp_inner;if(ef._validate!=null){ef._validate()}if(eg.zpp_inner.x==ek){var ed=eg.zpp_inner;if(ed._validate!=null){ed._validate()}ea=eg.zpp_inner.y==ei}else{ea=false}if(!ea){eg.zpp_inner.x=ek;eg.zpp_inner.y=ei;var eb=eg.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}}eg.zpp_inner.weak=ec;return eg};r.prototype.toString=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.toString()};Object.defineProperty(r.prototype,"x",{get:r.prototype.get_x,set:r.prototype.set_x});Object.defineProperty(r.prototype,"y",{get:r.prototype.get_y,set:r.prototype.set_y});Object.defineProperty(r.prototype,"length",{get:r.prototype.get_length,set:r.prototype.set_length});Object.defineProperty(r.prototype,"angle",{get:r.prototype.get_angle,set:r.prototype.set_angle});r.prototype.__class__=r;var dW=nape.geom.Vec2Iterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};dW.__name__=["nape","geom","Vec2Iterator"];dW.get=function(ec){var ea;if(dW.zpp_pool==null){bF.internal=true;var ed=new dW();bF.internal=false;ea=ed}else{var eb=dW.zpp_pool;dW.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};dW.prototype.zpp_inner=null;dW.prototype.zpp_i=null;dW.prototype.zpp_critical=null;dW.prototype.zpp_next=null;dW.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var ea=this.zpp_inner.zpp_gl();this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=dW.zpp_pool;dW.zpp_pool=this;this.zpp_inner=null;return false}};dW.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};dW.prototype.__class__=dW;var aN=nape.geom.Vec2List=function(){this.zpp_inner=null;this.zpp_inner=new bF();this.zpp_inner.outer=this};aN.__name__=["nape","geom","Vec2List"];aN.fromArray=function(ed){var ea=new aN();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};aN.prototype.zpp_inner=null;aN.prototype.get_length=function(){return this.zpp_gl()};aN.prototype.zpp_gl=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};aN.prototype.zpp_vm=function(){this.zpp_inner.valmod()};aN.prototype.has=function(ea){this.zpp_vm();return this.zpp_inner.inner.has(ea.zpp_inner)};aN.prototype.at=function(ea){this.zpp_vm();if(this.zpp_inner.reverse_flag){ea=this.zpp_gl()-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}var ec=this.zpp_inner.at_ite.elt;if(ec.outer==null){ec.outer=new r();var eb=ec.outer.zpp_inner;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb;ec.outer.zpp_inner=ec}return ec.outer};aN.prototype.push=function(eb){this.zpp_inner.modify_test();this.zpp_vm();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(eb):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(eb.zpp_inner)}else{if(this.zpp_inner.push_ite==null){this.zpp_inner.push_ite=this.empty()?null:this.zpp_inner.inner.iterator_at(this.zpp_gl()-1)}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,eb.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(eb)}}return ea};aN.prototype.unshift=function(eb){this.zpp_inner.modify_test();this.zpp_vm();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(eb):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){this.zpp_inner.push_ite=this.empty()?null:this.zpp_inner.inner.iterator_at(this.zpp_gl()-1)}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,eb.zpp_inner)}else{this.zpp_inner.inner.add(eb.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(eb)}}return ea};aN.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_vm();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;if(eb.outer==null){eb.outer=new r();var eg=eb.outer.zpp_inner;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg._isimmutable=null;eg._validate=null;eg._invalidate=null;eg.next=bB.zpp_pool;bB.zpp_pool=eg;eb.outer.zpp_inner=eb}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ee=this.zpp_gl()==1?null:this.zpp_inner.inner.iterator_at(this.zpp_gl()-2);if(ee==null){eb=this.zpp_inner.inner.head.elt}else{eb=ee.next.elt}if(eb.outer==null){eb.outer=new r();var ed=eb.outer.zpp_inner;if(ed.outer!=null){ed.outer.zpp_inner=null;ed.outer=null}ed._isimmutable=null;ed._validate=null;ed._invalidate=null;ed.next=bB.zpp_pool;bB.zpp_pool=ed;eb.outer.zpp_inner=eb}var ef=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ef)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ee)}}this.zpp_inner.invalidate();if(eb.outer==null){eb.outer=new r();var ec=eb.outer.zpp_inner;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec._isimmutable=null;ec._validate=null;ec._invalidate=null;ec.next=bB.zpp_pool;bB.zpp_pool=ec;eb.outer.zpp_inner=eb}return eb.outer};aN.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_vm();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ee=this.zpp_gl()==1?null:this.zpp_inner.inner.iterator_at(this.zpp_gl()-2);if(ee==null){eb=this.zpp_inner.inner.head.elt}else{eb=ee.next.elt}if(eb.outer==null){eb.outer=new r();var eg=eb.outer.zpp_inner;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg._isimmutable=null;eg._validate=null;eg._invalidate=null;eg.next=bB.zpp_pool;bB.zpp_pool=eg;eb.outer.zpp_inner=eb}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ee)}}else{eb=this.zpp_inner.inner.head.elt;if(eb.outer==null){eb.outer=new r();var ed=eb.outer.zpp_inner;if(ed.outer!=null){ed.outer.zpp_inner=null;ed.outer=null}ed._isimmutable=null;ed._validate=null;ed._invalidate=null;ed.next=bB.zpp_pool;bB.zpp_pool=ed;eb.outer.zpp_inner=eb}var ef=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ef)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();if(eb.outer==null){eb.outer=new r();var ec=eb.outer.zpp_inner;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec._isimmutable=null;ec._validate=null;ec._invalidate=null;ec.next=bB.zpp_pool;bB.zpp_pool=ec;eb.outer.zpp_inner=eb}return eb.outer};aN.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};aN.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_vm();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};aN.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(!this.empty()){this.pop()}}else{while(!this.empty()){this.shift()}}};aN.prototype.empty=function(){return this.zpp_gl()==0};aN.prototype.iterator=function(){this.zpp_vm();return dW.get(this)};aN.prototype.copy=function(eq){if(eq==null){eq=false}var ek=new aN();var ef=this.iterator();while(true){ef.zpp_inner.zpp_inner.valmod();var ea=ef.zpp_inner.zpp_gl();ef.zpp_critical=true;var ed;if(ef.zpp_i<ea){ed=true}else{ef.zpp_next=dW.zpp_pool;dW.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ee=ef.zpp_inner.at(ef.zpp_i++);var ec;if(eq){var ei=ee.zpp_inner;if(ei._validate!=null){ei._validate()}var ep=ee.zpp_inner.x;var el=ee.zpp_inner;if(el._validate!=null){el._validate()}var eo=ee.zpp_inner.y;var en;if(au.poolVec2==null){en=new r()}else{en=au.poolVec2;au.poolVec2=en.zpp_pool;en.zpp_pool=null}if(en.zpp_inner==null){var em;if(bB.zpp_pool==null){em=new bB()}else{em=bB.zpp_pool;bB.zpp_pool=em.next;em.next=null}em.weak=false;em._immutable=false;em.x=ep;em.y=eo;en.zpp_inner=em;en.zpp_inner.outer=en}else{var eb;var ej=en.zpp_inner;if(ej._validate!=null){ej._validate()}if(en.zpp_inner.x==ep){var eh=en.zpp_inner;if(eh._validate!=null){eh._validate()}eb=en.zpp_inner.y==eo}else{eb=false}if(!eb){en.zpp_inner.x=ep;en.zpp_inner.y=eo;var eg=en.zpp_inner;if(eg._invalidate!=null){eg._invalidate(eg)}}}en.zpp_inner.weak=false;ec=en}else{ec=ee}ek.push(ec)}return ek};aN.prototype.merge=function(eb){var ee=eb.iterator();while(true){ee.zpp_inner.zpp_inner.valmod();var ed=ee.zpp_inner.zpp_gl();ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=dW.zpp_pool;dW.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){this.add(ea)}}};aN.prototype.toString=function(){var eb="[";var ea=true;var ef=this.iterator();while(true){ef.zpp_inner.zpp_inner.valmod();var ee=ef.zpp_inner.zpp_gl();ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=dW.zpp_pool;dW.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};aN.prototype.foreach=function(ea){var ec=this.iterator();while(true){ec.zpp_inner.zpp_inner.valmod();var ed=ec.zpp_inner.zpp_gl();ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=dW.zpp_pool;dW.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=dW.zpp_pool;dW.zpp_pool=ec;ec.zpp_inner=null;break}}return this};aN.prototype.filter=function(eb){var ec=0;while(ec<this.zpp_gl()){var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(aN.prototype,"length",{get:aN.prototype.get_length});aN.prototype.__class__=aN;var q=nape.geom.Vec3=function(ea,ef,ed){if(ed==null){ed=0}if(ef==null){ef=0}if(ea==null){ea=0}this.zpp_pool=null;this.zpp_inner=null;this.zpp_inner=new bA();this.zpp_inner.outer=this;this.zpp_inner.x=ea;var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}this.zpp_inner.y=ef;var ec=this.zpp_inner;if(ec._validate!=null){ec._validate()}this.zpp_inner.z=ed;var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}};q.__name__=["nape","geom","Vec3"];q.get=function(ea,ed,ec){if(ec==null){ec=0}if(ed==null){ed=0}if(ea==null){ea=0}var eb;if(au.poolVec3==null){eb=new q()}else{eb=au.poolVec3;au.poolVec3=eb.zpp_pool;eb.zpp_pool=null}eb.setxyz(ea,ed,ec);eb.zpp_inner.immutable=false;eb.zpp_inner._validate=null;return eb};q.prototype.zpp_inner=null;q.prototype.zpp_pool=null;q.prototype.get_x=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.x};q.prototype.set_x=function(ea){this.zpp_inner.x=ea;var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}return this.zpp_inner.x};q.prototype.get_y=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.y};q.prototype.set_y=function(eb){this.zpp_inner.y=eb;var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.y};q.prototype.get_z=function(){var ea=this.zpp_inner;if(ea._validate!=null){ea._validate()}return this.zpp_inner.z};q.prototype.set_z=function(ea){this.zpp_inner.z=ea;var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}return this.zpp_inner.z};q.prototype.dispose=function(){var ea=this;ea.zpp_pool=au.poolVec3;au.poolVec3=ea};q.prototype.get_length=function(){var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var ee=this.zpp_inner.x;var ek=this.zpp_inner;if(ek._validate!=null){ek._validate()}var ed=ee*this.zpp_inner.x;var ej=this.zpp_inner;if(ej._validate!=null){ej._validate()}var ec=this.zpp_inner.y;var ei=this.zpp_inner;if(ei._validate!=null){ei._validate()}var eb=ed+ec*this.zpp_inner.y;var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}var ea=this.zpp_inner.z;var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}return Math.sqrt(eb+ea*this.zpp_inner.z)};q.prototype.set_length=function(eb){var ez=this.zpp_inner;if(ez._validate!=null){ez._validate()}var eG=this.zpp_inner.x;var eF=this.zpp_inner;if(eF._validate!=null){eF._validate()}var et=eG*this.zpp_inner.x;var eE=this.zpp_inner;if(eE._validate!=null){eE._validate()}var eq=this.zpp_inner.y;var eD=this.zpp_inner;if(eD._validate!=null){eD._validate()}var eo=et+eq*this.zpp_inner.y;var eC=this.zpp_inner;if(eC._validate!=null){eC._validate()}var em=this.zpp_inner.z;var eB=this.zpp_inner;if(eB._validate!=null){eB._validate()}var ef=eb/Math.sqrt(eo+em*this.zpp_inner.z);var ea=this;var eA=ea.zpp_inner;if(eA._validate!=null){eA._validate()}ea.zpp_inner.x=ea.zpp_inner.x*ef;var ex=ea.zpp_inner;if(ex._validate!=null){ex._validate()}var ek=this;var ev=ek.zpp_inner;if(ev._validate!=null){ev._validate()}ek.zpp_inner.y=ek.zpp_inner.y*ef;var es=ek.zpp_inner;if(es._validate!=null){es._validate()}var eh=this;var ey=eh.zpp_inner;if(ey._validate!=null){ey._validate()}eh.zpp_inner.z=eh.zpp_inner.z*ef;var ew=eh.zpp_inner;if(ew._validate!=null){ew._validate()}var eu=this.zpp_inner;if(eu._validate!=null){eu._validate()}var ej=this.zpp_inner.x;var er=this.zpp_inner;if(er._validate!=null){er._validate()}var eg=ej*this.zpp_inner.x;var ep=this.zpp_inner;if(ep._validate!=null){ep._validate()}var ee=this.zpp_inner.y;var en=this.zpp_inner;if(en._validate!=null){en._validate()}var ed=eg+ee*this.zpp_inner.y;var el=this.zpp_inner;if(el._validate!=null){el._validate()}var ec=this.zpp_inner.z;var ei=this.zpp_inner;if(ei._validate!=null){ei._validate()}return Math.sqrt(ed+ec*this.zpp_inner.z)};q.prototype.lsq=function(){var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var ee=this.zpp_inner.x;var ek=this.zpp_inner;if(ek._validate!=null){ek._validate()}var ed=ee*this.zpp_inner.x;var ej=this.zpp_inner;if(ej._validate!=null){ej._validate()}var ec=this.zpp_inner.y;var ei=this.zpp_inner;if(ei._validate!=null){ei._validate()}var eb=ed+ec*this.zpp_inner.y;var eg=this.zpp_inner;if(eg._validate!=null){eg._validate()}var ea=this.zpp_inner.z;var ef=this.zpp_inner;if(ef._validate!=null){ef._validate()}return eb+ea*this.zpp_inner.z};q.prototype.set=function(ea){var ef=ea.zpp_inner;if(ef._validate!=null){ef._validate()}var eb=ea.zpp_inner.x;var ee=ea.zpp_inner;if(ee._validate!=null){ee._validate()}var ed=ea.zpp_inner.y;var ec=ea.zpp_inner;if(ec._validate!=null){ec._validate()}return this.setxyz(eb,ed,ea.zpp_inner.z)};q.prototype.setxyz=function(ea,ef,ed){this.zpp_inner.x=ea;var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}this.zpp_inner.y=ef;var ec=this.zpp_inner;if(ec._validate!=null){ec._validate()}this.zpp_inner.z=ed;var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}return this};q.prototype.xy=function(ec){if(ec==null){ec=false}var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}var ek=this.zpp_inner.x;var eh=this.zpp_inner;if(eh._validate!=null){eh._validate()}var ei=this.zpp_inner.y;var eg;if(au.poolVec2==null){eg=new r()}else{eg=au.poolVec2;au.poolVec2=eg.zpp_pool;eg.zpp_pool=null}if(eg.zpp_inner==null){var ej;if(bB.zpp_pool==null){ej=new bB()}else{ej=bB.zpp_pool;bB.zpp_pool=ej.next;ej.next=null}ej.weak=false;ej._immutable=false;ej.x=ek;ej.y=ei;eg.zpp_inner=ej;eg.zpp_inner.outer=eg}else{var ea;var ef=eg.zpp_inner;if(ef._validate!=null){ef._validate()}if(eg.zpp_inner.x==ek){var ed=eg.zpp_inner;if(ed._validate!=null){ed._validate()}ea=eg.zpp_inner.y==ei}else{ea=false}if(!ea){eg.zpp_inner.x=ek;eg.zpp_inner.y=ei;var eb=eg.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}}eg.zpp_inner.weak=ec;return eg};q.prototype.toString=function(){var ee=this.zpp_inner;if(ee._validate!=null){ee._validate()}var ea="{ x: "+this.zpp_inner.x+" y: ";var ed=this.zpp_inner;if(ed._validate!=null){ed._validate()}var ec=ea+this.zpp_inner.y+" z: ";var eb=this.zpp_inner;if(eb._validate!=null){eb._validate()}return ec+this.zpp_inner.z+" }"};Object.defineProperty(q.prototype,"x",{get:q.prototype.get_x,set:q.prototype.set_x});Object.defineProperty(q.prototype,"y",{get:q.prototype.get_y,set:q.prototype.set_y});Object.defineProperty(q.prototype,"z",{get:q.prototype.get_z,set:q.prototype.set_z});Object.defineProperty(q.prototype,"length",{get:q.prototype.get_length,set:q.prototype.set_length});q.prototype.__class__=q;var X=nape.geom.Winding=function(){};X.__name__=["nape","geom","Winding"];X.UNDEFINED=null;X.get_UNDEFINED=function(){if(br.Winding_UNDEFINED==null){br.internal=true;br.Winding_UNDEFINED=new X();br.internal=false}return br.Winding_UNDEFINED};X.CLOCKWISE=null;X.get_CLOCKWISE=function(){if(br.Winding_CLOCKWISE==null){br.internal=true;br.Winding_CLOCKWISE=new X();br.internal=false}return br.Winding_CLOCKWISE};X.ANTICLOCKWISE=null;X.get_ANTICLOCKWISE=function(){if(br.Winding_ANTICLOCKWISE==null){br.internal=true;br.Winding_ANTICLOCKWISE=new X();br.internal=false}return br.Winding_ANTICLOCKWISE};X.prototype.toString=function(){if(br.Winding_UNDEFINED==null){br.internal=true;br.Winding_UNDEFINED=new X();br.internal=false}if(this==br.Winding_UNDEFINED){return"UNDEFINED"}else{if(br.Winding_CLOCKWISE==null){br.internal=true;br.Winding_CLOCKWISE=new X();br.internal=false}if(this==br.Winding_CLOCKWISE){return"CLOCKWISE"}else{if(br.Winding_ANTICLOCKWISE==null){br.internal=true;br.Winding_ANTICLOCKWISE=new X();br.internal=false}if(this==br.Winding_ANTICLOCKWISE){return"ANTICLOCKWISE"}else{return""}}}};Object.defineProperty(X,"UNDEFINED",{get:X.get_UNDEFINED});Object.defineProperty(X,"CLOCKWISE",{get:X.get_CLOCKWISE});Object.defineProperty(X,"ANTICLOCKWISE",{get:X.get_ANTICLOCKWISE});X.prototype.__class__=X;var a6=nape.phys.Interactor=function(){this.zpp_inner_i=null};a6.__name__=["nape","phys","Interactor"];a6.prototype.zpp_inner_i=null;a6.prototype.get_id=function(){return this.zpp_inner_i.id};a6.prototype.get_userData=function(){if(this.zpp_inner_i.userData==null){this.zpp_inner_i.userData={}}return this.zpp_inner_i.userData};a6.prototype.isShape=function(){return this.zpp_inner_i.ishape!=null};a6.prototype.isBody=function(){return this.zpp_inner_i.ibody!=null};a6.prototype.isCompound=function(){return this.zpp_inner_i.icompound!=null};a6.prototype.get_castShape=function(){if(this.zpp_inner_i.ishape!=null){return this.zpp_inner_i.ishape.outer}else{return null}};a6.prototype.get_castBody=function(){if(this.zpp_inner_i.ibody!=null){return this.zpp_inner_i.ibody.outer}else{return null}};a6.prototype.get_castCompound=function(){if(this.zpp_inner_i.icompound!=null){return this.zpp_inner_i.icompound.outer}else{return null}};a6.prototype.get_group=function(){if(this.zpp_inner_i.group==null){return null}else{return this.zpp_inner_i.group.outer}};a6.prototype.set_group=function(ea){this.zpp_inner_i.immutable_midstep("Interactor::group");this.zpp_inner_i.setGroup(ea==null?null:ea.zpp_inner);if(this.zpp_inner_i.group==null){return null}else{return this.zpp_inner_i.group.outer}};a6.prototype.get_cbTypes=function(){if(this.zpp_inner_i.wrap_cbTypes==null){this.zpp_inner_i.setupcbTypes()}return this.zpp_inner_i.wrap_cbTypes};a6.prototype.toString=function(){return""};Object.defineProperty(a6.prototype,"id",{get:a6.prototype.get_id});Object.defineProperty(a6.prototype,"userData",{get:a6.prototype.get_userData});Object.defineProperty(a6.prototype,"castShape",{get:a6.prototype.get_castShape});Object.defineProperty(a6.prototype,"castBody",{get:a6.prototype.get_castBody});Object.defineProperty(a6.prototype,"castCompound",{get:a6.prototype.get_castCompound});Object.defineProperty(a6.prototype,"group",{get:a6.prototype.get_group,set:a6.prototype.set_group});Object.defineProperty(a6.prototype,"cbTypes",{get:a6.prototype.get_cbTypes});a6.prototype.__class__=a6;var at=nape.phys.Body=function(ee,ea){this.debugDraw=true;this.zpp_inner=null;a6.call(this);this.zpp_inner=new cj();this.zpp_inner.outer=this;this.zpp_inner.outer_i=this;this.zpp_inner_i=this.zpp_inner;if(ea!=null){var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}this.zpp_inner.posx=ea.zpp_inner.x;var ef=ea.zpp_inner;if(ef._validate!=null){ef._validate()}this.zpp_inner.posy=ea.zpp_inner.y}else{this.zpp_inner.posx=0;this.zpp_inner.posy=0}var ec;if(ee==null){if(br.BodyType_DYNAMIC==null){br.internal=true;br.BodyType_DYNAMIC=new cU();br.internal=false}ec=br.BodyType_DYNAMIC}else{ec=ee}this.zpp_inner.immutable_midstep("Body::type");if(cj.types[this.zpp_inner.type]!=ec){var ed;if(br.BodyType_DYNAMIC==null){br.internal=true;br.BodyType_DYNAMIC=new cU();br.internal=false}if(ec==br.BodyType_DYNAMIC){ed=2}else{if(br.BodyType_KINEMATIC==null){br.internal=true;br.BodyType_KINEMATIC=new cU();br.internal=false}if(ec==br.BodyType_KINEMATIC){ed=3}else{ed=1}}if(ed==1&&this.zpp_inner.space!=null){this.zpp_inner.velx=0;this.zpp_inner.vely=0;this.zpp_inner.angvel=0}this.zpp_inner.invalidate_type();if(this.zpp_inner.space!=null){this.zpp_inner.space.transmitType(this.zpp_inner,ed)}else{this.zpp_inner.type=ed}}if(ea!=null){if(ea.zpp_inner.weak){var eb=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}}this.zpp_inner_i.insert_cbtype(db.ANY_BODY.zpp_inner)};at.__name__=["nape","phys","Body"];at.__super__=a6;at.prototype=Object.create(a6.prototype);at.prototype.zpp_inner=null;at.prototype.debugDraw=null;at.prototype.get_type=function(){return cj.types[this.zpp_inner.type]};at.prototype.set_type=function(eb){this.zpp_inner.immutable_midstep("Body::type");if(cj.types[this.zpp_inner.type]!=eb){var ea;if(br.BodyType_DYNAMIC==null){br.internal=true;br.BodyType_DYNAMIC=new cU();br.internal=false}if(eb==br.BodyType_DYNAMIC){ea=2}else{if(br.BodyType_KINEMATIC==null){br.internal=true;br.BodyType_KINEMATIC=new cU();br.internal=false}if(eb==br.BodyType_KINEMATIC){ea=3}else{ea=1}}if(ea==1&&this.zpp_inner.space!=null){this.zpp_inner.velx=0;this.zpp_inner.vely=0;this.zpp_inner.angvel=0}this.zpp_inner.invalidate_type();if(this.zpp_inner.space!=null){this.zpp_inner.space.transmitType(this.zpp_inner,ea)}else{this.zpp_inner.type=ea}}return cj.types[this.zpp_inner.type]};at.prototype.get_isBullet=function(){return this.zpp_inner.bulletEnabled};at.prototype.set_isBullet=function(ea){this.zpp_inner.bulletEnabled=ea;return this.zpp_inner.bulletEnabled};at.prototype.get_disableCCD=function(){return this.zpp_inner.disableCCD};at.prototype.set_disableCCD=function(ea){this.zpp_inner.disableCCD=ea;return this.zpp_inner.disableCCD};at.prototype.integrate=function(eg){this.zpp_inner.immutable_midstep("Body::space");if(eg==0){return this}var ek=this.zpp_inner;ek.sweepTime=0;ek.sweep_angvel=ek.angvel;var ej=eg-ek.sweepTime;if(ej!=0){ek.sweepTime=eg;ek.posx+=ek.velx*ej;ek.posy+=ek.vely*ej;if(ek.angvel!=0){var ed=ek.sweep_angvel*ej;ek.rot+=ed;if(ed*ed>0.0001){ek.axisx=Math.sin(ek.rot);ek.axisy=Math.cos(ek.rot)}else{var ea=ed*ed;var eb=1-0.5*ea;var ee=1-ea*ea/8;var ef=(eb*ek.axisx+ed*ek.axisy)*ee;ek.axisy=(eb*ek.axisy-ed*ek.axisx)*ee;ek.axisx=ef}}}var ec=ek.shapes.head;while(ec!=null){var el=ec.elt;if(el.type==1){el.polygon.invalidate_gverts();el.polygon.invalidate_gaxi()}el.invalidate_worldCOM();ec=ec.next}ek.zip_worldCOM=true;ek.zip_axis=true;var eh=ek.shapes.head;while(eh!=null){var ei=eh.elt;if(ei.type==1){ei.polygon.invalidate_gverts();ei.polygon.invalidate_gaxi()}ei.invalidate_worldCOM();eh=eh.next}ek.zip_worldCOM=true;ek.sweepTime=0;return this};at.prototype.isStatic=function(){return this.zpp_inner.type==1};at.prototype.isDynamic=function(){return this.zpp_inner.type==2};at.prototype.isKinematic=function(){return this.zpp_inner.type==3};at.prototype.get_shapes=function(){return this.zpp_inner.wrap_shapes};at.prototype.get_compound=function(){if(this.zpp_inner.compound==null){return null}else{return this.zpp_inner.compound.outer}};at.prototype.set_compound=function(ea){if((this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer)!=ea){if((this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer)!=null){(this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer).zpp_inner.wrap_bodies.remove(this)}if(ea!=null){var eb=ea.zpp_inner.wrap_bodies;if(eb.zpp_inner.reverse_flag){eb.push(this)}else{eb.unshift(this)}}}if(this.zpp_inner.compound==null){return null}else{return this.zpp_inner.compound.outer}};at.prototype.get_space=function(){if(this.zpp_inner.space==null){return null}else{return this.zpp_inner.space.outer}};at.prototype.set_space=function(ea){this.zpp_inner.immutable_midstep("Body::space");if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=ea){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){this.zpp_inner.component.woken=false}if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){(this.zpp_inner.space==null?null:this.zpp_inner.space.outer).zpp_inner.wrap_bodies.remove(this)}if(ea!=null){var eb=ea.zpp_inner.wrap_bodies;if(eb.zpp_inner.reverse_flag){eb.push(this)}else{eb.unshift(this)}}}if(this.zpp_inner.space==null){return null}else{return this.zpp_inner.space.outer}};at.prototype.get_arbiters=function(){if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}return this.zpp_inner.wrap_arbiters};at.prototype.get_isSleeping=function(){return this.zpp_inner.component.sleeping};at.prototype.get_constraints=function(){if(this.zpp_inner.wrap_constraints==null){this.zpp_inner.wrap_constraints=aZ.get(this.zpp_inner.constraints,true)}return this.zpp_inner.wrap_constraints};at.prototype.copy=function(){return this.zpp_inner.copy()};at.prototype.get_position=function(){if(this.zpp_inner.wrap_pos==null){this.zpp_inner.setupPosition()}return this.zpp_inner.wrap_pos};at.prototype.set_position=function(ec){if(this.zpp_inner.wrap_pos==null){this.zpp_inner.setupPosition()}var ee=this.zpp_inner.wrap_pos;var eh=ec.zpp_inner;if(eh._validate!=null){eh._validate()}var ej=ec.zpp_inner.x;var eg=ec.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ec.zpp_inner.y;var ea;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ej){var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}ea=ee.zpp_inner.y==ei}else{ea=false}if(!ea){ee.zpp_inner.x=ej;ee.zpp_inner.y=ei;var eb=ee.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ec.zpp_inner.weak){var ek=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner.wrap_pos==null){this.zpp_inner.setupPosition()}return this.zpp_inner.wrap_pos};at.prototype.get_velocity=function(){if(this.zpp_inner.wrap_vel==null){this.zpp_inner.setupVelocity()}return this.zpp_inner.wrap_vel};at.prototype.set_velocity=function(ea){if(this.zpp_inner.wrap_vel==null){this.zpp_inner.setupVelocity()}var ee=this.zpp_inner.wrap_vel;var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}var ej=ea.zpp_inner.x;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ea.zpp_inner.y;var eb;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ej){var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}eb=ee.zpp_inner.y==ei}else{eb=false}if(!eb){ee.zpp_inner.x=ej;ee.zpp_inner.y=ei;var ec=ee.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}if(ea.zpp_inner.weak){var ek=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner.wrap_vel==null){this.zpp_inner.setupVelocity()}return this.zpp_inner.wrap_vel};at.prototype.setVelocityFromTarget=function(ee,ec,el){var eq=1/el;if(this.zpp_inner.wrap_vel==null){this.zpp_inner.setupVelocity()}var ej=this.zpp_inner.wrap_vel;if(this.zpp_inner.wrap_pos==null){this.zpp_inner.setupPosition()}var ed=ee.sub(this.zpp_inner.wrap_pos,true).muleq(eq);var em=ed.zpp_inner;if(em._validate!=null){em._validate()}var eo=ed.zpp_inner.x;var ek=ed.zpp_inner;if(ek._validate!=null){ek._validate()}var en=ed.zpp_inner.y;var ef;var ei=ej.zpp_inner;if(ei._validate!=null){ei._validate()}if(ej.zpp_inner.x==eo){var eh=ej.zpp_inner;if(eh._validate!=null){eh._validate()}ef=ej.zpp_inner.y==en}else{ef=false}if(!ef){ej.zpp_inner.x=eo;ej.zpp_inner.y=en;var eg=ej.zpp_inner;if(eg._invalidate!=null){eg._invalidate(eg)}}if(ed.zpp_inner.weak){var ep=ed.zpp_inner;ed.zpp_inner.outer=null;ed.zpp_inner=null;ed.zpp_pool=au.poolVec2;au.poolVec2=ed;if(ep.outer!=null){ep.outer.zpp_inner=null;ep.outer=null}ep._isimmutable=null;ep._validate=null;ep._invalidate=null;ep.next=bB.zpp_pool;bB.zpp_pool=ep}var eb=(ec-this.zpp_inner.rot)*eq;if(this.zpp_inner.angvel!=eb){this.zpp_inner.angvel=eb;this.zpp_inner.wake()}if(ee.zpp_inner.weak){var ea=ee.zpp_inner;ee.zpp_inner.outer=null;ee.zpp_inner=null;ee.zpp_pool=au.poolVec2;au.poolVec2=ee;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}return this};at.prototype.get_kinematicVel=function(){if(this.zpp_inner.wrap_kinvel==null){this.zpp_inner.setupkinvel()}return this.zpp_inner.wrap_kinvel};at.prototype.set_kinematicVel=function(eh){if(this.zpp_inner.wrap_kinvel==null){this.zpp_inner.setupkinvel()}var ed=this.zpp_inner.wrap_kinvel;var eg=eh.zpp_inner;if(eg._validate!=null){eg._validate()}var ej=eh.zpp_inner.x;var ef=eh.zpp_inner;if(ef._validate!=null){ef._validate()}var ei=eh.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ej){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==ei}else{ea=false}if(!ea){ed.zpp_inner.x=ej;ed.zpp_inner.y=ei;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(eh.zpp_inner.weak){var ek=eh.zpp_inner;eh.zpp_inner.outer=null;eh.zpp_inner=null;eh.zpp_pool=au.poolVec2;au.poolVec2=eh;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner.wrap_kinvel==null){this.zpp_inner.setupkinvel()}return this.zpp_inner.wrap_kinvel};at.prototype.get_surfaceVel=function(){if(this.zpp_inner.wrap_svel==null){this.zpp_inner.setupsvel()}return this.zpp_inner.wrap_svel};at.prototype.set_surfaceVel=function(ed){if(this.zpp_inner.wrap_svel==null){this.zpp_inner.setupsvel()}var ee=this.zpp_inner.wrap_svel;var eh=ed.zpp_inner;if(eh._validate!=null){eh._validate()}var ej=ed.zpp_inner.x;var eg=ed.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ed.zpp_inner.y;var ea;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ej){var ec=ee.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ee.zpp_inner.y==ei}else{ea=false}if(!ea){ee.zpp_inner.x=ej;ee.zpp_inner.y=ei;var eb=ee.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ed.zpp_inner.weak){var ek=ed.zpp_inner;ed.zpp_inner.outer=null;ed.zpp_inner=null;ed.zpp_pool=au.poolVec2;au.poolVec2=ed;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner.wrap_svel==null){this.zpp_inner.setupsvel()}return this.zpp_inner.wrap_svel};at.prototype.get_force=function(){if(this.zpp_inner.wrap_force==null){this.zpp_inner.setupForce()}return this.zpp_inner.wrap_force};at.prototype.set_force=function(ea){if(this.zpp_inner.wrap_force==null){this.zpp_inner.setupForce()}var ee=this.zpp_inner.wrap_force;var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}var ej=ea.zpp_inner.x;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ea.zpp_inner.y;var eb;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ej){var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}eb=ee.zpp_inner.y==ei}else{eb=false}if(!eb){ee.zpp_inner.x=ej;ee.zpp_inner.y=ei;var ec=ee.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}if(ea.zpp_inner.weak){var ek=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner.wrap_force==null){this.zpp_inner.setupForce()}return this.zpp_inner.wrap_force};at.prototype.get_constraintVelocity=function(){if(this.zpp_inner.wrapcvel==null){this.zpp_inner.setup_cvel()}return this.zpp_inner.wrapcvel};at.prototype.get_rotation=function(){return this.zpp_inner.rot};at.prototype.set_rotation=function(eb){this.zpp_inner.immutable_midstep("Body::rotation");if(this.zpp_inner.rot!=eb){this.zpp_inner.rot=eb;var ed=this.zpp_inner;ed.zip_axis=true;var ea=ed.shapes.head;while(ea!=null){var ec=ea.elt;if(ec.type==1){ec.polygon.invalidate_gverts();ec.polygon.invalidate_gaxi()}ec.invalidate_worldCOM();ea=ea.next}ed.zip_worldCOM=true;this.zpp_inner.wake()}return this.zpp_inner.rot};at.prototype.get_angularVel=function(){return this.zpp_inner.angvel};at.prototype.set_angularVel=function(ea){if(this.zpp_inner.angvel!=ea){this.zpp_inner.angvel=ea;this.zpp_inner.wake()}return this.zpp_inner.angvel};at.prototype.get_kinAngVel=function(){return this.zpp_inner.kinangvel};at.prototype.set_kinAngVel=function(ea){if(this.zpp_inner.kinangvel!=ea){this.zpp_inner.kinangvel=ea;this.zpp_inner.wake()}return this.zpp_inner.kinangvel};at.prototype.get_torque=function(){return this.zpp_inner.torque};at.prototype.set_torque=function(ea){if(this.zpp_inner.torque!=ea){this.zpp_inner.torque=ea;this.zpp_inner.wake()}return this.zpp_inner.torque};at.prototype.get_bounds=function(){return this.zpp_inner.aabb.wrapper()};at.prototype.get_allowMovement=function(){return !this.zpp_inner.nomove};at.prototype.set_allowMovement=function(ea){this.zpp_inner.immutable_midstep("Body::"+(ea==null?"null":""+ea));if(!this.zpp_inner.nomove!=ea){this.zpp_inner.nomove=!ea;this.zpp_inner.invalidate_mass()}return !this.zpp_inner.nomove};at.prototype.get_allowRotation=function(){return !this.zpp_inner.norotate};at.prototype.set_allowRotation=function(ea){this.zpp_inner.immutable_midstep("Body::"+(ea==null?"null":""+ea));if(!this.zpp_inner.norotate!=ea){this.zpp_inner.norotate=!ea;this.zpp_inner.invalidate_inertia()}return !this.zpp_inner.norotate};at.prototype.get_massMode=function(){if(br.MassMode_DEFAULT==null){br.internal=true;br.MassMode_DEFAULT=new by();br.internal=false}var ea=br.MassMode_DEFAULT;if(br.MassMode_FIXED==null){br.internal=true;br.MassMode_FIXED=new by();br.internal=false}return[ea,br.MassMode_FIXED][this.zpp_inner.massMode]};at.prototype.set_massMode=function(ea){this.zpp_inner.immutable_midstep("Body::massMode");var eb;if(br.MassMode_DEFAULT==null){br.internal=true;br.MassMode_DEFAULT=new by();br.internal=false}if(ea==br.MassMode_DEFAULT){eb=0}else{eb=1}this.zpp_inner.massMode=eb;this.zpp_inner.invalidate_mass();if(br.MassMode_DEFAULT==null){br.internal=true;br.MassMode_DEFAULT=new by();br.internal=false}var ec=br.MassMode_DEFAULT;if(br.MassMode_FIXED==null){br.internal=true;br.MassMode_FIXED=new by();br.internal=false}return[ec,br.MassMode_FIXED][this.zpp_inner.massMode]};at.prototype.get_constraintMass=function(){if(!this.zpp_inner.world){this.zpp_inner.validate_mass()}return this.zpp_inner.smass};at.prototype.get_mass=function(){this.zpp_inner.validate_mass();return this.zpp_inner.cmass};at.prototype.set_mass=function(ea){this.zpp_inner.immutable_midstep("Body::mass");this.zpp_inner.massMode=1;this.zpp_inner.cmass=ea;this.zpp_inner.invalidate_mass();this.zpp_inner.validate_mass();return this.zpp_inner.cmass};at.prototype.get_gravMassMode=function(){if(br.GravMassMode_DEFAULT==null){br.internal=true;br.GravMassMode_DEFAULT=new cw();br.internal=false}var ea=br.GravMassMode_DEFAULT;if(br.GravMassMode_FIXED==null){br.internal=true;br.GravMassMode_FIXED=new cw();br.internal=false}var eb=br.GravMassMode_FIXED;if(br.GravMassMode_SCALED==null){br.internal=true;br.GravMassMode_SCALED=new cw();br.internal=false}return[ea,eb,br.GravMassMode_SCALED][this.zpp_inner.massMode]};at.prototype.set_gravMassMode=function(ea){this.zpp_inner.immutable_midstep("Body::gravMassMode");var eb;if(br.GravMassMode_SCALED==null){br.internal=true;br.GravMassMode_SCALED=new cw();br.internal=false}if(ea==br.GravMassMode_SCALED){eb=2}else{if(br.GravMassMode_DEFAULT==null){br.internal=true;br.GravMassMode_DEFAULT=new cw();br.internal=false}if(ea==br.GravMassMode_DEFAULT){eb=0}else{eb=1}}this.zpp_inner.gravMassMode=eb;this.zpp_inner.invalidate_gravMass();if(br.GravMassMode_DEFAULT==null){br.internal=true;br.GravMassMode_DEFAULT=new cw();br.internal=false}var ed=br.GravMassMode_DEFAULT;if(br.GravMassMode_FIXED==null){br.internal=true;br.GravMassMode_FIXED=new cw();br.internal=false}var ec=br.GravMassMode_FIXED;if(br.GravMassMode_SCALED==null){br.internal=true;br.GravMassMode_SCALED=new cw();br.internal=false}return[ed,ec,br.GravMassMode_SCALED][this.zpp_inner.massMode]};at.prototype.get_gravMass=function(){this.zpp_inner.validate_gravMass();return this.zpp_inner.gravMass};at.prototype.set_gravMass=function(ea){this.zpp_inner.immutable_midstep("Body::gravMass");this.zpp_inner.gravMassMode=1;this.zpp_inner.gravMass=ea;this.zpp_inner.invalidate_gravMass();this.zpp_inner.validate_gravMass();return this.zpp_inner.gravMass};at.prototype.get_gravMassScale=function(){this.zpp_inner.validate_gravMassScale();return this.zpp_inner.gravMassScale};at.prototype.set_gravMassScale=function(ea){this.zpp_inner.immutable_midstep("Body::gravMassScale");this.zpp_inner.gravMassMode=2;this.zpp_inner.gravMassScale=ea;this.zpp_inner.invalidate_gravMassScale();this.zpp_inner.validate_gravMassScale();return this.zpp_inner.gravMassScale};at.prototype.get_inertiaMode=function(){if(br.InertiaMode_DEFAULT==null){br.internal=true;br.InertiaMode_DEFAULT=new be();br.internal=false}var ea=br.InertiaMode_DEFAULT;if(br.InertiaMode_FIXED==null){br.internal=true;br.InertiaMode_FIXED=new be();br.internal=false}return[ea,br.InertiaMode_FIXED][this.zpp_inner.inertiaMode]};at.prototype.set_inertiaMode=function(ec){this.zpp_inner.immutable_midstep("Body::inertiaMode");var ea;if(br.InertiaMode_FIXED==null){br.internal=true;br.InertiaMode_FIXED=new be();br.internal=false}if(ec==br.InertiaMode_FIXED){ea=1}else{ea=0}this.zpp_inner.inertiaMode=ea;this.zpp_inner.invalidate_inertia();if(br.InertiaMode_DEFAULT==null){br.internal=true;br.InertiaMode_DEFAULT=new be();br.internal=false}var eb=br.InertiaMode_DEFAULT;if(br.InertiaMode_FIXED==null){br.internal=true;br.InertiaMode_FIXED=new be();br.internal=false}return[eb,br.InertiaMode_FIXED][this.zpp_inner.inertiaMode]};at.prototype.get_constraintInertia=function(){if(!this.zpp_inner.world){this.zpp_inner.validate_inertia()}return this.zpp_inner.sinertia};at.prototype.get_inertia=function(){this.zpp_inner.validate_inertia();return this.zpp_inner.cinertia};at.prototype.set_inertia=function(ea){this.zpp_inner.immutable_midstep("Body::inertia");this.zpp_inner.inertiaMode=1;this.zpp_inner.cinertia=ea;this.zpp_inner.invalidate_inertia();this.zpp_inner.validate_inertia();return this.zpp_inner.cinertia};at.prototype.connectedBodies=function(eb,ea){if(eb==null){eb=-1}return this.zpp_inner.connectedBodies(eb,ea)};at.prototype.interactingBodies=function(eb,ed,ea){if(ed==null){ed=-1}var ec;if(eb==null){ec=j.COL|j.SENSOR|j.FLUID}else{if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}if(eb==br.InteractionType_COLLISION){ec=j.COL}else{if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}if(eb==br.InteractionType_SENSOR){ec=j.SENSOR}else{ec=j.FLUID}}}return this.zpp_inner.interactingBodies(ec,ed,ea)};at.prototype.crushFactor=function(){var ec=0;var ek;if(au.poolVec2==null){ek=new r()}else{ek=au.poolVec2;au.poolVec2=ek.zpp_pool;ek.zpp_pool=null}if(ek.zpp_inner==null){var es;if(bB.zpp_pool==null){es=new bB()}else{es=bB.zpp_pool;bB.zpp_pool=es.next;es.next=null}es.weak=false;es._immutable=false;es.x=0;es.y=0;ek.zpp_inner=es;ek.zpp_inner.outer=ek}else{var ey;var eb=ek.zpp_inner;if(eb._validate!=null){eb._validate()}if(ek.zpp_inner.x==0){var ew=ek.zpp_inner;if(ew._validate!=null){ew._validate()}ey=ek.zpp_inner.y==0}else{ey=false}if(!ey){ek.zpp_inner.x=0;ek.zpp_inner.y=0;var ev=ek.zpp_inner;if(ev._invalidate!=null){ev._invalidate(ev)}}}ek.zpp_inner.weak=false;var eE=ek;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var eQ=this.zpp_inner.wrap_arbiters.iterator();while(true){eQ.zpp_inner.zpp_inner.valmod();var ed=eQ.zpp_inner.zpp_gl();eQ.zpp_critical=true;var eT;if(eQ.zpp_i<ed){eT=true}else{eQ.zpp_next=d0.zpp_pool;d0.zpp_pool=eQ;eQ.zpp_inner=null;eT=false}if(!eT){break}eQ.zpp_critical=false;var ee=eQ.zpp_inner.at(eQ.zpp_i++).totalImpulse(this);var ea=ee.xy();eE.addeq(ea);var eu=ea.zpp_inner;if(eu._validate!=null){eu._validate()}var eS=ea.zpp_inner.x;var et=ea.zpp_inner;if(et._validate!=null){et._validate()}var eP=eS*ea.zpp_inner.x;var er=ea.zpp_inner;if(er._validate!=null){er._validate()}var eN=ea.zpp_inner.y;var eq=ea.zpp_inner;if(eq._validate!=null){eq._validate()}ec+=Math.sqrt(eP+eN*ea.zpp_inner.y);var ei=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ei.outer!=null){ei.outer.zpp_inner=null;ei.outer=null}ei._isimmutable=null;ei._validate=null;ei._invalidate=null;ei.next=bB.zpp_pool;bB.zpp_pool=ei;ee.dispose()}if(this.zpp_inner.wrap_constraints==null){this.zpp_inner.wrap_constraints=aZ.get(this.zpp_inner.constraints,true)}var eo=this.zpp_inner.wrap_constraints;eo.zpp_inner.valmod();var eF=bO.get(eo);while(true){eF.zpp_inner.zpp_inner.valmod();var em=eF.zpp_inner;em.zpp_inner.valmod();if(em.zpp_inner.zip_length){em.zpp_inner.zip_length=false;em.zpp_inner.user_length=em.zpp_inner.inner.length}var en=em.zpp_inner.user_length;eF.zpp_critical=true;var eL;if(eF.zpp_i<en){eL=true}else{eF.zpp_next=bO.zpp_pool;bO.zpp_pool=eF;eF.zpp_inner=null;eL=false}if(!eL){break}eF.zpp_critical=false;var eJ=eF.zpp_inner.at(eF.zpp_i++).bodyImpulse(this);var ef=eJ.xy();eE.addeq(ef);var el=ef.zpp_inner;if(el._validate!=null){el._validate()}var eI=ef.zpp_inner.x;var eR=ef.zpp_inner;if(eR._validate!=null){eR._validate()}var eG=eI*ef.zpp_inner.x;var eO=ef.zpp_inner;if(eO._validate!=null){eO._validate()}var eC=ef.zpp_inner.y;var eM=ef.zpp_inner;if(eM._validate!=null){eM._validate()}ec+=Math.sqrt(eG+eC*ef.zpp_inner.y);var ez=ef.zpp_inner;ef.zpp_inner.outer=null;ef.zpp_inner=null;ef.zpp_pool=au.poolVec2;au.poolVec2=ef;if(ez.outer!=null){ez.outer.zpp_inner=null;ez.outer=null}ez._isimmutable=null;ez._validate=null;ez._invalidate=null;ez.next=bB.zpp_pool;bB.zpp_pool=ez;eJ.dispose()}var eK=eE.zpp_inner;if(eK._validate!=null){eK._validate()}var eA=eE.zpp_inner.x;var eH=eE.zpp_inner;if(eH._validate!=null){eH._validate()}var ej=eA*eE.zpp_inner.x;var eD=eE.zpp_inner;if(eD._validate!=null){eD._validate()}var eh=eE.zpp_inner.y;var eB=eE.zpp_inner;if(eB._validate!=null){eB._validate()}var eg=ec-Math.sqrt(ej+eh*eE.zpp_inner.y);this.zpp_inner.validate_mass();var ep=eg/(this.zpp_inner.cmass*(this.zpp_inner.space==null?null:this.zpp_inner.space.outer).zpp_inner.pre_dt);var ex=eE.zpp_inner;eE.zpp_inner.outer=null;eE.zpp_inner=null;eE.zpp_pool=au.poolVec2;au.poolVec2=eE;if(ex.outer!=null){ex.outer.zpp_inner=null;ex.outer=null}ex._isimmutable=null;ex._validate=null;ex._invalidate=null;ex.next=bB.zpp_pool;bB.zpp_pool=ex;return ep};at.prototype.localPointToWorld=function(ej,eb){if(eb==null){eb=false}var el=this.zpp_inner;if(el.zip_axis){el.zip_axis=false;el.axisx=Math.sin(el.rot);el.axisy=Math.cos(el.rot)}var ef=0;var ee=0;var eq=ej.zpp_inner;if(eq._validate!=null){eq._validate()}var er=this.zpp_inner.axisy*ej.zpp_inner.x;var ep=ej.zpp_inner;if(ep._validate!=null){ep._validate()}ef=er-this.zpp_inner.axisx*ej.zpp_inner.y;var eo=ej.zpp_inner;if(eo._validate!=null){eo._validate()}var eh=ej.zpp_inner.x*this.zpp_inner.axisx;var en=ej.zpp_inner;if(en._validate!=null){en._validate()}ee=eh+ej.zpp_inner.y*this.zpp_inner.axisy;if(ej.zpp_inner.weak){var es=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(es.outer!=null){es.outer.zpp_inner=null;es.outer=null}es._isimmutable=null;es._validate=null;es._invalidate=null;es.next=bB.zpp_pool;bB.zpp_pool=es}var ed=ef+this.zpp_inner.posx;var ec=ee+this.zpp_inner.posy;var et;if(au.poolVec2==null){et=new r()}else{et=au.poolVec2;au.poolVec2=et.zpp_pool;et.zpp_pool=null}if(et.zpp_inner==null){var ea;if(bB.zpp_pool==null){ea=new bB()}else{ea=bB.zpp_pool;bB.zpp_pool=ea.next;ea.next=null}ea.weak=false;ea._immutable=false;ea.x=ed;ea.y=ec;et.zpp_inner=ea;et.zpp_inner.outer=et}else{var eg;var em=et.zpp_inner;if(em._validate!=null){em._validate()}if(et.zpp_inner.x==ed){var ek=et.zpp_inner;if(ek._validate!=null){ek._validate()}eg=et.zpp_inner.y==ec}else{eg=false}if(!eg){et.zpp_inner.x=ed;et.zpp_inner.y=ec;var ei=et.zpp_inner;if(ei._invalidate!=null){ei._invalidate(ei)}}}et.zpp_inner.weak=eb;return et};at.prototype.worldPointToLocal=function(eo,ef){if(ef==null){ef=false}var eh=this.zpp_inner;if(eh.zip_axis){eh.zip_axis=false;eh.axisx=Math.sin(eh.rot);eh.axisy=Math.cos(eh.rot)}var eb=0;var ea=0;var em=0;var ek=0;var el=eo.zpp_inner;if(el._validate!=null){el._validate()}em=eo.zpp_inner.x-this.zpp_inner.posx;var ej=eo.zpp_inner;if(ej._validate!=null){ej._validate()}ek=eo.zpp_inner.y-this.zpp_inner.posy;eb=em*this.zpp_inner.axisy+ek*this.zpp_inner.axisx;ea=ek*this.zpp_inner.axisy-em*this.zpp_inner.axisx;if(eo.zpp_inner.weak){var ep=eo.zpp_inner;eo.zpp_inner.outer=null;eo.zpp_inner=null;eo.zpp_pool=au.poolVec2;au.poolVec2=eo;if(ep.outer!=null){ep.outer.zpp_inner=null;ep.outer=null}ep._isimmutable=null;ep._validate=null;ep._invalidate=null;ep.next=bB.zpp_pool;bB.zpp_pool=ep}var ei;if(au.poolVec2==null){ei=new r()}else{ei=au.poolVec2;au.poolVec2=ei.zpp_pool;ei.zpp_pool=null}if(ei.zpp_inner==null){var en;if(bB.zpp_pool==null){en=new bB()}else{en=bB.zpp_pool;bB.zpp_pool=en.next;en.next=null}en.weak=false;en._immutable=false;en.x=eb;en.y=ea;ei.zpp_inner=en;ei.zpp_inner.outer=ei}else{var ec;var eg=ei.zpp_inner;if(eg._validate!=null){eg._validate()}if(ei.zpp_inner.x==eb){var ee=ei.zpp_inner;if(ee._validate!=null){ee._validate()}ec=ei.zpp_inner.y==ea}else{ec=false}if(!ec){ei.zpp_inner.x=eb;ei.zpp_inner.y=ea;var ed=ei.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}ei.zpp_inner.weak=ef;return ei};at.prototype.localVectorToWorld=function(ea,ec){if(ec==null){ec=false}var ei=this.zpp_inner;if(ei.zip_axis){ei.zip_axis=false;ei.axisx=Math.sin(ei.rot);ei.axisy=Math.cos(ei.rot)}var ee=0;var ed=0;var eo=ea.zpp_inner;if(eo._validate!=null){eo._validate()}var ep=this.zpp_inner.axisy*ea.zpp_inner.x;var en=ea.zpp_inner;if(en._validate!=null){en._validate()}ee=ep-this.zpp_inner.axisx*ea.zpp_inner.y;var em=ea.zpp_inner;if(em._validate!=null){em._validate()}var eg=ea.zpp_inner.x*this.zpp_inner.axisx;var el=ea.zpp_inner;if(el._validate!=null){el._validate()}ed=eg+ea.zpp_inner.y*this.zpp_inner.axisy;if(ea.zpp_inner.weak){var eq=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eq.outer!=null){eq.outer.zpp_inner=null;eq.outer=null}eq._isimmutable=null;eq._validate=null;eq._invalidate=null;eq.next=bB.zpp_pool;bB.zpp_pool=eq}var er;if(au.poolVec2==null){er=new r()}else{er=au.poolVec2;au.poolVec2=er.zpp_pool;er.zpp_pool=null}if(er.zpp_inner==null){var eb;if(bB.zpp_pool==null){eb=new bB()}else{eb=bB.zpp_pool;bB.zpp_pool=eb.next;eb.next=null}eb.weak=false;eb._immutable=false;eb.x=ee;eb.y=ed;er.zpp_inner=eb;er.zpp_inner.outer=er}else{var ef;var ek=er.zpp_inner;if(ek._validate!=null){ek._validate()}if(er.zpp_inner.x==ee){var ej=er.zpp_inner;if(ej._validate!=null){ej._validate()}ef=er.zpp_inner.y==ed}else{ef=false}if(!ef){er.zpp_inner.x=ee;er.zpp_inner.y=ed;var eh=er.zpp_inner;if(eh._invalidate!=null){eh._invalidate(eh)}}}er.zpp_inner.weak=ec;return er};at.prototype.worldVectorToLocal=function(ea,ec){if(ec==null){ec=false}var ei=this.zpp_inner;if(ei.zip_axis){ei.zip_axis=false;ei.axisx=Math.sin(ei.rot);ei.axisy=Math.cos(ei.rot)}var ee=0;var ed=0;var eo=ea.zpp_inner;if(eo._validate!=null){eo._validate()}var ep=ea.zpp_inner.x*this.zpp_inner.axisy;var en=ea.zpp_inner;if(en._validate!=null){en._validate()}ee=ep+ea.zpp_inner.y*this.zpp_inner.axisx;var em=ea.zpp_inner;if(em._validate!=null){em._validate()}var eg=ea.zpp_inner.y*this.zpp_inner.axisy;var el=ea.zpp_inner;if(el._validate!=null){el._validate()}ed=eg-ea.zpp_inner.x*this.zpp_inner.axisx;if(ea.zpp_inner.weak){var eq=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eq.outer!=null){eq.outer.zpp_inner=null;eq.outer=null}eq._isimmutable=null;eq._validate=null;eq._invalidate=null;eq.next=bB.zpp_pool;bB.zpp_pool=eq}var er;if(au.poolVec2==null){er=new r()}else{er=au.poolVec2;au.poolVec2=er.zpp_pool;er.zpp_pool=null}if(er.zpp_inner==null){var eb;if(bB.zpp_pool==null){eb=new bB()}else{eb=bB.zpp_pool;bB.zpp_pool=eb.next;eb.next=null}eb.weak=false;eb._immutable=false;eb.x=ee;eb.y=ed;er.zpp_inner=eb;er.zpp_inner.outer=er}else{var ef;var ek=er.zpp_inner;if(ek._validate!=null){ek._validate()}if(er.zpp_inner.x==ee){var ej=er.zpp_inner;if(ej._validate!=null){ej._validate()}ef=er.zpp_inner.y==ed}else{ef=false}if(!ef){er.zpp_inner.x=ee;er.zpp_inner.y=ed;var eh=er.zpp_inner;if(eh._invalidate!=null){eh._invalidate(eh)}}}er.zpp_inner.weak=ec;return er};at.prototype.applyImpulse=function(ee,eo,eg){if(eg==null){eg=false}if(eg&&this.zpp_inner.component.sleeping){if(ee.zpp_inner.weak){var eq=ee.zpp_inner;ee.zpp_inner.outer=null;ee.zpp_inner=null;ee.zpp_pool=au.poolVec2;au.poolVec2=ee;if(eq.outer!=null){eq.outer.zpp_inner=null;eq.outer=null}eq._isimmutable=null;eq._validate=null;eq._invalidate=null;eq.next=bB.zpp_pool;bB.zpp_pool=eq}if(eo!=null){if(eo.zpp_inner.weak){var ef=eo.zpp_inner;eo.zpp_inner.outer=null;eo.zpp_inner=null;eo.zpp_pool=au.poolVec2;au.poolVec2=eo;if(ef.outer!=null){ef.outer.zpp_inner=null;ef.outer=null}ef._isimmutable=null;ef._validate=null;ef._invalidate=null;ef.next=bB.zpp_pool;bB.zpp_pool=ef}}return this}this.zpp_inner.validate_mass();var ep=this.zpp_inner.imass;var el=ee.zpp_inner;if(el._validate!=null){el._validate()}this.zpp_inner.velx+=ee.zpp_inner.x*ep;var en=ee.zpp_inner;if(en._validate!=null){en._validate()}this.zpp_inner.vely+=ee.zpp_inner.y*ep;if(eo!=null){var ed=0;var ec=0;var em=eo.zpp_inner;if(em._validate!=null){em._validate()}ed=eo.zpp_inner.x-this.zpp_inner.posx;var ek=eo.zpp_inner;if(ek._validate!=null){ek._validate()}ec=eo.zpp_inner.y-this.zpp_inner.posy;this.zpp_inner.validate_inertia();var ej=ee.zpp_inner;if(ej._validate!=null){ej._validate()}var eh=ee.zpp_inner.y*ed;var ei=ee.zpp_inner;if(ei._validate!=null){ei._validate()}this.zpp_inner.angvel+=(eh-ee.zpp_inner.x*ec)*this.zpp_inner.iinertia;if(eo.zpp_inner.weak){var eb=eo.zpp_inner;eo.zpp_inner.outer=null;eo.zpp_inner=null;eo.zpp_pool=au.poolVec2;au.poolVec2=eo;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}}if(!eg){if(this.zpp_inner.type==2){this.zpp_inner.wake()}}if(ee.zpp_inner.weak){var ea=ee.zpp_inner;ee.zpp_inner.outer=null;ee.zpp_inner=null;ee.zpp_pool=au.poolVec2;au.poolVec2=ee;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}return this};at.prototype.applyAngularImpulse=function(eb,ea){if(ea==null){ea=false}if(ea&&this.zpp_inner.component.sleeping){return this}this.zpp_inner.validate_inertia();this.zpp_inner.angvel+=eb*this.zpp_inner.iinertia;if(!ea){if(this.zpp_inner.type==2){this.zpp_inner.wake()}}return this};at.prototype.translateShapes=function(ed){this.zpp_inner.immutable_midstep("Body::translateShapes()");var ec=ed.zpp_inner.weak;ed.zpp_inner.weak=false;var eb=this.zpp_inner.shapes.head;while(eb!=null){eb.elt.outer.translate(ed);eb=eb.next}ed.zpp_inner.weak=ec;if(ed.zpp_inner.weak){var ea=ed.zpp_inner;ed.zpp_inner.outer=null;ed.zpp_inner=null;ed.zpp_pool=au.poolVec2;au.poolVec2=ed;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}return this};at.prototype.rotateShapes=function(eb){this.zpp_inner.immutable_midstep("Body::rotateShapes()");var ea=this.zpp_inner.shapes.head;while(ea!=null){ea.elt.outer.rotate(eb);ea=ea.next}return this};at.prototype.scaleShapes=function(eb,ea){this.zpp_inner.immutable_midstep("Body::scaleShapes()");var ec=this.zpp_inner.shapes.head;while(ec!=null){ec.elt.outer.scale(eb,ea);ec=ec.next}return this};at.prototype.transformShapes=function(ea){this.zpp_inner.immutable_midstep("Body::transformShapes()");var eb=this.zpp_inner.shapes.head;while(eb!=null){eb.elt.outer.transform(ea);eb=eb.next}return this};at.prototype.align=function(){this.zpp_inner.immutable_midstep("Body::align()");this.zpp_inner.validate_localCOM();var ek=-this.zpp_inner.localCOMx;var ei=-this.zpp_inner.localCOMy;var eg;if(au.poolVec2==null){eg=new r()}else{eg=au.poolVec2;au.poolVec2=eg.zpp_pool;eg.zpp_pool=null}if(eg.zpp_inner==null){var ej;if(bB.zpp_pool==null){ej=new bB()}else{ej=bB.zpp_pool;bB.zpp_pool=ej.next;ej.next=null}ej.weak=false;ej._immutable=false;ej.x=ek;ej.y=ei;eg.zpp_inner=ej;eg.zpp_inner.outer=eg}else{var eb;var ee=eg.zpp_inner;if(ee._validate!=null){ee._validate()}if(eg.zpp_inner.x==ek){var eh=eg.zpp_inner;if(eh._validate!=null){eh._validate()}eb=eg.zpp_inner.y==ei}else{eb=false}if(!eb){eg.zpp_inner.x=ek;eg.zpp_inner.y=ei;var ef=eg.zpp_inner;if(ef._invalidate!=null){ef._invalidate(ef)}}}eg.zpp_inner.weak=false;var en=eg;this.translateShapes(en);var el=this.localVectorToWorld(en);if(this.zpp_inner.wrap_pos==null){this.zpp_inner.setupPosition()}this.zpp_inner.wrap_pos.subeq(el);if(this.zpp_inner.pre_posx<Infinity){var ed=el.zpp_inner;if(ed._validate!=null){ed._validate()}this.zpp_inner.pre_posx-=el.zpp_inner.x;var ec=el.zpp_inner;if(ec._validate!=null){ec._validate()}this.zpp_inner.pre_posy-=el.zpp_inner.y}var em=en.zpp_inner;en.zpp_inner.outer=null;en.zpp_inner=null;en.zpp_pool=au.poolVec2;au.poolVec2=en;if(em.outer!=null){em.outer.zpp_inner=null;em.outer=null}em._isimmutable=null;em._validate=null;em._invalidate=null;em.next=bB.zpp_pool;bB.zpp_pool=em;var ea=el.zpp_inner;el.zpp_inner.outer=null;el.zpp_inner=null;el.zpp_pool=au.poolVec2;au.poolVec2=el;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;return this};at.prototype.rotate=function(eg,es){var eb=eg.zpp_inner.weak;eg.zpp_inner.weak=false;if(this.zpp_inner.wrap_pos==null){this.zpp_inner.setupPosition()}var ec=this.zpp_inner.wrap_pos.sub(eg);ec.rotate(es);var ev=eg.add(ec,true);if(this.zpp_inner.wrap_pos==null){this.zpp_inner.setupPosition()}var el=this.zpp_inner.wrap_pos;var er=ev.zpp_inner;if(er._validate!=null){er._validate()}var ee=ev.zpp_inner.x;var eq=ev.zpp_inner;if(eq._validate!=null){eq._validate()}var ed=ev.zpp_inner.y;var et;var ep=el.zpp_inner;if(ep._validate!=null){ep._validate()}if(el.zpp_inner.x==ee){var eo=el.zpp_inner;if(eo._validate!=null){eo._validate()}et=el.zpp_inner.y==ed}else{et=false}if(!et){el.zpp_inner.x=ee;el.zpp_inner.y=ed;var em=el.zpp_inner;if(em._invalidate!=null){em._invalidate(em)}}if(ev.zpp_inner.weak){var eu=ev.zpp_inner;ev.zpp_inner.outer=null;ev.zpp_inner=null;ev.zpp_pool=au.poolVec2;au.poolVec2=ev;if(eu.outer!=null){eu.outer.zpp_inner=null;eu.outer=null}eu._isimmutable=null;eu._validate=null;eu._invalidate=null;eu.next=bB.zpp_pool;bB.zpp_pool=eu}if(this.zpp_inner.wrap_pos==null){this.zpp_inner.setupPosition()}var en=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(en.outer!=null){en.outer.zpp_inner=null;en.outer=null}en._isimmutable=null;en._validate=null;en._invalidate=null;en.next=bB.zpp_pool;bB.zpp_pool=en;var ea=this;var ei=ea.zpp_inner.rot+es;ea.zpp_inner.immutable_midstep("Body::rotation");if(ea.zpp_inner.rot!=ei){ea.zpp_inner.rot=ei;var ek=ea.zpp_inner;ek.zip_axis=true;var eh=ek.shapes.head;while(eh!=null){var ef=eh.elt;if(ef.type==1){ef.polygon.invalidate_gverts();ef.polygon.invalidate_gaxi()}ef.invalidate_worldCOM();eh=eh.next}ek.zip_worldCOM=true;ea.zpp_inner.wake()}eg.zpp_inner.weak=eb;if(eg.zpp_inner.weak){var ej=eg.zpp_inner;eg.zpp_inner.outer=null;eg.zpp_inner=null;eg.zpp_pool=au.poolVec2;au.poolVec2=eg;if(ej.outer!=null){ej.outer.zpp_inner=null;ej.outer=null}ej._isimmutable=null;ej._validate=null;ej._invalidate=null;ej.next=bB.zpp_pool;bB.zpp_pool=ej}return this};at.prototype.setShapeMaterials=function(eb){this.zpp_inner.immutable_midstep("Body::setShapeMaterials()");var ea=this.zpp_inner.shapes.head;while(ea!=null){var ec=ea.elt.outer;ec.zpp_inner.immutable_midstep("Shape::material");ec.zpp_inner.setMaterial(eb.zpp_inner);ec.zpp_inner.material.wrapper();ea=ea.next}return this};at.prototype.setShapeFilters=function(eb){this.zpp_inner.immutable_midstep("Body::setShapeFilters()");var ea=this.zpp_inner.shapes.head;while(ea!=null){var ec=ea.elt.outer;ec.zpp_inner.immutable_midstep("Shape::filter");ec.zpp_inner.setFilter(eb.zpp_inner);ec.zpp_inner.filter.wrapper();ea=ea.next}return this};at.prototype.setShapeFluidProperties=function(ea){this.zpp_inner.immutable_midstep("Body::setShapeFluidProperties()");var eb=this.zpp_inner.shapes.head;while(eb!=null){var ec=eb.elt.outer;ec.zpp_inner.setFluid(ea.zpp_inner);ec.zpp_inner.immutable_midstep("Shape::fluidProperties");if(ec.zpp_inner.fluidProperties==null){ec.zpp_inner.setFluid(new aM().zpp_inner)}ec.zpp_inner.fluidProperties.wrapper();eb=eb.next}return this};at.prototype.get_localCOM=function(){if(this.zpp_inner.wrap_localCOM==null){var ea=this.zpp_inner.localCOMx;var eh=this.zpp_inner.localCOMy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.zpp_inner.wrap_localCOM=eb;this.zpp_inner.wrap_localCOM.zpp_inner._inuse=true;this.zpp_inner.wrap_localCOM.zpp_inner._immutable=true;this.zpp_inner.wrap_localCOM.zpp_inner._validate=(bo=this.zpp_inner,dX(bo,bo.getlocalCOM))}return this.zpp_inner.wrap_localCOM};at.prototype.get_worldCOM=function(){if(this.zpp_inner.wrap_worldCOM==null){var ea=this.zpp_inner.worldCOMx;var eh=this.zpp_inner.worldCOMy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.zpp_inner.wrap_worldCOM=eb;this.zpp_inner.wrap_worldCOM.zpp_inner._inuse=true;this.zpp_inner.wrap_worldCOM.zpp_inner._immutable=true;this.zpp_inner.wrap_worldCOM.zpp_inner._validate=(bo=this.zpp_inner,dX(bo,bo.getworldCOM))}return this.zpp_inner.wrap_worldCOM};at.prototype.normalImpulse=function(eg,eb){if(eb==null){eb=false}var en=0;var el=0;var ej=0;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var ef=this.zpp_inner.wrap_arbiters.iterator();while(true){ef.zpp_inner.zpp_inner.valmod();var ed=ef.zpp_inner.zpp_gl();ef.zpp_critical=true;var ee;if(ef.zpp_i<ed){ee=true}else{ef.zpp_next=d0.zpp_pool;d0.zpp_pool=ef;ef.zpp_inner=null;ee=false}if(!ee){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++).zpp_inner;if(ec.type!=j.COL){continue}if(eg!=null&&ec.b2!=eg.zpp_inner&&ec.b1!=eg.zpp_inner){continue}var ei=ec.wrapper();var ea=(ei.zpp_inner.type==j.COL?ei.zpp_inner.colarb.outer_zn:null).normalImpulse(this,eb);var em=ea.zpp_inner;if(em._validate!=null){em._validate()}en+=ea.zpp_inner.x;var ek=ea.zpp_inner;if(ek._validate!=null){ek._validate()}el+=ea.zpp_inner.y;var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}ej+=ea.zpp_inner.z;ea.dispose()}return q.get(en,el,ej)};at.prototype.tangentImpulse=function(eg,eb){if(eb==null){eb=false}var en=0;var el=0;var ej=0;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var ef=this.zpp_inner.wrap_arbiters.iterator();while(true){ef.zpp_inner.zpp_inner.valmod();var ed=ef.zpp_inner.zpp_gl();ef.zpp_critical=true;var ee;if(ef.zpp_i<ed){ee=true}else{ef.zpp_next=d0.zpp_pool;d0.zpp_pool=ef;ef.zpp_inner=null;ee=false}if(!ee){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++).zpp_inner;if(ec.type!=j.COL){continue}if(eg!=null&&ec.b2!=eg.zpp_inner&&ec.b1!=eg.zpp_inner){continue}var ei=ec.wrapper();var ea=(ei.zpp_inner.type==j.COL?ei.zpp_inner.colarb.outer_zn:null).tangentImpulse(this,eb);var em=ea.zpp_inner;if(em._validate!=null){em._validate()}en+=ea.zpp_inner.x;var ek=ea.zpp_inner;if(ek._validate!=null){ek._validate()}el+=ea.zpp_inner.y;var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}ej+=ea.zpp_inner.z;ea.dispose()}return q.get(en,el,ej)};at.prototype.totalContactsImpulse=function(eg,eb){if(eb==null){eb=false}var en=0;var el=0;var ej=0;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var ef=this.zpp_inner.wrap_arbiters.iterator();while(true){ef.zpp_inner.zpp_inner.valmod();var ed=ef.zpp_inner.zpp_gl();ef.zpp_critical=true;var ee;if(ef.zpp_i<ed){ee=true}else{ef.zpp_next=d0.zpp_pool;d0.zpp_pool=ef;ef.zpp_inner=null;ee=false}if(!ee){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++).zpp_inner;if(ec.type!=j.COL){continue}if(eg!=null&&ec.b2!=eg.zpp_inner&&ec.b1!=eg.zpp_inner){continue}var ei=ec.wrapper();var ea=(ei.zpp_inner.type==j.COL?ei.zpp_inner.colarb.outer_zn:null).totalImpulse(this,eb);var em=ea.zpp_inner;if(em._validate!=null){em._validate()}en+=ea.zpp_inner.x;var ek=ea.zpp_inner;if(ek._validate!=null){ek._validate()}el+=ea.zpp_inner.y;var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}ej+=ea.zpp_inner.z;ea.dispose()}return q.get(en,el,ej)};at.prototype.rollingImpulse=function(ea,eb){if(eb==null){eb=false}var ec=0;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var eg=this.zpp_inner.wrap_arbiters.iterator();while(true){eg.zpp_inner.zpp_inner.valmod();var ef=eg.zpp_inner.zpp_gl();eg.zpp_critical=true;var ed;if(eg.zpp_i<ef){ed=true}else{eg.zpp_next=d0.zpp_pool;d0.zpp_pool=eg;eg.zpp_inner=null;ed=false}if(!ed){break}eg.zpp_critical=false;var ee=eg.zpp_inner.at(eg.zpp_i++).zpp_inner;if(ee.type!=j.COL){continue}if(ea!=null&&ee.b2!=ea.zpp_inner&&ee.b1!=ea.zpp_inner){continue}var eh=ee.wrapper();ec+=(eh.zpp_inner.type==j.COL?eh.zpp_inner.colarb.outer_zn:null).rollingImpulse(this,eb)}return ec};at.prototype.buoyancyImpulse=function(ef){var em=0;var ek=0;var ei=0;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var ee=this.zpp_inner.wrap_arbiters.iterator();while(true){ee.zpp_inner.zpp_inner.valmod();var eb=ee.zpp_inner.zpp_gl();ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=d0.zpp_pool;d0.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;var ec=ee.zpp_inner.at(ee.zpp_i++).zpp_inner;if(ec.type!=j.FLUID){continue}if(ef!=null&&ec.b2!=ef.zpp_inner&&ec.b1!=ef.zpp_inner){continue}var eh=ec.wrapper();var ea=(eh.zpp_inner.type==j.FLUID?eh.zpp_inner.fluidarb.outer_zn:null).buoyancyImpulse(this);var el=ea.zpp_inner;if(el._validate!=null){el._validate()}em+=ea.zpp_inner.x;var ej=ea.zpp_inner;if(ej._validate!=null){ej._validate()}ek+=ea.zpp_inner.y;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}ei+=ea.zpp_inner.z;ea.dispose()}return q.get(em,ek,ei)};at.prototype.dragImpulse=function(ef){var em=0;var ek=0;var ei=0;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var ee=this.zpp_inner.wrap_arbiters.iterator();while(true){ee.zpp_inner.zpp_inner.valmod();var eb=ee.zpp_inner.zpp_gl();ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=d0.zpp_pool;d0.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;var ec=ee.zpp_inner.at(ee.zpp_i++).zpp_inner;if(ec.type!=j.FLUID){continue}if(ef!=null&&ec.b2!=ef.zpp_inner&&ec.b1!=ef.zpp_inner){continue}var eh=ec.wrapper();var ea=(eh.zpp_inner.type==j.FLUID?eh.zpp_inner.fluidarb.outer_zn:null).dragImpulse(this);var el=ea.zpp_inner;if(el._validate!=null){el._validate()}em+=ea.zpp_inner.x;var ej=ea.zpp_inner;if(ej._validate!=null){ej._validate()}ek+=ea.zpp_inner.y;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}ei+=ea.zpp_inner.z;ea.dispose()}return q.get(em,ek,ei)};at.prototype.totalFluidImpulse=function(ef){var em=0;var ek=0;var ei=0;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var ee=this.zpp_inner.wrap_arbiters.iterator();while(true){ee.zpp_inner.zpp_inner.valmod();var eb=ee.zpp_inner.zpp_gl();ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=d0.zpp_pool;d0.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;var ec=ee.zpp_inner.at(ee.zpp_i++).zpp_inner;if(ec.type!=j.FLUID){continue}if(ef!=null&&ec.b2!=ef.zpp_inner&&ec.b1!=ef.zpp_inner){continue}var eh=ec.wrapper();var ea=(eh.zpp_inner.type==j.FLUID?eh.zpp_inner.fluidarb.outer_zn:null).totalImpulse(this);var el=ea.zpp_inner;if(el._validate!=null){el._validate()}em+=ea.zpp_inner.x;var ej=ea.zpp_inner;if(ej._validate!=null){ej._validate()}ek+=ea.zpp_inner.y;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}ei+=ea.zpp_inner.z;ea.dispose()}return q.get(em,ek,ei)};at.prototype.constraintsImpulse=function(){var ec=0;var eb=0;var ea=0;var ee=this.zpp_inner.constraints.head;while(ee!=null){var ed=ee.elt.outer.bodyImpulse(this);var eh=ed.zpp_inner;if(eh._validate!=null){eh._validate()}ec+=ed.zpp_inner.x;var eg=ed.zpp_inner;if(eg._validate!=null){eg._validate()}eb+=ed.zpp_inner.y;var ef=ed.zpp_inner;if(ef._validate!=null){ef._validate()}ea+=ed.zpp_inner.z;ed.dispose();ee=ee.next}return q.get(ec,eb,ea)};at.prototype.totalImpulse=function(ef,eg){if(eg==null){eg=false}var en=0;var em=0;var ek=0;if(this.zpp_inner.wrap_arbiters==null){this.zpp_inner.wrap_arbiters=U.get(this.zpp_inner.arbiters,true)}var eb=this.zpp_inner.wrap_arbiters.iterator();while(true){eb.zpp_inner.zpp_inner.valmod();var ec=eb.zpp_inner.zpp_gl();eb.zpp_critical=true;var es;if(eb.zpp_i<ec){es=true}else{eb.zpp_next=d0.zpp_pool;d0.zpp_pool=eb;eb.zpp_inner=null;es=false}if(!es){break}eb.zpp_critical=false;var ee=eb.zpp_inner.at(eb.zpp_i++).zpp_inner;if(ee.type==j.SENSOR){continue}if(ef!=null&&ee.b2!=ef.zpp_inner&&ee.b1!=ef.zpp_inner){continue}var eq=ee.wrapper().totalImpulse(this,eg);var ei=eq.zpp_inner;if(ei._validate!=null){ei._validate()}en+=eq.zpp_inner.x;var er=eq.zpp_inner;if(er._validate!=null){er._validate()}em+=eq.zpp_inner.y;var ep=eq.zpp_inner;if(ep._validate!=null){ep._validate()}ek+=eq.zpp_inner.z;eq.dispose()}var eh=this.zpp_inner.constraints.head;while(eh!=null){var ed=eh.elt;if(ed.active){var ea=ed.outer.bodyImpulse(this);var eo=ea.zpp_inner;if(eo._validate!=null){eo._validate()}en+=ea.zpp_inner.x;var el=ea.zpp_inner;if(el._validate!=null){el._validate()}em+=ea.zpp_inner.y;var ej=ea.zpp_inner;if(ej._validate!=null){ej._validate()}ek+=ea.zpp_inner.z;ea.dispose()}eh=eh.next}return q.get(en,em,ek)};at.prototype.contains=function(eb){var ea=eb.zpp_inner.weak;eb.zpp_inner.weak=false;var ee;ee=false;var ed=this.zpp_inner.shapes.head;while(ed!=null){if(ed.elt.outer.contains(eb)){ee=true;break}ed=ed.next}eb.zpp_inner.weak=ea;if(eb.zpp_inner.weak){var ec=eb.zpp_inner;eb.zpp_inner.outer=null;eb.zpp_inner=null;eb.zpp_pool=au.poolVec2;au.poolVec2=eb;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec._isimmutable=null;ec._validate=null;ec._invalidate=null;ec.next=bB.zpp_pool;bB.zpp_pool=ec}return ee};at.prototype.toString=function(){return(this.zpp_inner.world?"(space::world":"("+(this.zpp_inner.type==2?"dynamic":this.zpp_inner.type==1?"static":"kinematic"))+")#"+this.zpp_inner_i.id};Object.defineProperty(at.prototype,"type",{get:at.prototype.get_type,set:at.prototype.set_type});Object.defineProperty(at.prototype,"isBullet",{get:at.prototype.get_isBullet,set:at.prototype.set_isBullet});Object.defineProperty(at.prototype,"disableCCD",{get:at.prototype.get_disableCCD,set:at.prototype.set_disableCCD});Object.defineProperty(at.prototype,"shapes",{get:at.prototype.get_shapes});Object.defineProperty(at.prototype,"compound",{get:at.prototype.get_compound,set:at.prototype.set_compound});Object.defineProperty(at.prototype,"space",{get:at.prototype.get_space,set:at.prototype.set_space});Object.defineProperty(at.prototype,"arbiters",{get:at.prototype.get_arbiters});Object.defineProperty(at.prototype,"isSleeping",{get:at.prototype.get_isSleeping});Object.defineProperty(at.prototype,"constraints",{get:at.prototype.get_constraints});Object.defineProperty(at.prototype,"position",{get:at.prototype.get_position,set:at.prototype.set_position});Object.defineProperty(at.prototype,"velocity",{get:at.prototype.get_velocity,set:at.prototype.set_velocity});Object.defineProperty(at.prototype,"kinematicVel",{get:at.prototype.get_kinematicVel,set:at.prototype.set_kinematicVel});Object.defineProperty(at.prototype,"surfaceVel",{get:at.prototype.get_surfaceVel,set:at.prototype.set_surfaceVel});Object.defineProperty(at.prototype,"force",{get:at.prototype.get_force,set:at.prototype.set_force});Object.defineProperty(at.prototype,"constraintVelocity",{get:at.prototype.get_constraintVelocity});Object.defineProperty(at.prototype,"rotation",{get:at.prototype.get_rotation,set:at.prototype.set_rotation});Object.defineProperty(at.prototype,"angularVel",{get:at.prototype.get_angularVel,set:at.prototype.set_angularVel});Object.defineProperty(at.prototype,"kinAngVel",{get:at.prototype.get_kinAngVel,set:at.prototype.set_kinAngVel});Object.defineProperty(at.prototype,"torque",{get:at.prototype.get_torque,set:at.prototype.set_torque});Object.defineProperty(at.prototype,"bounds",{get:at.prototype.get_bounds});Object.defineProperty(at.prototype,"allowMovement",{get:at.prototype.get_allowMovement,set:at.prototype.set_allowMovement});Object.defineProperty(at.prototype,"allowRotation",{get:at.prototype.get_allowRotation,set:at.prototype.set_allowRotation});Object.defineProperty(at.prototype,"massMode",{get:at.prototype.get_massMode,set:at.prototype.set_massMode});Object.defineProperty(at.prototype,"constraintMass",{get:at.prototype.get_constraintMass});Object.defineProperty(at.prototype,"mass",{get:at.prototype.get_mass,set:at.prototype.set_mass});Object.defineProperty(at.prototype,"gravMassMode",{get:at.prototype.get_gravMassMode,set:at.prototype.set_gravMassMode});Object.defineProperty(at.prototype,"gravMass",{get:at.prototype.get_gravMass,set:at.prototype.set_gravMass});Object.defineProperty(at.prototype,"gravMassScale",{get:at.prototype.get_gravMassScale,set:at.prototype.set_gravMassScale});Object.defineProperty(at.prototype,"inertiaMode",{get:at.prototype.get_inertiaMode,set:at.prototype.set_inertiaMode});Object.defineProperty(at.prototype,"constraintInertia",{get:at.prototype.get_constraintInertia});Object.defineProperty(at.prototype,"inertia",{get:at.prototype.get_inertia,set:at.prototype.set_inertia});Object.defineProperty(at.prototype,"localCOM",{get:at.prototype.get_localCOM});Object.defineProperty(at.prototype,"worldCOM",{get:at.prototype.get_worldCOM});at.prototype.__class__=at;var aX=nape.phys.BodyIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};aX.__name__=["nape","phys","BodyIterator"];aX.get=function(ec){var ea;if(aX.zpp_pool==null){b0.internal=true;var ed=new aX();b0.internal=false;ea=ed}else{var eb=aX.zpp_pool;aX.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};aX.prototype.zpp_inner=null;aX.prototype.zpp_i=null;aX.prototype.zpp_critical=null;aX.prototype.zpp_next=null;aX.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=aX.zpp_pool;aX.zpp_pool=this;this.zpp_inner=null;return false}};aX.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};aX.prototype.__class__=aX;var a5=nape.phys.BodyList=function(){this.zpp_inner=null;this.zpp_inner=new b0();this.zpp_inner.outer=this};a5.__name__=["nape","phys","BodyList"];a5.fromArray=function(ed){var ea=new a5();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};a5.prototype.zpp_inner=null;a5.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};a5.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};a5.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer};a5.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};a5.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};a5.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer};a5.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer};a5.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};a5.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};a5.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};a5.prototype.empty=function(){return this.zpp_inner.inner.head==null};a5.prototype.iterator=function(){this.zpp_inner.valmod();return aX.get(this)};a5.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new a5();this.zpp_inner.valmod();var ef=aX.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=aX.zpp_pool;aX.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};a5.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=aX.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=aX.zpp_pool;aX.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};a5.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=aX.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=aX.zpp_pool;aX.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};a5.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=aX.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=aX.zpp_pool;aX.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=aX.zpp_pool;aX.zpp_pool=ec;ec.zpp_inner=null;break}}return this};a5.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(a5.prototype,"length",{get:a5.prototype.get_length});a5.prototype.__class__=a5;var cU=nape.phys.BodyType=function(){};cU.__name__=["nape","phys","BodyType"];cU.STATIC=null;cU.get_STATIC=function(){if(br.BodyType_STATIC==null){br.internal=true;br.BodyType_STATIC=new cU();br.internal=false}return br.BodyType_STATIC};cU.DYNAMIC=null;cU.get_DYNAMIC=function(){if(br.BodyType_DYNAMIC==null){br.internal=true;br.BodyType_DYNAMIC=new cU();br.internal=false}return br.BodyType_DYNAMIC};cU.KINEMATIC=null;cU.get_KINEMATIC=function(){if(br.BodyType_KINEMATIC==null){br.internal=true;br.BodyType_KINEMATIC=new cU();br.internal=false}return br.BodyType_KINEMATIC};cU.prototype.toString=function(){if(br.BodyType_STATIC==null){br.internal=true;br.BodyType_STATIC=new cU();br.internal=false}if(this==br.BodyType_STATIC){return"STATIC"}else{if(br.BodyType_DYNAMIC==null){br.internal=true;br.BodyType_DYNAMIC=new cU();br.internal=false}if(this==br.BodyType_DYNAMIC){return"DYNAMIC"}else{if(br.BodyType_KINEMATIC==null){br.internal=true;br.BodyType_KINEMATIC=new cU();br.internal=false}if(this==br.BodyType_KINEMATIC){return"KINEMATIC"}else{return""}}}};Object.defineProperty(cU,"STATIC",{get:cU.get_STATIC});Object.defineProperty(cU,"DYNAMIC",{get:cU.get_DYNAMIC});Object.defineProperty(cU,"KINEMATIC",{get:cU.get_KINEMATIC});cU.prototype.__class__=cU;var dq=nape.phys.Compound=function(){this.zpp_inner=null;a6.call(this);this.zpp_inner=new cQ();this.zpp_inner.outer=this;this.zpp_inner.outer_i=this;this.zpp_inner_i=this.zpp_inner;this.zpp_inner.insert_cbtype(db.ANY_COMPOUND.zpp_inner)};dq.__name__=["nape","phys","Compound"];dq.__super__=a6;dq.prototype=Object.create(a6.prototype);dq.prototype.zpp_inner=null;dq.prototype.get_bodies=function(){return this.zpp_inner.wrap_bodies};dq.prototype.get_constraints=function(){return this.zpp_inner.wrap_constraints};dq.prototype.get_compounds=function(){return this.zpp_inner.wrap_compounds};dq.prototype.get_compound=function(){if(this.zpp_inner.compound==null){return null}else{return this.zpp_inner.compound.outer}};dq.prototype.set_compound=function(ea){this.zpp_inner.immutable_midstep("Compound::compound");if((this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer)!=ea){if((this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer)!=null){(this.zpp_inner.compound==null?null:this.zpp_inner.compound.outer).zpp_inner.wrap_compounds.remove(this)}if(ea!=null){var eb=ea.zpp_inner.wrap_compounds;if(eb.zpp_inner.reverse_flag){eb.push(this)}else{eb.unshift(this)}}}if(this.zpp_inner.compound==null){return null}else{return this.zpp_inner.compound.outer}};dq.prototype.get_space=function(){if(this.zpp_inner.space==null){return null}else{return this.zpp_inner.space.outer}};dq.prototype.set_space=function(ea){this.zpp_inner.immutable_midstep("Compound::space");if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=ea){if((this.zpp_inner.space==null?null:this.zpp_inner.space.outer)!=null){(this.zpp_inner.space==null?null:this.zpp_inner.space.outer).zpp_inner.wrap_compounds.remove(this)}if(ea!=null){var eb=ea.zpp_inner.wrap_compounds;if(eb.zpp_inner.reverse_flag){eb.push(this)}else{eb.unshift(this)}}}if(this.zpp_inner.space==null){return null}else{return this.zpp_inner.space.outer}};dq.prototype.toString=function(){return"Compound"+this.zpp_inner_i.id};dq.prototype.copy=function(){return this.zpp_inner.copy()};dq.prototype.breakApart=function(){this.zpp_inner.breakApart()};dq.prototype.visitBodies=function(eh){var eg=this.zpp_inner.wrap_bodies;eg.zpp_inner.valmod();var ee=aX.get(eg);while(true){ee.zpp_inner.zpp_inner.valmod();var ej=ee.zpp_inner;ej.zpp_inner.valmod();if(ej.zpp_inner.zip_length){ej.zpp_inner.zip_length=false;ej.zpp_inner.user_length=ej.zpp_inner.inner.length}var eb=ej.zpp_inner.user_length;ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=aX.zpp_pool;aX.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;eh(ee.zpp_inner.at(ee.zpp_i++))}var ei=this.zpp_inner.wrap_compounds;ei.zpp_inner.valmod();var ek=c4.get(ei);while(true){ek.zpp_inner.zpp_inner.valmod();var ef=ek.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ea=ef.zpp_inner.user_length;ek.zpp_critical=true;var ec;if(ek.zpp_i<ea){ec=true}else{ek.zpp_next=c4.zpp_pool;c4.zpp_pool=ek;ek.zpp_inner=null;ec=false}if(!ec){break}ek.zpp_critical=false;ek.zpp_inner.at(ek.zpp_i++).visitBodies(eh)}};dq.prototype.visitConstraints=function(eh){var eg=this.zpp_inner.wrap_constraints;eg.zpp_inner.valmod();var ee=bO.get(eg);while(true){ee.zpp_inner.zpp_inner.valmod();var ej=ee.zpp_inner;ej.zpp_inner.valmod();if(ej.zpp_inner.zip_length){ej.zpp_inner.zip_length=false;ej.zpp_inner.user_length=ej.zpp_inner.inner.length}var eb=ej.zpp_inner.user_length;ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=bO.zpp_pool;bO.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;eh(ee.zpp_inner.at(ee.zpp_i++))}var ei=this.zpp_inner.wrap_compounds;ei.zpp_inner.valmod();var ek=c4.get(ei);while(true){ek.zpp_inner.zpp_inner.valmod();var ef=ek.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ea=ef.zpp_inner.user_length;ek.zpp_critical=true;var ec;if(ek.zpp_i<ea){ec=true}else{ek.zpp_next=c4.zpp_pool;c4.zpp_pool=ek;ek.zpp_inner=null;ec=false}if(!ec){break}ek.zpp_critical=false;ek.zpp_inner.at(ek.zpp_i++).visitConstraints(eh)}};dq.prototype.visitCompounds=function(ea){var eg=this.zpp_inner.wrap_compounds;eg.zpp_inner.valmod();var ee=c4.get(eg);while(true){ee.zpp_inner.zpp_inner.valmod();var ed=ee.zpp_inner;ed.zpp_inner.valmod();if(ed.zpp_inner.zip_length){ed.zpp_inner.zip_length=false;ed.zpp_inner.user_length=ed.zpp_inner.inner.length}var ec=ed.zpp_inner.user_length;ee.zpp_critical=true;var eb;if(ee.zpp_i<ec){eb=true}else{ee.zpp_next=c4.zpp_pool;c4.zpp_pool=ee;ee.zpp_inner=null;eb=false}if(!eb){break}ee.zpp_critical=false;var ef=ee.zpp_inner.at(ee.zpp_i++);ea(ef);ef.visitCompounds(ea)}};dq.prototype.COM=function(eb){if(eb==null){eb=false}var ee;if(au.poolVec2==null){ee=new r()}else{ee=au.poolVec2;au.poolVec2=ee.zpp_pool;ee.zpp_pool=null}if(ee.zpp_inner==null){var ei;if(bB.zpp_pool==null){ei=new bB()}else{ei=bB.zpp_pool;bB.zpp_pool=ei.next;ei.next=null}ei.weak=false;ei._immutable=false;ei.x=0;ei.y=0;ee.zpp_inner=ei;ee.zpp_inner.outer=ee}else{var ea;var ec=ee.zpp_inner;if(ec._validate!=null){ec._validate()}if(ee.zpp_inner.x==0){var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}ea=ee.zpp_inner.y==0}else{ea=false}if(!ea){ee.zpp_inner.x=0;ee.zpp_inner.y=0;var ed=ee.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}ee.zpp_inner.weak=eb;var eg=ee;var eh=0;this.visitBodies(function(er){if(er.zpp_inner.wrap_shapes.zpp_inner.inner.head!=null){if(er.zpp_inner.wrap_worldCOM==null){var es=er.zpp_inner.worldCOMx;var eq=er.zpp_inner.worldCOMy;var ep;if(au.poolVec2==null){ep=new r()}else{ep=au.poolVec2;au.poolVec2=ep.zpp_pool;ep.zpp_pool=null}if(ep.zpp_inner==null){var eo;if(bB.zpp_pool==null){eo=new bB()}else{eo=bB.zpp_pool;bB.zpp_pool=eo.next;eo.next=null}eo.weak=false;eo._immutable=false;eo.x=es;eo.y=eq;ep.zpp_inner=eo;ep.zpp_inner.outer=ep}else{var ek;var en=ep.zpp_inner;if(en._validate!=null){en._validate()}if(ep.zpp_inner.x==es){var em=ep.zpp_inner;if(em._validate!=null){em._validate()}ek=ep.zpp_inner.y==eq}else{ek=false}if(!ek){ep.zpp_inner.x=es;ep.zpp_inner.y=eq;var el=ep.zpp_inner;if(el._invalidate!=null){el._invalidate(el)}}}ep.zpp_inner.weak=false;er.zpp_inner.wrap_worldCOM=ep;er.zpp_inner.wrap_worldCOM.zpp_inner._inuse=true;er.zpp_inner.wrap_worldCOM.zpp_inner._immutable=true;er.zpp_inner.wrap_worldCOM.zpp_inner._validate=(bo=er.zpp_inner,dX(bo,bo.getworldCOM))}var ej=er.zpp_inner.wrap_worldCOM;er.zpp_inner.validate_mass();eg.addeq(ej.mul(er.zpp_inner.cmass,true));er.zpp_inner.validate_mass();eh+=er.zpp_inner.cmass}});eg.muleq(1/eh);return eg};dq.prototype.translate=function(ed){var eb=ed.zpp_inner.weak;ed.zpp_inner.weak=false;this.visitBodies(function(ee){if(ee.zpp_inner.wrap_pos==null){ee.zpp_inner.setupPosition()}ee.zpp_inner.wrap_pos.addeq(ed)});ed.zpp_inner.weak=eb;if(ed.zpp_inner.weak){var ea=ed.zpp_inner;ed.zpp_inner.outer=null;ed.zpp_inner=null;var ec=ed;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}return this};dq.prototype.rotate=function(eb,ee){var ec=eb.zpp_inner.weak;eb.zpp_inner.weak=false;this.visitBodies(function(ef){ef.rotate(eb,ee)});eb.zpp_inner.weak=ec;if(eb.zpp_inner.weak){var ea=eb.zpp_inner;eb.zpp_inner.outer=null;eb.zpp_inner=null;var ed=eb;ed.zpp_pool=au.poolVec2;au.poolVec2=ed;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}return this};Object.defineProperty(dq.prototype,"bodies",{get:dq.prototype.get_bodies});Object.defineProperty(dq.prototype,"constraints",{get:dq.prototype.get_constraints});Object.defineProperty(dq.prototype,"compounds",{get:dq.prototype.get_compounds});Object.defineProperty(dq.prototype,"compound",{get:dq.prototype.get_compound,set:dq.prototype.set_compound});Object.defineProperty(dq.prototype,"space",{get:dq.prototype.get_space,set:dq.prototype.set_space});dq.prototype.__class__=dq;var c4=nape.phys.CompoundIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};c4.__name__=["nape","phys","CompoundIterator"];c4.get=function(ec){var ea;if(c4.zpp_pool==null){bj.internal=true;var ed=new c4();bj.internal=false;ea=ed}else{var eb=c4.zpp_pool;c4.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};c4.prototype.zpp_inner=null;c4.prototype.zpp_i=null;c4.prototype.zpp_critical=null;c4.prototype.zpp_next=null;c4.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=c4.zpp_pool;c4.zpp_pool=this;this.zpp_inner=null;return false}};c4.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};c4.prototype.__class__=c4;var cB=nape.phys.CompoundList=function(){this.zpp_inner=null;this.zpp_inner=new bj();this.zpp_inner.outer=this};cB.__name__=["nape","phys","CompoundList"];cB.fromArray=function(ed){var ea=new cB();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};cB.prototype.zpp_inner=null;cB.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};cB.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};cB.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer};cB.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};cB.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};cB.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer};cB.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer};cB.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};cB.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};cB.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};cB.prototype.empty=function(){return this.zpp_inner.inner.head==null};cB.prototype.iterator=function(){this.zpp_inner.valmod();return c4.get(this)};cB.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new cB();this.zpp_inner.valmod();var ef=c4.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=c4.zpp_pool;c4.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};cB.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=c4.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=c4.zpp_pool;c4.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};cB.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=c4.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=c4.zpp_pool;c4.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};cB.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=c4.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=c4.zpp_pool;c4.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=c4.zpp_pool;c4.zpp_pool=ec;ec.zpp_inner=null;break}}return this};cB.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(cB.prototype,"length",{get:cB.prototype.get_length});cB.prototype.__class__=cB;var aM=nape.phys.FluidProperties=function(ea,eb){if(eb==null){eb=1}if(ea==null){ea=1}this.zpp_inner=null;if(b6.zpp_pool==null){this.zpp_inner=new b6()}else{this.zpp_inner=b6.zpp_pool;b6.zpp_pool=this.zpp_inner.next;this.zpp_inner.next=null}this.zpp_inner.outer=this;if(ea!=this.zpp_inner.density*1000){this.zpp_inner.density=ea/1000;this.zpp_inner.invalidate()}if(eb!=this.zpp_inner.viscosity){this.zpp_inner.viscosity=eb/1;this.zpp_inner.invalidate()}};aM.__name__=["nape","phys","FluidProperties"];aM.prototype.zpp_inner=null;aM.prototype.get_userData=function(){if(this.zpp_inner.userData==null){this.zpp_inner.userData={}}return this.zpp_inner.userData};aM.prototype.get_shapes=function(){if(this.zpp_inner.wrap_shapes==null){this.zpp_inner.wrap_shapes=aI.get(this.zpp_inner.shapes,true)}return this.zpp_inner.wrap_shapes};aM.prototype.copy=function(){var ei=new aM(this.zpp_inner.density*1000,this.zpp_inner.viscosity);if(this.zpp_inner.userData!=null){ei.zpp_inner.userData=bm.copy(this.zpp_inner.userData)}var em=this.zpp_inner.wrap_gravity;if(em==null){if(ei.zpp_inner.wrap_gravity!=null){ei.zpp_inner.wrap_gravity.zpp_inner._inuse=false;var ef=ei.zpp_inner.wrap_gravity;var en=ef.zpp_inner;ef.zpp_inner.outer=null;ef.zpp_inner=null;ef.zpp_pool=au.poolVec2;au.poolVec2=ef;if(en.outer!=null){en.outer.zpp_inner=null;en.outer=null}en._isimmutable=null;en._validate=null;en._invalidate=null;en.next=bB.zpp_pool;bB.zpp_pool=en;ei.zpp_inner.wrap_gravity=null}}else{if(ei.zpp_inner.wrap_gravity==null){ei.zpp_inner.getgravity()}var ej=ei.zpp_inner.wrap_gravity;var eh=em.zpp_inner;if(eh._validate!=null){eh._validate()}var el=em.zpp_inner.x;var eg=em.zpp_inner;if(eg._validate!=null){eg._validate()}var ek=em.zpp_inner.y;var ec;var ee=ej.zpp_inner;if(ee._validate!=null){ee._validate()}if(ej.zpp_inner.x==el){var ed=ej.zpp_inner;if(ed._validate!=null){ed._validate()}ec=ej.zpp_inner.y==ek}else{ec=false}if(!ec){ej.zpp_inner.x=el;ej.zpp_inner.y=ek;var eb=ej.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(em.zpp_inner.weak){var ea=em.zpp_inner;em.zpp_inner.outer=null;em.zpp_inner=null;em.zpp_pool=au.poolVec2;au.poolVec2=em;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}}return ei};aM.prototype.get_density=function(){return this.zpp_inner.density*1000};aM.prototype.set_density=function(ea){if(ea!=this.zpp_inner.density*1000){this.zpp_inner.density=ea/1000;this.zpp_inner.invalidate()}return this.zpp_inner.density*1000};aM.prototype.get_viscosity=function(){return this.zpp_inner.viscosity};aM.prototype.set_viscosity=function(ea){if(ea!=this.zpp_inner.viscosity){this.zpp_inner.viscosity=ea/1;this.zpp_inner.invalidate()}return this.zpp_inner.viscosity};aM.prototype.get_gravity=function(){return this.zpp_inner.wrap_gravity};aM.prototype.set_gravity=function(el){if(el==null){if(this.zpp_inner.wrap_gravity!=null){this.zpp_inner.wrap_gravity.zpp_inner._inuse=false;var ef=this.zpp_inner.wrap_gravity;var em=ef.zpp_inner;ef.zpp_inner.outer=null;ef.zpp_inner=null;ef.zpp_pool=au.poolVec2;au.poolVec2=ef;if(em.outer!=null){em.outer.zpp_inner=null;em.outer=null}em._isimmutable=null;em._validate=null;em._invalidate=null;em.next=bB.zpp_pool;bB.zpp_pool=em;this.zpp_inner.wrap_gravity=null}}else{if(this.zpp_inner.wrap_gravity==null){this.zpp_inner.getgravity()}var ei=this.zpp_inner.wrap_gravity;var eh=el.zpp_inner;if(eh._validate!=null){eh._validate()}var ek=el.zpp_inner.x;var eg=el.zpp_inner;if(eg._validate!=null){eg._validate()}var ej=el.zpp_inner.y;var ec;var ee=ei.zpp_inner;if(ee._validate!=null){ee._validate()}if(ei.zpp_inner.x==ek){var ed=ei.zpp_inner;if(ed._validate!=null){ed._validate()}ec=ei.zpp_inner.y==ej}else{ec=false}if(!ec){ei.zpp_inner.x=ek;ei.zpp_inner.y=ej;var eb=ei.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(el.zpp_inner.weak){var ea=el.zpp_inner;el.zpp_inner.outer=null;el.zpp_inner=null;el.zpp_pool=au.poolVec2;au.poolVec2=el;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}}return this.zpp_inner.wrap_gravity};aM.prototype.toString=function(){return"{ density: "+this.zpp_inner.density*1000+" viscosity: "+this.zpp_inner.viscosity+" gravity: "+ag.string(this.zpp_inner.wrap_gravity)+" }"};Object.defineProperty(aM.prototype,"userData",{get:aM.prototype.get_userData});Object.defineProperty(aM.prototype,"shapes",{get:aM.prototype.get_shapes});Object.defineProperty(aM.prototype,"density",{get:aM.prototype.get_density,set:aM.prototype.set_density});Object.defineProperty(aM.prototype,"viscosity",{get:aM.prototype.get_viscosity,set:aM.prototype.set_viscosity});Object.defineProperty(aM.prototype,"gravity",{get:aM.prototype.get_gravity,set:aM.prototype.set_gravity});aM.prototype.__class__=aM;var cw=nape.phys.GravMassMode=function(){};cw.__name__=["nape","phys","GravMassMode"];cw.DEFAULT=null;cw.get_DEFAULT=function(){if(br.GravMassMode_DEFAULT==null){br.internal=true;br.GravMassMode_DEFAULT=new cw();br.internal=false}return br.GravMassMode_DEFAULT};cw.FIXED=null;cw.get_FIXED=function(){if(br.GravMassMode_FIXED==null){br.internal=true;br.GravMassMode_FIXED=new cw();br.internal=false}return br.GravMassMode_FIXED};cw.SCALED=null;cw.get_SCALED=function(){if(br.GravMassMode_SCALED==null){br.internal=true;br.GravMassMode_SCALED=new cw();br.internal=false}return br.GravMassMode_SCALED};cw.prototype.toString=function(){if(br.GravMassMode_DEFAULT==null){br.internal=true;br.GravMassMode_DEFAULT=new cw();br.internal=false}if(this==br.GravMassMode_DEFAULT){return"DEFAULT"}else{if(br.GravMassMode_FIXED==null){br.internal=true;br.GravMassMode_FIXED=new cw();br.internal=false}if(this==br.GravMassMode_FIXED){return"FIXED"}else{if(br.GravMassMode_SCALED==null){br.internal=true;br.GravMassMode_SCALED=new cw();br.internal=false}if(this==br.GravMassMode_SCALED){return"SCALED"}else{return""}}}};Object.defineProperty(cw,"DEFAULT",{get:cw.get_DEFAULT});Object.defineProperty(cw,"FIXED",{get:cw.get_FIXED});Object.defineProperty(cw,"SCALED",{get:cw.get_SCALED});cw.prototype.__class__=cw;var be=nape.phys.InertiaMode=function(){};be.__name__=["nape","phys","InertiaMode"];be.DEFAULT=null;be.get_DEFAULT=function(){if(br.InertiaMode_DEFAULT==null){br.internal=true;br.InertiaMode_DEFAULT=new be();br.internal=false}return br.InertiaMode_DEFAULT};be.FIXED=null;be.get_FIXED=function(){if(br.InertiaMode_FIXED==null){br.internal=true;br.InertiaMode_FIXED=new be();br.internal=false}return br.InertiaMode_FIXED};be.prototype.toString=function(){if(br.InertiaMode_DEFAULT==null){br.internal=true;br.InertiaMode_DEFAULT=new be();br.internal=false}if(this==br.InertiaMode_DEFAULT){return"DEFAULT"}else{if(br.InertiaMode_FIXED==null){br.internal=true;br.InertiaMode_FIXED=new be();br.internal=false}if(this==br.InertiaMode_FIXED){return"FIXED"}else{return""}}};Object.defineProperty(be,"DEFAULT",{get:be.get_DEFAULT});Object.defineProperty(be,"FIXED",{get:be.get_FIXED});be.prototype.__class__=be;var ap=nape.phys.InteractorIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};ap.__name__=["nape","phys","InteractorIterator"];ap.get=function(ec){var ea;if(ap.zpp_pool==null){i.internal=true;var ed=new ap();i.internal=false;ea=ed}else{var eb=ap.zpp_pool;ap.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};ap.prototype.zpp_inner=null;ap.prototype.zpp_i=null;ap.prototype.zpp_critical=null;ap.prototype.zpp_next=null;ap.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=ap.zpp_pool;ap.zpp_pool=this;this.zpp_inner=null;return false}};ap.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};ap.prototype.__class__=ap;var dd=nape.phys.InteractorList=function(){this.zpp_inner=null;this.zpp_inner=new i();this.zpp_inner.outer=this};dd.__name__=["nape","phys","InteractorList"];dd.fromArray=function(ed){var ea=new dd();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};dd.prototype.zpp_inner=null;dd.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};dd.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner_i)};dd.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer_i};dd.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner_i)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner_i)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};dd.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner_i)}else{this.zpp_inner.inner.add(ec.zpp_inner_i)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};dd.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer_i;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer_i;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer_i};dd.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer_i;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer_i;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer_i};dd.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};dd.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner_i){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner_i)}this.zpp_inner.invalidate()}return ea};dd.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};dd.prototype.empty=function(){return this.zpp_inner.inner.head==null};dd.prototype.iterator=function(){this.zpp_inner.valmod();return ap.get(this)};dd.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new dd();this.zpp_inner.valmod();var ef=ap.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=ap.zpp_pool;ap.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};dd.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=ap.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=ap.zpp_pool;ap.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};dd.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=ap.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=ap.zpp_pool;ap.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};dd.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=ap.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=ap.zpp_pool;ap.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=ap.zpp_pool;ap.zpp_pool=ec;ec.zpp_inner=null;break}}return this};dd.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(dd.prototype,"length",{get:dd.prototype.get_length});dd.prototype.__class__=dd;var by=nape.phys.MassMode=function(){};by.__name__=["nape","phys","MassMode"];by.DEFAULT=null;by.get_DEFAULT=function(){if(br.MassMode_DEFAULT==null){br.internal=true;br.MassMode_DEFAULT=new by();br.internal=false}return br.MassMode_DEFAULT};by.FIXED=null;by.get_FIXED=function(){if(br.MassMode_FIXED==null){br.internal=true;br.MassMode_FIXED=new by();br.internal=false}return br.MassMode_FIXED};by.prototype.toString=function(){if(br.MassMode_DEFAULT==null){br.internal=true;br.MassMode_DEFAULT=new by();br.internal=false}if(this==br.MassMode_DEFAULT){return"DEFAULT"}else{if(br.MassMode_FIXED==null){br.internal=true;br.MassMode_FIXED=new by();br.internal=false}if(this==br.MassMode_FIXED){return"FIXED"}else{return""}}};Object.defineProperty(by,"DEFAULT",{get:by.get_DEFAULT});Object.defineProperty(by,"FIXED",{get:by.get_FIXED});by.prototype.__class__=by;var dg=nape.phys.Material=function(ec,eb,ee,ea,ed){if(ed==null){ed=0.001}if(ea==null){ea=1}if(ee==null){ee=2}if(eb==null){eb=1}if(ec==null){ec=0}this.zpp_inner=null;if(cJ.zpp_pool==null){this.zpp_inner=new cJ()}else{this.zpp_inner=cJ.zpp_pool;cJ.zpp_pool=this.zpp_inner.next;this.zpp_inner.next=null}this.zpp_inner.outer=this;if(ec!=this.zpp_inner.elasticity){this.zpp_inner.elasticity=ec/1;this.zpp_inner.invalidate(cJ.WAKE|cJ.ARBITERS)}if(eb!=this.zpp_inner.dynamicFriction){this.zpp_inner.dynamicFriction=eb/1;this.zpp_inner.invalidate(cJ.WAKE|cJ.ANGDRAG|cJ.ARBITERS)}if(ee!=this.zpp_inner.staticFriction){this.zpp_inner.staticFriction=ee/1;this.zpp_inner.invalidate(cJ.WAKE|cJ.ARBITERS)}if(ea!=this.zpp_inner.density*1000){this.zpp_inner.density=ea/1000;this.zpp_inner.invalidate(cJ.WAKE|cJ.PROPS)}if(ed!=this.zpp_inner.rollingFriction){this.zpp_inner.rollingFriction=ed/1;this.zpp_inner.invalidate(cJ.WAKE|cJ.ARBITERS)}};dg.__name__=["nape","phys","Material"];dg.wood=function(){return new dg(0.4,0.2,0.38,0.7,0.005)};dg.steel=function(){return new dg(0.2,0.57,0.74,7.8,0.001)};dg.ice=function(){return new dg(0.3,0.03,0.1,0.9,0.0001)};dg.rubber=function(){return new dg(0.8,1,1.4,1.5,0.01)};dg.glass=function(){return new dg(0.4,0.4,0.94,2.6,0.002)};dg.sand=function(){return new dg(-1,0.45,0.6,1.6,16)};dg.prototype.zpp_inner=null;dg.prototype.get_userData=function(){if(this.zpp_inner.userData==null){this.zpp_inner.userData={}}return this.zpp_inner.userData};dg.prototype.get_shapes=function(){if(this.zpp_inner.wrap_shapes==null){this.zpp_inner.wrap_shapes=aI.get(this.zpp_inner.shapes,true)}return this.zpp_inner.wrap_shapes};dg.prototype.copy=function(){var ea=new dg(this.zpp_inner.elasticity,this.zpp_inner.dynamicFriction,this.zpp_inner.staticFriction,this.zpp_inner.density*1000,this.zpp_inner.rollingFriction);if(this.zpp_inner.userData!=null){ea.zpp_inner.userData=bm.copy(this.zpp_inner.userData)}return ea};dg.prototype.get_elasticity=function(){return this.zpp_inner.elasticity};dg.prototype.set_elasticity=function(ea){if(ea!=this.zpp_inner.elasticity){this.zpp_inner.elasticity=ea/1;this.zpp_inner.invalidate(cJ.WAKE|cJ.ARBITERS)}return this.zpp_inner.elasticity};dg.prototype.get_dynamicFriction=function(){return this.zpp_inner.dynamicFriction};dg.prototype.set_dynamicFriction=function(ea){if(ea!=this.zpp_inner.dynamicFriction){this.zpp_inner.dynamicFriction=ea/1;this.zpp_inner.invalidate(cJ.WAKE|cJ.ANGDRAG|cJ.ARBITERS)}return this.zpp_inner.dynamicFriction};dg.prototype.get_staticFriction=function(){return this.zpp_inner.staticFriction};dg.prototype.set_staticFriction=function(ea){if(ea!=this.zpp_inner.staticFriction){this.zpp_inner.staticFriction=ea/1;this.zpp_inner.invalidate(cJ.WAKE|cJ.ARBITERS)}return this.zpp_inner.staticFriction};dg.prototype.get_density=function(){return this.zpp_inner.density*1000};dg.prototype.set_density=function(ea){if(ea!=this.zpp_inner.density*1000){this.zpp_inner.density=ea/1000;this.zpp_inner.invalidate(cJ.WAKE|cJ.PROPS)}return this.zpp_inner.density*1000};dg.prototype.get_rollingFriction=function(){return this.zpp_inner.rollingFriction};dg.prototype.set_rollingFriction=function(ea){if(ea!=this.zpp_inner.rollingFriction){this.zpp_inner.rollingFriction=ea/1;this.zpp_inner.invalidate(cJ.WAKE|cJ.ARBITERS)}return this.zpp_inner.rollingFriction};dg.prototype.toString=function(){return"{ elasticity: "+this.zpp_inner.elasticity+" dynamicFriction: "+this.zpp_inner.dynamicFriction+" staticFriction: "+this.zpp_inner.staticFriction+" density: "+this.zpp_inner.density*1000+" rollingFriction: "+this.zpp_inner.rollingFriction+" }"};Object.defineProperty(dg.prototype,"userData",{get:dg.prototype.get_userData});Object.defineProperty(dg.prototype,"shapes",{get:dg.prototype.get_shapes});Object.defineProperty(dg.prototype,"elasticity",{get:dg.prototype.get_elasticity,set:dg.prototype.set_elasticity});Object.defineProperty(dg.prototype,"dynamicFriction",{get:dg.prototype.get_dynamicFriction,set:dg.prototype.set_dynamicFriction});Object.defineProperty(dg.prototype,"staticFriction",{get:dg.prototype.get_staticFriction,set:dg.prototype.set_staticFriction});Object.defineProperty(dg.prototype,"density",{get:dg.prototype.get_density,set:dg.prototype.set_density});Object.defineProperty(dg.prototype,"rollingFriction",{get:dg.prototype.get_rollingFriction,set:dg.prototype.set_rollingFriction});dg.prototype.__class__=dg;var ck=nape.shape.Shape=function(){this.zpp_inner=null;a6.call(this)};ck.__name__=["nape","shape","Shape"];ck.__super__=a6;ck.prototype=Object.create(a6.prototype);ck.prototype.zpp_inner=null;ck.prototype.get_type=function(){return bZ.types[this.zpp_inner.type]};ck.prototype.isCircle=function(){return this.zpp_inner.type==0};ck.prototype.isPolygon=function(){return this.zpp_inner.type==1};ck.prototype.get_body=function(){if(this.zpp_inner.body!=null){return this.zpp_inner.body.outer}else{return null}};ck.prototype.set_body=function(ea){this.zpp_inner.immutable_midstep("Shape::body");if((this.zpp_inner.body!=null?this.zpp_inner.body.outer:null)!=ea){if(this.zpp_inner.body!=null){(this.zpp_inner.body!=null?this.zpp_inner.body.outer:null).zpp_inner.wrap_shapes.remove(this)}if(ea!=null){var eb=ea.zpp_inner.wrap_shapes;if(eb.zpp_inner.reverse_flag){eb.push(this)}else{eb.unshift(this)}}}if(this.zpp_inner.body!=null){return this.zpp_inner.body.outer}else{return null}};ck.prototype.get_castCircle=function(){if(this.zpp_inner.type==0){return this.zpp_inner.circle.outer_zn}else{return null}};ck.prototype.get_castPolygon=function(){if(this.zpp_inner.type==1){return this.zpp_inner.polygon.outer_zn}else{return null}};ck.prototype.get_worldCOM=function(){if(this.zpp_inner.wrap_worldCOM==null){var ea=this.zpp_inner.worldCOMx;var eh=this.zpp_inner.worldCOMy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.zpp_inner.wrap_worldCOM=eb;this.zpp_inner.wrap_worldCOM.zpp_inner._inuse=true;this.zpp_inner.wrap_worldCOM.zpp_inner._immutable=true;this.zpp_inner.wrap_worldCOM.zpp_inner._validate=(bo=this.zpp_inner,dX(bo,bo.getworldCOM))}return this.zpp_inner.wrap_worldCOM};ck.prototype.get_localCOM=function(){if(this.zpp_inner.wrap_localCOM==null){if(this.zpp_inner.type==0){this.zpp_inner.circle.setupLocalCOM()}else{this.zpp_inner.polygon.setupLocalCOM()}}return this.zpp_inner.wrap_localCOM};ck.prototype.set_localCOM=function(ea){this.zpp_inner.immutable_midstep("Body::localCOM");if(this.zpp_inner.wrap_localCOM==null){if(this.zpp_inner.type==0){this.zpp_inner.circle.setupLocalCOM()}else{this.zpp_inner.polygon.setupLocalCOM()}}var ee=this.zpp_inner.wrap_localCOM;var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}var ej=ea.zpp_inner.x;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ea.zpp_inner.y;var eb;var ef=ee.zpp_inner;if(ef._validate!=null){ef._validate()}if(ee.zpp_inner.x==ej){var ed=ee.zpp_inner;if(ed._validate!=null){ed._validate()}eb=ee.zpp_inner.y==ei}else{eb=false}if(!eb){ee.zpp_inner.x=ej;ee.zpp_inner.y=ei;var ec=ee.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}if(ea.zpp_inner.weak){var ek=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner.wrap_localCOM==null){if(this.zpp_inner.type==0){this.zpp_inner.circle.setupLocalCOM()}else{this.zpp_inner.polygon.setupLocalCOM()}}return this.zpp_inner.wrap_localCOM};ck.prototype.get_area=function(){this.zpp_inner.validate_area_inertia();return this.zpp_inner.area};ck.prototype.get_inertia=function(){this.zpp_inner.validate_area_inertia();return this.zpp_inner.inertia};ck.prototype.get_angDrag=function(){this.zpp_inner.validate_angDrag();return this.zpp_inner.angDrag};ck.prototype.get_material=function(){return this.zpp_inner.material.wrapper()};ck.prototype.set_material=function(ea){this.zpp_inner.immutable_midstep("Shape::material");this.zpp_inner.setMaterial(ea.zpp_inner);return this.zpp_inner.material.wrapper()};ck.prototype.get_filter=function(){return this.zpp_inner.filter.wrapper()};ck.prototype.set_filter=function(ea){this.zpp_inner.immutable_midstep("Shape::filter");this.zpp_inner.setFilter(ea.zpp_inner);return this.zpp_inner.filter.wrapper()};ck.prototype.get_fluidProperties=function(){this.zpp_inner.immutable_midstep("Shape::fluidProperties");if(this.zpp_inner.fluidProperties==null){this.zpp_inner.setFluid(new aM().zpp_inner)}return this.zpp_inner.fluidProperties.wrapper()};ck.prototype.set_fluidProperties=function(ea){this.zpp_inner.setFluid(ea.zpp_inner);this.zpp_inner.immutable_midstep("Shape::fluidProperties");if(this.zpp_inner.fluidProperties==null){this.zpp_inner.setFluid(new aM().zpp_inner)}return this.zpp_inner.fluidProperties.wrapper()};ck.prototype.get_fluidEnabled=function(){return this.zpp_inner.fluidEnabled};ck.prototype.set_fluidEnabled=function(ea){this.zpp_inner.immutable_midstep("Shape::fluidEnabled");this.zpp_inner.fluidEnabled=ea;if(ea&&this.zpp_inner.fluidProperties==null){this.zpp_inner.setFluid(new aM().zpp_inner);this.zpp_inner.immutable_midstep("Shape::fluidProperties");if(this.zpp_inner.fluidProperties==null){this.zpp_inner.setFluid(new aM().zpp_inner)}this.zpp_inner.fluidProperties.wrapper()}this.zpp_inner.wake();return this.zpp_inner.fluidEnabled};ck.prototype.get_sensorEnabled=function(){return this.zpp_inner.sensorEnabled};ck.prototype.set_sensorEnabled=function(ea){this.zpp_inner.immutable_midstep("Shape::sensorEnabled");this.zpp_inner.sensorEnabled=ea;this.zpp_inner.wake();return this.zpp_inner.sensorEnabled};ck.prototype.get_bounds=function(){return this.zpp_inner.aabb.wrapper()};ck.prototype.translate=function(eh){this.zpp_inner.immutable_midstep("Shape::translate()");if(eh.lsq()>0){if(this.zpp_inner.type==0){var eg=eh.zpp_inner;if(eg._validate!=null){eg._validate()}var eb=eh.zpp_inner.x;var ef=eh.zpp_inner;if(ef._validate!=null){ef._validate()}this.zpp_inner.circle.__translate(eb,eh.zpp_inner.y)}else{var ee=eh.zpp_inner;if(ee._validate!=null){ee._validate()}var ed=eh.zpp_inner.x;var ec=eh.zpp_inner;if(ec._validate!=null){ec._validate()}this.zpp_inner.polygon.__translate(ed,eh.zpp_inner.y)}}if(eh.zpp_inner.weak){var ea=eh.zpp_inner;eh.zpp_inner.outer=null;eh.zpp_inner=null;eh.zpp_pool=au.poolVec2;au.poolVec2=eh;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}return this};ck.prototype.scale=function(eb,ea){this.zpp_inner.immutable_midstep("Shape::scale()");if(this.zpp_inner.type==0){var ec=eb*eb-ea*ea;if(ec*ec<P.epsilon*P.epsilon){this.zpp_inner.circle.__scale(eb,ea)}}else{this.zpp_inner.polygon.__scale(eb,ea)}return this};ck.prototype.rotate=function(ec){this.zpp_inner.immutable_midstep("Shape::rotate()");if(ec%(2*Math.PI)!=0){var eb=Math.cos(ec);var ea=Math.sin(ec);if(this.zpp_inner.type==0){this.zpp_inner.circle.__rotate(ea,eb)}else{this.zpp_inner.polygon.__rotate(ea,eb)}}return this};ck.prototype.transform=function(ea){this.zpp_inner.immutable_midstep("Shape::transform()");if(this.zpp_inner.type==0){if(ea.equiorthogonal()){this.zpp_inner.circle.__transform(ea)}}else{this.zpp_inner.polygon.__transform(ea)}return this};ck.prototype.contains=function(ea){bM.validateShape(this.zpp_inner);var ed=ea.zpp_inner;if(ed._validate!=null){ed._validate()}var ec=b7.shapeContains(this.zpp_inner,ea.zpp_inner);if(ea.zpp_inner.weak){var eb=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}return ec};ck.prototype.copy=function(){return this.zpp_inner.copy()};ck.prototype.toString=function(){return(this.zpp_inner.type==0?"Circle":"Polygon")+"#"+this.zpp_inner_i.id};Object.defineProperty(ck.prototype,"type",{get:ck.prototype.get_type});Object.defineProperty(ck.prototype,"body",{get:ck.prototype.get_body,set:ck.prototype.set_body});Object.defineProperty(ck.prototype,"castCircle",{get:ck.prototype.get_castCircle});Object.defineProperty(ck.prototype,"castPolygon",{get:ck.prototype.get_castPolygon});Object.defineProperty(ck.prototype,"worldCOM",{get:ck.prototype.get_worldCOM});Object.defineProperty(ck.prototype,"localCOM",{get:ck.prototype.get_localCOM,set:ck.prototype.set_localCOM});Object.defineProperty(ck.prototype,"area",{get:ck.prototype.get_area});Object.defineProperty(ck.prototype,"inertia",{get:ck.prototype.get_inertia});Object.defineProperty(ck.prototype,"angDrag",{get:ck.prototype.get_angDrag});Object.defineProperty(ck.prototype,"material",{get:ck.prototype.get_material,set:ck.prototype.set_material});Object.defineProperty(ck.prototype,"filter",{get:ck.prototype.get_filter,set:ck.prototype.set_filter});Object.defineProperty(ck.prototype,"fluidProperties",{get:ck.prototype.get_fluidProperties,set:ck.prototype.set_fluidProperties});Object.defineProperty(ck.prototype,"fluidEnabled",{get:ck.prototype.get_fluidEnabled,set:ck.prototype.set_fluidEnabled});Object.defineProperty(ck.prototype,"sensorEnabled",{get:ck.prototype.get_sensorEnabled,set:ck.prototype.set_sensorEnabled});Object.defineProperty(ck.prototype,"bounds",{get:ck.prototype.get_bounds});ck.prototype.__class__=ck;var ds=nape.shape.Circle=function(ea,ec,ee,ed){this.zpp_inner_zn=null;ck.call(this);this.zpp_inner_zn=new di();this.zpp_inner_zn.outer=this;this.zpp_inner_zn.outer_zn=this;this.zpp_inner=this.zpp_inner_zn;this.zpp_inner_i=this.zpp_inner;this.zpp_inner_i.outer_i=this;this.zpp_inner.immutable_midstep("Circle::radius");if(ea!=this.zpp_inner_zn.radius){this.zpp_inner_zn.radius=ea;this.zpp_inner_zn.invalidate_radius()}if(ec==null){this.zpp_inner.localCOMx=0;this.zpp_inner.localCOMy=0}else{var eg=ec.zpp_inner;if(eg._validate!=null){eg._validate()}this.zpp_inner.localCOMx=ec.zpp_inner.x;var ef=ec.zpp_inner;if(ef._validate!=null){ef._validate()}this.zpp_inner.localCOMy=ec.zpp_inner.y;if(ec.zpp_inner.weak){var eb=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}}if(ee==null){if(cJ.zpp_pool==null){this.zpp_inner.material=new cJ()}else{this.zpp_inner.material=cJ.zpp_pool;cJ.zpp_pool=this.zpp_inner.material.next;this.zpp_inner.material.next=null}}else{this.zpp_inner.immutable_midstep("Shape::material");this.zpp_inner.setMaterial(ee.zpp_inner);this.zpp_inner.material.wrapper()}if(ed==null){if(cA.zpp_pool==null){this.zpp_inner.filter=new cA()}else{this.zpp_inner.filter=cA.zpp_pool;cA.zpp_pool=this.zpp_inner.filter.next;this.zpp_inner.filter.next=null}}else{this.zpp_inner.immutable_midstep("Shape::filter");this.zpp_inner.setFilter(ed.zpp_inner);this.zpp_inner.filter.wrapper()}this.zpp_inner_i.insert_cbtype(db.ANY_SHAPE.zpp_inner)};ds.__name__=["nape","shape","Circle"];ds.__super__=ck;ds.prototype=Object.create(ck.prototype);ds.prototype.zpp_inner_zn=null;ds.prototype.get_radius=function(){return this.zpp_inner_zn.radius};ds.prototype.set_radius=function(ea){this.zpp_inner.immutable_midstep("Circle::radius");if(ea!=this.zpp_inner_zn.radius){this.zpp_inner_zn.radius=ea;this.zpp_inner_zn.invalidate_radius()}return this.zpp_inner_zn.radius};Object.defineProperty(ds.prototype,"radius",{get:ds.prototype.get_radius,set:ds.prototype.set_radius});ds.prototype.__class__=ds;var ba=nape.shape.Edge=function(){this.zpp_inner=null};ba.__name__=["nape","shape","Edge"];ba.prototype.zpp_inner=null;ba.prototype.get_polygon=function(){return this.zpp_inner.polygon.outer_zn};ba.prototype.get_localNormal=function(){if(this.zpp_inner.wrap_lnorm==null){this.zpp_inner.getlnorm()}return this.zpp_inner.wrap_lnorm};ba.prototype.get_worldNormal=function(){if(this.zpp_inner.wrap_gnorm==null){this.zpp_inner.getgnorm()}return this.zpp_inner.wrap_gnorm};ba.prototype.get_length=function(){this.zpp_inner.polygon.validate_laxi();return this.zpp_inner.length};ba.prototype.get_localProjection=function(){this.zpp_inner.polygon.validate_laxi();return this.zpp_inner.lprojection};ba.prototype.get_worldProjection=function(){var ee=this.zpp_inner.polygon;if(ee.zip_gaxi){if(ee.body!=null){ee.zip_gaxi=false;ee.validate_laxi();var eh=ee.body;if(eh.zip_axis){eh.zip_axis=false;eh.axisx=Math.sin(eh.rot);eh.axisy=Math.cos(eh.rot)}if(ee.zip_gverts){if(ee.body!=null){ee.zip_gverts=false;ee.validate_lverts();var eg=ee.body;if(eg.zip_axis){eg.zip_axis=false;eg.axisx=Math.sin(eg.rot);eg.axisy=Math.cos(eg.rot)}var el=ee.lverts.next;var eb=ee.gverts.next;while(eb!=null){var ed=eb;var ec=el;el=el.next;ed.x=ee.body.posx+(ee.body.axisy*ec.x-ee.body.axisx*ec.y);ed.y=ee.body.posy+(ec.x*ee.body.axisx+ec.y*ee.body.axisy);eb=eb.next}}}var ea=ee.edges.head;var ej=ee.gverts.next;var em=ej;ej=ej.next;while(ej!=null){var ek=ej;var ef=ea.elt;ea=ea.next;ef.gp0=em;ef.gp1=ek;ef.gnormx=ee.body.axisy*ef.lnormx-ee.body.axisx*ef.lnormy;ef.gnormy=ef.lnormx*ee.body.axisx+ef.lnormy*ee.body.axisy;ef.gprojection=ee.body.posx*ef.gnormx+ee.body.posy*ef.gnormy+ef.lprojection;if(ef.wrap_gnorm!=null){ef.wrap_gnorm.zpp_inner.x=ef.gnormx;ef.wrap_gnorm.zpp_inner.y=ef.gnormy}ef.tp0=ef.gp0.y*ef.gnormx-ef.gp0.x*ef.gnormy;ef.tp1=ef.gp1.y*ef.gnormx-ef.gp1.x*ef.gnormy;em=ek;ej=ej.next}var ei=ea.elt;ei.gp0=em;ei.gp1=ee.gverts.next;ei.gnormx=ee.body.axisy*ei.lnormx-ee.body.axisx*ei.lnormy;ei.gnormy=ei.lnormx*ee.body.axisx+ei.lnormy*ee.body.axisy;ei.gprojection=ee.body.posx*ei.gnormx+ee.body.posy*ei.gnormy+ei.lprojection;if(ei.wrap_gnorm!=null){ei.wrap_gnorm.zpp_inner.x=ei.gnormx;ei.wrap_gnorm.zpp_inner.y=ei.gnormy}ei.tp0=ei.gp0.y*ei.gnormx-ei.gp0.x*ei.gnormy;ei.tp1=ei.gp1.y*ei.gnormx-ei.gp1.x*ei.gnormy}}return this.zpp_inner.gprojection};ba.prototype.get_localVertex1=function(){this.zpp_inner.polygon.validate_laxi();var eb=this.zpp_inner.lp0;if(eb.outer==null){eb.outer=new r();var ea=eb.outer.zpp_inner;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;eb.outer.zpp_inner=eb}return eb.outer};ba.prototype.get_localVertex2=function(){this.zpp_inner.polygon.validate_laxi();var eb=this.zpp_inner.lp1;if(eb.outer==null){eb.outer=new r();var ea=eb.outer.zpp_inner;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;eb.outer.zpp_inner=eb}return eb.outer};ba.prototype.get_worldVertex1=function(){var eg=this.zpp_inner.polygon;if(eg.zip_gaxi){if(eg.body!=null){eg.zip_gaxi=false;eg.validate_laxi();var ej=eg.body;if(ej.zip_axis){ej.zip_axis=false;ej.axisx=Math.sin(ej.rot);ej.axisy=Math.cos(ej.rot)}if(eg.zip_gverts){if(eg.body!=null){eg.zip_gverts=false;eg.validate_lverts();var ei=eg.body;if(ei.zip_axis){ei.zip_axis=false;ei.axisx=Math.sin(ei.rot);ei.axisy=Math.cos(ei.rot)}var en=eg.lverts.next;var ec=eg.gverts.next;while(ec!=null){var ee=ec;var ed=en;en=en.next;ee.x=eg.body.posx+(eg.body.axisy*ed.x-eg.body.axisx*ed.y);ee.y=eg.body.posy+(ed.x*eg.body.axisx+ed.y*eg.body.axisy);ec=ec.next}}}var ea=eg.edges.head;var el=eg.gverts.next;var eo=el;el=el.next;while(el!=null){var em=el;var eh=ea.elt;ea=ea.next;eh.gp0=eo;eh.gp1=em;eh.gnormx=eg.body.axisy*eh.lnormx-eg.body.axisx*eh.lnormy;eh.gnormy=eh.lnormx*eg.body.axisx+eh.lnormy*eg.body.axisy;eh.gprojection=eg.body.posx*eh.gnormx+eg.body.posy*eh.gnormy+eh.lprojection;if(eh.wrap_gnorm!=null){eh.wrap_gnorm.zpp_inner.x=eh.gnormx;eh.wrap_gnorm.zpp_inner.y=eh.gnormy}eh.tp0=eh.gp0.y*eh.gnormx-eh.gp0.x*eh.gnormy;eh.tp1=eh.gp1.y*eh.gnormx-eh.gp1.x*eh.gnormy;eo=em;el=el.next}var ek=ea.elt;ek.gp0=eo;ek.gp1=eg.gverts.next;ek.gnormx=eg.body.axisy*ek.lnormx-eg.body.axisx*ek.lnormy;ek.gnormy=ek.lnormx*eg.body.axisx+ek.lnormy*eg.body.axisy;ek.gprojection=eg.body.posx*ek.gnormx+eg.body.posy*ek.gnormy+ek.lprojection;if(ek.wrap_gnorm!=null){ek.wrap_gnorm.zpp_inner.x=ek.gnormx;ek.wrap_gnorm.zpp_inner.y=ek.gnormy}ek.tp0=ek.gp0.y*ek.gnormx-ek.gp0.x*ek.gnormy;ek.tp1=ek.gp1.y*ek.gnormx-ek.gp1.x*ek.gnormy}}var ef=this.zpp_inner.gp0;if(ef.outer==null){ef.outer=new r();var eb=ef.outer.zpp_inner;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb;ef.outer.zpp_inner=ef}return ef.outer};ba.prototype.get_worldVertex2=function(){var eg=this.zpp_inner.polygon;if(eg.zip_gaxi){if(eg.body!=null){eg.zip_gaxi=false;eg.validate_laxi();var ej=eg.body;if(ej.zip_axis){ej.zip_axis=false;ej.axisx=Math.sin(ej.rot);ej.axisy=Math.cos(ej.rot)}if(eg.zip_gverts){if(eg.body!=null){eg.zip_gverts=false;eg.validate_lverts();var ei=eg.body;if(ei.zip_axis){ei.zip_axis=false;ei.axisx=Math.sin(ei.rot);ei.axisy=Math.cos(ei.rot)}var en=eg.lverts.next;var ec=eg.gverts.next;while(ec!=null){var ee=ec;var ed=en;en=en.next;ee.x=eg.body.posx+(eg.body.axisy*ed.x-eg.body.axisx*ed.y);ee.y=eg.body.posy+(ed.x*eg.body.axisx+ed.y*eg.body.axisy);ec=ec.next}}}var ea=eg.edges.head;var el=eg.gverts.next;var eo=el;el=el.next;while(el!=null){var em=el;var eh=ea.elt;ea=ea.next;eh.gp0=eo;eh.gp1=em;eh.gnormx=eg.body.axisy*eh.lnormx-eg.body.axisx*eh.lnormy;eh.gnormy=eh.lnormx*eg.body.axisx+eh.lnormy*eg.body.axisy;eh.gprojection=eg.body.posx*eh.gnormx+eg.body.posy*eh.gnormy+eh.lprojection;if(eh.wrap_gnorm!=null){eh.wrap_gnorm.zpp_inner.x=eh.gnormx;eh.wrap_gnorm.zpp_inner.y=eh.gnormy}eh.tp0=eh.gp0.y*eh.gnormx-eh.gp0.x*eh.gnormy;eh.tp1=eh.gp1.y*eh.gnormx-eh.gp1.x*eh.gnormy;eo=em;el=el.next}var ek=ea.elt;ek.gp0=eo;ek.gp1=eg.gverts.next;ek.gnormx=eg.body.axisy*ek.lnormx-eg.body.axisx*ek.lnormy;ek.gnormy=ek.lnormx*eg.body.axisx+ek.lnormy*eg.body.axisy;ek.gprojection=eg.body.posx*ek.gnormx+eg.body.posy*ek.gnormy+ek.lprojection;if(ek.wrap_gnorm!=null){ek.wrap_gnorm.zpp_inner.x=ek.gnormx;ek.wrap_gnorm.zpp_inner.y=ek.gnormy}ek.tp0=ek.gp0.y*ek.gnormx-ek.gp0.x*ek.gnormy;ek.tp1=ek.gp1.y*ek.gnormx-ek.gp1.x*ek.gnormy}}var ef=this.zpp_inner.gp1;if(ef.outer==null){ef.outer=new r();var eb=ef.outer.zpp_inner;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb;ef.outer.zpp_inner=ef}return ef.outer};ba.prototype.toString=function(){if(this.zpp_inner.polygon==null){return"Edge(object-pooled)"}else{if(this.zpp_inner.polygon.body==null){this.zpp_inner.polygon.validate_laxi();return"{ localNormal : "+("{ x: "+this.zpp_inner.lnormx+" y: "+this.zpp_inner.lnormy+" }")+" }"}else{var ee=this.zpp_inner.polygon;if(ee.zip_gaxi){if(ee.body!=null){ee.zip_gaxi=false;ee.validate_laxi();var eh=ee.body;if(eh.zip_axis){eh.zip_axis=false;eh.axisx=Math.sin(eh.rot);eh.axisy=Math.cos(eh.rot)}if(ee.zip_gverts){if(ee.body!=null){ee.zip_gverts=false;ee.validate_lverts();var eg=ee.body;if(eg.zip_axis){eg.zip_axis=false;eg.axisx=Math.sin(eg.rot);eg.axisy=Math.cos(eg.rot)}var el=ee.lverts.next;var eb=ee.gverts.next;while(eb!=null){var ed=eb;var ec=el;el=el.next;ed.x=ee.body.posx+(ee.body.axisy*ec.x-ee.body.axisx*ec.y);ed.y=ee.body.posy+(ec.x*ee.body.axisx+ec.y*ee.body.axisy);eb=eb.next}}}var ea=ee.edges.head;var ej=ee.gverts.next;var em=ej;ej=ej.next;while(ej!=null){var ek=ej;var ef=ea.elt;ea=ea.next;ef.gp0=em;ef.gp1=ek;ef.gnormx=ee.body.axisy*ef.lnormx-ee.body.axisx*ef.lnormy;ef.gnormy=ef.lnormx*ee.body.axisx+ef.lnormy*ee.body.axisy;ef.gprojection=ee.body.posx*ef.gnormx+ee.body.posy*ef.gnormy+ef.lprojection;if(ef.wrap_gnorm!=null){ef.wrap_gnorm.zpp_inner.x=ef.gnormx;ef.wrap_gnorm.zpp_inner.y=ef.gnormy}ef.tp0=ef.gp0.y*ef.gnormx-ef.gp0.x*ef.gnormy;ef.tp1=ef.gp1.y*ef.gnormx-ef.gp1.x*ef.gnormy;em=ek;ej=ej.next}var ei=ea.elt;ei.gp0=em;ei.gp1=ee.gverts.next;ei.gnormx=ee.body.axisy*ei.lnormx-ee.body.axisx*ei.lnormy;ei.gnormy=ei.lnormx*ee.body.axisx+ei.lnormy*ee.body.axisy;ei.gprojection=ee.body.posx*ei.gnormx+ee.body.posy*ei.gnormy+ei.lprojection;if(ei.wrap_gnorm!=null){ei.wrap_gnorm.zpp_inner.x=ei.gnormx;ei.wrap_gnorm.zpp_inner.y=ei.gnormy}ei.tp0=ei.gp0.y*ei.gnormx-ei.gp0.x*ei.gnormy;ei.tp1=ei.gp1.y*ei.gnormx-ei.gp1.x*ei.gnormy}}return"{ localNormal : "+("{ x: "+this.zpp_inner.lnormx+" y: "+this.zpp_inner.lnormy+" }")+" worldNormal : "+("{ x: "+this.zpp_inner.gnormx+" y: "+this.zpp_inner.gnormy+" }")+" }"}}};Object.defineProperty(ba.prototype,"polygon",{get:ba.prototype.get_polygon});Object.defineProperty(ba.prototype,"localNormal",{get:ba.prototype.get_localNormal});Object.defineProperty(ba.prototype,"worldNormal",{get:ba.prototype.get_worldNormal});Object.defineProperty(ba.prototype,"length",{get:ba.prototype.get_length});Object.defineProperty(ba.prototype,"localProjection",{get:ba.prototype.get_localProjection});Object.defineProperty(ba.prototype,"worldProjection",{get:ba.prototype.get_worldProjection});Object.defineProperty(ba.prototype,"localVertex1",{get:ba.prototype.get_localVertex1});Object.defineProperty(ba.prototype,"localVertex2",{get:ba.prototype.get_localVertex2});Object.defineProperty(ba.prototype,"worldVertex1",{get:ba.prototype.get_worldVertex1});Object.defineProperty(ba.prototype,"worldVertex2",{get:ba.prototype.get_worldVertex2});ba.prototype.__class__=ba;var dJ=nape.shape.EdgeIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};dJ.__name__=["nape","shape","EdgeIterator"];dJ.get=function(ec){var ea;if(dJ.zpp_pool==null){aw.internal=true;var ed=new dJ();aw.internal=false;ea=ed}else{var eb=dJ.zpp_pool;dJ.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};dJ.prototype.zpp_inner=null;dJ.prototype.zpp_i=null;dJ.prototype.zpp_critical=null;dJ.prototype.zpp_next=null;dJ.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=dJ.zpp_pool;dJ.zpp_pool=this;this.zpp_inner=null;return false}};dJ.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};dJ.prototype.__class__=dJ;var a2=nape.shape.EdgeList=function(){this.zpp_inner=null;this.zpp_inner=new aw();this.zpp_inner.outer=this};a2.__name__=["nape","shape","EdgeList"];a2.fromArray=function(ed){var ea=new a2();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};a2.prototype.zpp_inner=null;a2.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};a2.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};a2.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(ea==this.zpp_inner.user_length-1){ea=ea}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-2-ea}}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.wrapper()};a2.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};a2.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};a2.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.wrapper()};a2.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.wrapper();if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.wrapper()};a2.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};a2.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};a2.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};a2.prototype.empty=function(){return this.zpp_inner.inner.head==null};a2.prototype.iterator=function(){this.zpp_inner.valmod();return dJ.get(this)};a2.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new a2();this.zpp_inner.valmod();var ef=dJ.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=dJ.zpp_pool;dJ.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};a2.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=dJ.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=dJ.zpp_pool;dJ.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};a2.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=dJ.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=dJ.zpp_pool;dJ.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};a2.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=dJ.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=dJ.zpp_pool;dJ.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=dJ.zpp_pool;dJ.zpp_pool=ec;ec.zpp_inner=null;break}}return this};a2.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(a2.prototype,"length",{get:a2.prototype.get_length});a2.prototype.__class__=a2;var Z=nape.shape.Polygon=function(eG,fn,eF){this.zpp_inner_zn=null;ck.call(this);this.zpp_inner_zn=new dQ();this.zpp_inner_zn.outer=this;this.zpp_inner_zn.outer_zn=this;this.zpp_inner=this.zpp_inner_zn;this.zpp_inner_i=this.zpp_inner;this.zpp_inner_i.outer_i=this;if((eG instanceof Array)&&eG.__enum__==null){var fm=eG;var ea=0;while(ea<fm.length){var eT=fm[ea];++ea;var eI=eT;if(this.zpp_inner_zn.wrap_lverts==null){this.zpp_inner_zn.getlverts()}var ec=this.zpp_inner_zn.wrap_lverts;var ev=eI.zpp_inner;if(ev._validate!=null){ev._validate()}var eD=eI.zpp_inner.x;var eV=eI.zpp_inner;if(eV._validate!=null){eV._validate()}var eH=eI.zpp_inner.y;var eP;if(au.poolVec2==null){eP=new r()}else{eP=au.poolVec2;au.poolVec2=eP.zpp_pool;eP.zpp_pool=null}if(eP.zpp_inner==null){var fk;if(bB.zpp_pool==null){fk=new bB()}else{fk=bB.zpp_pool;bB.zpp_pool=fk.next;fk.next=null}fk.weak=false;fk._immutable=false;fk.x=eD;fk.y=eH;eP.zpp_inner=fk;eP.zpp_inner.outer=eP}else{var ep;var eU=eP.zpp_inner;if(eU._validate!=null){eU._validate()}if(eP.zpp_inner.x==eD){var eS=eP.zpp_inner;if(eS._validate!=null){eS._validate()}ep=eP.zpp_inner.y==eH}else{ep=false}if(!ep){eP.zpp_inner.x=eD;eP.zpp_inner.y=eH;var eR=eP.zpp_inner;if(eR._invalidate!=null){eR._invalidate(eR)}}}eP.zpp_inner.weak=false;ec.push(eP)}}else{if(dc.__instanceof(eG,aN)){var et=eG;var eb=et.iterator();while(true){eb.zpp_inner.zpp_inner.valmod();var ed=eb.zpp_inner.zpp_gl();eb.zpp_critical=true;var eo;if(eb.zpp_i<ed){eo=true}else{eb.zpp_next=dW.zpp_pool;dW.zpp_pool=eb;eb.zpp_inner=null;eo=false}if(!eo){break}eb.zpp_critical=false;var eC=eb.zpp_inner.at(eb.zpp_i++);if(this.zpp_inner_zn.wrap_lverts==null){this.zpp_inner_zn.getlverts()}var en=this.zpp_inner_zn.wrap_lverts;var eQ=eC.zpp_inner;if(eQ._validate!=null){eQ._validate()}var eB=eC.zpp_inner.x;var eO=eC.zpp_inner;if(eO._validate!=null){eO._validate()}var eg=eC.zpp_inner.y;var fi;if(au.poolVec2==null){fi=new r()}else{fi=au.poolVec2;au.poolVec2=fi.zpp_pool;fi.zpp_pool=null}if(fi.zpp_inner==null){var fg;if(bB.zpp_pool==null){fg=new bB()}else{fg=bB.zpp_pool;bB.zpp_pool=fg.next;fg.next=null}fg.weak=false;fg._immutable=false;fg.x=eB;fg.y=eg;fi.zpp_inner=fg;fi.zpp_inner.outer=fi}else{var em;var eM=fi.zpp_inner;if(eM._validate!=null){eM._validate()}if(fi.zpp_inner.x==eB){var eL=fi.zpp_inner;if(eL._validate!=null){eL._validate()}em=fi.zpp_inner.y==eg}else{em=false}if(!em){fi.zpp_inner.x=eB;fi.zpp_inner.y=eg;var eK=fi.zpp_inner;if(eK._invalidate!=null){eK._invalidate(eK)}}}fi.zpp_inner.weak=false;en.push(fi)}}else{if(dc.__instanceof(eG,a7)){var es=eG;var eJ=es.zpp_inner.vertices;if(eJ!=null){var eu=eJ;while(true){var eA=eu.x;var ef=eu.y;var ff;if(au.poolVec2==null){ff=new r()}else{ff=au.poolVec2;au.poolVec2=ff.zpp_pool;ff.zpp_pool=null}if(ff.zpp_inner==null){var fd;if(bB.zpp_pool==null){fd=new bB()}else{fd=bB.zpp_pool;bB.zpp_pool=fd.next;fd.next=null}fd.weak=false;fd._immutable=false;fd.x=eA;fd.y=ef;ff.zpp_inner=fd;ff.zpp_inner.outer=ff}else{var ek;var e6=ff.zpp_inner;if(e6._validate!=null){e6._validate()}if(ff.zpp_inner.x==eA){var e5=ff.zpp_inner;if(e5._validate!=null){e5._validate()}ek=ff.zpp_inner.y==ef}else{ek=false}if(!ek){ff.zpp_inner.x=eA;ff.zpp_inner.y=ef;var e4=ff.zpp_inner;if(e4._invalidate!=null){e4._invalidate(e4)}}}ff.zpp_inner.weak=false;var ez=ff;eu=eu.next;if(this.zpp_inner_zn.wrap_lverts==null){this.zpp_inner_zn.getlverts()}var ej=this.zpp_inner_zn.wrap_lverts;var e3=ez.zpp_inner;if(e3._validate!=null){e3._validate()}var ex=ez.zpp_inner.x;var e2=ez.zpp_inner;if(e2._validate!=null){e2._validate()}var ee=ez.zpp_inner.y;var fb;if(au.poolVec2==null){fb=new r()}else{fb=au.poolVec2;au.poolVec2=fb.zpp_pool;fb.zpp_pool=null}if(fb.zpp_inner==null){var fa;if(bB.zpp_pool==null){fa=new bB()}else{fa=bB.zpp_pool;bB.zpp_pool=fa.next;fa.next=null}fa.weak=false;fa._immutable=false;fa.x=ex;fa.y=ee;fb.zpp_inner=fa;fb.zpp_inner.outer=fb}else{var ei;var e1=fb.zpp_inner;if(e1._validate!=null){e1._validate()}if(fb.zpp_inner.x==ex){var e0=fb.zpp_inner;if(e0._validate!=null){e0._validate()}ei=fb.zpp_inner.y==ee}else{ei=false}if(!ei){fb.zpp_inner.x=ex;fb.zpp_inner.y=ee;var eZ=fb.zpp_inner;if(eZ._invalidate!=null){eZ._invalidate(eZ)}}}fb.zpp_inner.weak=false;ej.push(fb);var e9=ez.zpp_inner;ez.zpp_inner.outer=null;ez.zpp_inner=null;var eN=ez;eN.zpp_pool=au.poolVec2;au.poolVec2=eN;var fl=e9;if(fl.outer!=null){fl.outer.zpp_inner=null;fl.outer=null}fl._isimmutable=null;fl._validate=null;fl._invalidate=null;fl.next=bB.zpp_pool;bB.zpp_pool=fl;if(eu==eJ){break}}}}}}if((eG instanceof Array)&&eG.__enum__==null){var er=eG;var eW=0;while(eW<er.length){var eE=er[eW];var eh;if(eE.zpp_inner.weak){var e8=eE.zpp_inner;eE.zpp_inner.outer=null;eE.zpp_inner=null;var fj=eE;fj.zpp_pool=au.poolVec2;au.poolVec2=fj;var fh=e8;if(fh.outer!=null){fh.outer.zpp_inner=null;fh.outer=null}fh._isimmutable=null;fh._validate=null;fh._invalidate=null;fh.next=bB.zpp_pool;bB.zpp_pool=fh;eh=true}else{eh=false}if(eh){er.splice(eW,1);continue}++eW}}else{if(dc.__instanceof(eG,aN)){var eq=eG;if(eq.zpp_inner._validate!=null){eq.zpp_inner._validate()}var ey=eq.zpp_inner.inner;var eX=null;var el=ey.head;while(el!=null){var ew=el.elt;if(ew.outer.zpp_inner.weak){el=ey.erase(eX);if(ew.outer.zpp_inner.weak){var eY=ew.outer;var e7=eY.zpp_inner;eY.zpp_inner.outer=null;eY.zpp_inner=null;var fe=eY;fe.zpp_pool=au.poolVec2;au.poolVec2=fe;var fc=e7;if(fc.outer!=null){fc.outer.zpp_inner=null;fc.outer=null}fc._isimmutable=null;fc._validate=null;fc._invalidate=null;fc.next=bB.zpp_pool;bB.zpp_pool=fc}}else{eX=el;el=el.next}}}}if(fn==null){if(cJ.zpp_pool==null){this.zpp_inner.material=new cJ()}else{this.zpp_inner.material=cJ.zpp_pool;cJ.zpp_pool=this.zpp_inner.material.next;this.zpp_inner.material.next=null}}else{this.zpp_inner.immutable_midstep("Shape::material");this.zpp_inner.setMaterial(fn.zpp_inner);this.zpp_inner.material.wrapper()}if(eF==null){if(cA.zpp_pool==null){this.zpp_inner.filter=new cA()}else{this.zpp_inner.filter=cA.zpp_pool;cA.zpp_pool=this.zpp_inner.filter.next;this.zpp_inner.filter.next=null}}else{this.zpp_inner.immutable_midstep("Shape::filter");this.zpp_inner.setFilter(eF.zpp_inner);this.zpp_inner.filter.wrapper()}this.zpp_inner_i.insert_cbtype(db.ANY_SHAPE.zpp_inner)};Z.__name__=["nape","shape","Polygon"];Z.__super__=ck;Z.prototype=Object.create(ck.prototype);Z.rect=function(et,eq,ea,eb,ef){if(ef==null){ef=false}var eg;if(au.poolVec2==null){eg=new r()}else{eg=au.poolVec2;au.poolVec2=eg.zpp_pool;eg.zpp_pool=null}if(eg.zpp_inner==null){var eu;if(bB.zpp_pool==null){eu=new bB()}else{eu=bB.zpp_pool;bB.zpp_pool=eu.next;eu.next=null}eu.weak=false;eu._immutable=false;eu.x=et;eu.y=eq;eg.zpp_inner=eu;eg.zpp_inner.outer=eg}else{var ez;var ec=eg.zpp_inner;if(ec._validate!=null){ec._validate()}if(eg.zpp_inner.x==et){var ey=eg.zpp_inner;if(ey._validate!=null){ey._validate()}ez=eg.zpp_inner.y==eq}else{ez=false}if(!ez){eg.zpp_inner.x=et;eg.zpp_inner.y=eq;var ex=eg.zpp_inner;if(ex._invalidate!=null){ex._invalidate(ex)}}}eg.zpp_inner.weak=ef;var eH=eg;var ee=et+ea;var er;if(au.poolVec2==null){er=new r()}else{er=au.poolVec2;au.poolVec2=er.zpp_pool;er.zpp_pool=null}if(er.zpp_inner==null){var eo;if(bB.zpp_pool==null){eo=new bB()}else{eo=bB.zpp_pool;bB.zpp_pool=eo.next;eo.next=null}eo.weak=false;eo._immutable=false;eo.x=ee;eo.y=eq;er.zpp_inner=eo;er.zpp_inner.outer=er}else{var eG;var ew=er.zpp_inner;if(ew._validate!=null){ew._validate()}if(er.zpp_inner.x==ee){var ev=er.zpp_inner;if(ev._validate!=null){ev._validate()}eG=er.zpp_inner.y==eq}else{eG=false}if(!eG){er.zpp_inner.x=ee;er.zpp_inner.y=eq;var es=er.zpp_inner;if(es._invalidate!=null){es._invalidate(es)}}}er.zpp_inner.weak=ef;var eE=er;var ed=et+ea;var eJ=eq+eb;var em;if(au.poolVec2==null){em=new r()}else{em=au.poolVec2;au.poolVec2=em.zpp_pool;em.zpp_pool=null}if(em.zpp_inner==null){var ek;if(bB.zpp_pool==null){ek=new bB()}else{ek=bB.zpp_pool;bB.zpp_pool=ek.next;ek.next=null}ek.weak=false;ek._immutable=false;ek.x=ed;ek.y=eJ;em.zpp_inner=ek;em.zpp_inner.outer=em}else{var eC;var ep=em.zpp_inner;if(ep._validate!=null){ep._validate()}if(em.zpp_inner.x==ed){var en=em.zpp_inner;if(en._validate!=null){en._validate()}eC=em.zpp_inner.y==eJ}else{eC=false}if(!eC){em.zpp_inner.x=ed;em.zpp_inner.y=eJ;var el=em.zpp_inner;if(el._invalidate!=null){el._invalidate(el)}}}em.zpp_inner.weak=ef;var eB=em;var eI=eq+eb;var ei;if(au.poolVec2==null){ei=new r()}else{ei=au.poolVec2;au.poolVec2=ei.zpp_pool;ei.zpp_pool=null}if(ei.zpp_inner==null){var eh;if(bB.zpp_pool==null){eh=new bB()}else{eh=bB.zpp_pool;bB.zpp_pool=eh.next;eh.next=null}eh.weak=false;eh._immutable=false;eh.x=et;eh.y=eI;ei.zpp_inner=eh;ei.zpp_inner.outer=ei}else{var eA;var ej=ei.zpp_inner;if(ej._validate!=null){ej._validate()}if(ei.zpp_inner.x==et){var eF=ei.zpp_inner;if(eF._validate!=null){eF._validate()}eA=ei.zpp_inner.y==eI}else{eA=false}if(!eA){ei.zpp_inner.x=et;ei.zpp_inner.y=eI;var eD=ei.zpp_inner;if(eD._invalidate!=null){eD._invalidate(eD)}}}ei.zpp_inner.weak=ef;return[eH,eE,eB,ei]};Z.box=function(eb,ea,ec){if(ec==null){ec=false}return Z.rect(-eb/2,-ea/2,eb,ea,ec)};Z.regular=function(ep,ee,ea,eb,ef){if(ef==null){ef=false}if(eb==null){eb=0}var ei=[];var eq=Math.PI*2/ea;var el=0;while(el<ea){var ec=el++*eq+eb;var eo=Math.cos(ec)*ep;var en=Math.sin(ec)*ee;var em;if(au.poolVec2==null){em=new r()}else{em=au.poolVec2;au.poolVec2=em.zpp_pool;em.zpp_pool=null}if(em.zpp_inner==null){var ek;if(bB.zpp_pool==null){ek=new bB()}else{ek=bB.zpp_pool;bB.zpp_pool=ek.next;ek.next=null}ek.weak=false;ek._immutable=false;ek.x=eo;ek.y=en;em.zpp_inner=ek;em.zpp_inner.outer=em}else{var ed;var eg=em.zpp_inner;if(eg._validate!=null){eg._validate()}if(em.zpp_inner.x==eo){var ej=em.zpp_inner;if(ej._validate!=null){ej._validate()}ed=em.zpp_inner.y==en}else{ed=false}if(!ed){em.zpp_inner.x=eo;em.zpp_inner.y=en;var eh=em.zpp_inner;if(eh._invalidate!=null){eh._invalidate(eh)}}}em.zpp_inner.weak=ef;ei.push(em)}return ei};Z.prototype.zpp_inner_zn=null;Z.prototype.get_localVerts=function(){if(this.zpp_inner_zn.wrap_lverts==null){this.zpp_inner_zn.getlverts()}return this.zpp_inner_zn.wrap_lverts};Z.prototype.get_worldVerts=function(){if(this.zpp_inner_zn.wrap_gverts==null){this.zpp_inner_zn.getgverts()}return this.zpp_inner_zn.wrap_gverts};Z.prototype.get_edges=function(){if(this.zpp_inner_zn.wrap_edges==null){this.zpp_inner_zn.getedges()}return this.zpp_inner_zn.wrap_edges};Z.prototype.validity=function(){return this.zpp_inner_zn.valid()};Object.defineProperty(Z.prototype,"localVerts",{get:Z.prototype.get_localVerts});Object.defineProperty(Z.prototype,"worldVerts",{get:Z.prototype.get_worldVerts});Object.defineProperty(Z.prototype,"edges",{get:Z.prototype.get_edges});Z.prototype.__class__=Z;var bC=nape.shape.ShapeIterator=function(){this.zpp_next=null;this.zpp_critical=false;this.zpp_i=0;this.zpp_inner=null};bC.__name__=["nape","shape","ShapeIterator"];bC.get=function(ec){var ea;if(bC.zpp_pool==null){aI.internal=true;var ed=new bC();aI.internal=false;ea=ed}else{var eb=bC.zpp_pool;bC.zpp_pool=eb.zpp_next;ea=eb}ea.zpp_i=0;ea.zpp_inner=ec;ea.zpp_critical=false;return ea};bC.prototype.zpp_inner=null;bC.prototype.zpp_i=null;bC.prototype.zpp_critical=null;bC.prototype.zpp_next=null;bC.prototype.hasNext=function(){this.zpp_inner.zpp_inner.valmod();var eb=this.zpp_inner;eb.zpp_inner.valmod();if(eb.zpp_inner.zip_length){eb.zpp_inner.zip_length=false;eb.zpp_inner.user_length=eb.zpp_inner.inner.length}var ea=eb.zpp_inner.user_length;this.zpp_critical=true;if(this.zpp_i<ea){return true}else{this.zpp_next=bC.zpp_pool;bC.zpp_pool=this;this.zpp_inner=null;return false}};bC.prototype.next=function(){this.zpp_critical=false;return this.zpp_inner.at(this.zpp_i++)};bC.prototype.__class__=bC;var cZ=nape.shape.ShapeList=function(){this.zpp_inner=null;this.zpp_inner=new aI();this.zpp_inner.outer=this};cZ.__name__=["nape","shape","ShapeList"];cZ.fromArray=function(ed){var ea=new cZ();var ec=0;while(ec<ed.length){var eb=ed[ec];++ec;ea.push(eb)}return ea};cZ.prototype.zpp_inner=null;cZ.prototype.get_length=function(){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}return this.zpp_inner.user_length};cZ.prototype.has=function(ea){this.zpp_inner.valmod();return this.zpp_inner.inner.has(ea.zpp_inner)};cZ.prototype.at=function(ea){this.zpp_inner.valmod();if(this.zpp_inner.reverse_flag){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ea=this.zpp_inner.user_length-1-ea}if(ea<this.zpp_inner.at_index||this.zpp_inner.at_ite==null){this.zpp_inner.at_index=ea;this.zpp_inner.at_ite=this.zpp_inner.inner.iterator_at(ea)}else{while(this.zpp_inner.at_index!=ea){this.zpp_inner.at_index++;this.zpp_inner.at_ite=this.zpp_inner.at_ite.next}}return this.zpp_inner.at_ite.elt.outer};cZ.prototype.push=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){this.zpp_inner.inner.add(ec.zpp_inner)}else{if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};cZ.prototype.unshift=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(ec):true;if(ea){if(this.zpp_inner.reverse_flag){if(this.zpp_inner.push_ite==null){var eb;if(this.zpp_inner.inner.head==null){eb=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}eb=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-1)}this.zpp_inner.push_ite=eb}this.zpp_inner.push_ite=this.zpp_inner.inner.insert(this.zpp_inner.push_ite,ec.zpp_inner)}else{this.zpp_inner.inner.add(ec.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(ec)}}return ea};cZ.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.zpp_inner.inner.head.elt;var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}else{if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}this.zpp_inner.invalidate();return eb.outer};cZ.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_inner.valmod();var eb=null;if(this.zpp_inner.reverse_flag){if(this.zpp_inner.at_ite!=null&&this.zpp_inner.at_ite.next==null){this.zpp_inner.at_ite=null}var ec;this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(this.zpp_inner.user_length==1){ec=null}else{this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}ec=this.zpp_inner.inner.iterator_at(this.zpp_inner.user_length-2)}if(ec==null){eb=this.zpp_inner.inner.head.elt}else{eb=ec.next.elt}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.erase(ec)}}else{eb=this.zpp_inner.inner.head.elt;var ed=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ed)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.pop()}}this.zpp_inner.invalidate();return eb.outer};cZ.prototype.add=function(ea){if(this.zpp_inner.reverse_flag){return this.push(ea)}else{return this.unshift(ea)}};cZ.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_inner.valmod();var ea;ea=false;var eb=this.zpp_inner.inner.head;while(eb!=null){if(eb.elt==ec.zpp_inner){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.zpp_inner.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};cZ.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(this.zpp_inner.inner.head!=null){this.pop()}}else{while(this.zpp_inner.inner.head!=null){this.shift()}}};cZ.prototype.empty=function(){return this.zpp_inner.inner.head==null};cZ.prototype.iterator=function(){this.zpp_inner.valmod();return bC.get(this)};cZ.prototype.copy=function(ea){if(ea==null){ea=false}var eb=new cZ();this.zpp_inner.valmod();var ef=bC.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=bC.zpp_pool;bC.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);eb.push(ea?null:ec)}return eb};cZ.prototype.merge=function(eb){eb.zpp_inner.valmod();var ee=bC.get(eb);while(true){ee.zpp_inner.zpp_inner.valmod();var ef=ee.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ee.zpp_critical=true;var ec;if(ee.zpp_i<ed){ec=true}else{ee.zpp_next=bC.zpp_pool;bC.zpp_pool=ee;ee.zpp_inner=null;ec=false}if(!ec){break}ee.zpp_critical=false;var ea=ee.zpp_inner.at(ee.zpp_i++);if(!this.has(ea)){if(this.zpp_inner.reverse_flag){this.push(ea)}else{this.unshift(ea)}}}};cZ.prototype.toString=function(){var eb="[";var ea=true;this.zpp_inner.valmod();var ef=bC.get(this);while(true){ef.zpp_inner.zpp_inner.valmod();var eg=ef.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ee=eg.zpp_inner.user_length;ef.zpp_critical=true;var ed;if(ef.zpp_i<ee){ed=true}else{ef.zpp_next=bC.zpp_pool;bC.zpp_pool=ef;ef.zpp_inner=null;ed=false}if(!ed){break}ef.zpp_critical=false;var ec=ef.zpp_inner.at(ef.zpp_i++);if(!ea){eb+=","}eb+=ec==null?"NULL":ec.toString();ea=false}return eb+"]"};cZ.prototype.foreach=function(ea){this.zpp_inner.valmod();var ec=bC.get(this);while(true){ec.zpp_inner.zpp_inner.valmod();var ef=ec.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ed=ef.zpp_inner.user_length;ec.zpp_critical=true;var eb;if(ec.zpp_i<ed){eb=true}else{ec.zpp_next=bC.zpp_pool;bC.zpp_pool=ec;ec.zpp_inner=null;eb=false}if(!eb){break}try{ec.zpp_critical=false;ea(ec.zpp_inner.at(ec.zpp_i++))}catch(ee){ec.zpp_next=bC.zpp_pool;bC.zpp_pool=ec;ec.zpp_inner=null;break}}return this};cZ.prototype.filter=function(eb){var ec=0;while(true){this.zpp_inner.valmod();if(this.zpp_inner.zip_length){this.zpp_inner.zip_length=false;this.zpp_inner.user_length=this.zpp_inner.inner.length}if(!(ec<this.zpp_inner.user_length)){break}var ea=this.at(ec);try{if(eb(ea)){++ec}else{this.remove(ea)}}catch(ed){break}}return this};Object.defineProperty(cZ.prototype,"length",{get:cZ.prototype.get_length});cZ.prototype.__class__=cZ;var H=nape.shape.ShapeType=function(){};H.__name__=["nape","shape","ShapeType"];H.CIRCLE=null;H.get_CIRCLE=function(){if(br.ShapeType_CIRCLE==null){br.internal=true;br.ShapeType_CIRCLE=new H();br.internal=false}return br.ShapeType_CIRCLE};H.POLYGON=null;H.get_POLYGON=function(){if(br.ShapeType_POLYGON==null){br.internal=true;br.ShapeType_POLYGON=new H();br.internal=false}return br.ShapeType_POLYGON};H.prototype.toString=function(){if(br.ShapeType_CIRCLE==null){br.internal=true;br.ShapeType_CIRCLE=new H();br.internal=false}if(this==br.ShapeType_CIRCLE){return"CIRCLE"}else{if(br.ShapeType_POLYGON==null){br.internal=true;br.ShapeType_POLYGON=new H();br.internal=false}if(this==br.ShapeType_POLYGON){return"POLYGON"}else{return""}}};Object.defineProperty(H,"CIRCLE",{get:H.get_CIRCLE});Object.defineProperty(H,"POLYGON",{get:H.get_POLYGON});H.prototype.__class__=H;var al=nape.shape.ValidationResult=function(){};al.__name__=["nape","shape","ValidationResult"];al.VALID=null;al.get_VALID=function(){if(br.ValidationResult_VALID==null){br.internal=true;br.ValidationResult_VALID=new al();br.internal=false}return br.ValidationResult_VALID};al.DEGENERATE=null;al.get_DEGENERATE=function(){if(br.ValidationResult_DEGENERATE==null){br.internal=true;br.ValidationResult_DEGENERATE=new al();br.internal=false}return br.ValidationResult_DEGENERATE};al.CONCAVE=null;al.get_CONCAVE=function(){if(br.ValidationResult_CONCAVE==null){br.internal=true;br.ValidationResult_CONCAVE=new al();br.internal=false}return br.ValidationResult_CONCAVE};al.SELF_INTERSECTING=null;al.get_SELF_INTERSECTING=function(){if(br.ValidationResult_SELF_INTERSECTING==null){br.internal=true;br.ValidationResult_SELF_INTERSECTING=new al();br.internal=false}return br.ValidationResult_SELF_INTERSECTING};al.prototype.toString=function(){if(br.ValidationResult_VALID==null){br.internal=true;br.ValidationResult_VALID=new al();br.internal=false}if(this==br.ValidationResult_VALID){return"VALID"}else{if(br.ValidationResult_DEGENERATE==null){br.internal=true;br.ValidationResult_DEGENERATE=new al();br.internal=false}if(this==br.ValidationResult_DEGENERATE){return"DEGENERATE"}else{if(br.ValidationResult_CONCAVE==null){br.internal=true;br.ValidationResult_CONCAVE=new al();br.internal=false}if(this==br.ValidationResult_CONCAVE){return"CONCAVE"}else{if(br.ValidationResult_SELF_INTERSECTING==null){br.internal=true;br.ValidationResult_SELF_INTERSECTING=new al();br.internal=false}if(this==br.ValidationResult_SELF_INTERSECTING){return"SELF_INTERSECTING"}else{return""}}}}};Object.defineProperty(al,"VALID",{get:al.get_VALID});Object.defineProperty(al,"DEGENERATE",{get:al.get_DEGENERATE});Object.defineProperty(al,"CONCAVE",{get:al.get_CONCAVE});Object.defineProperty(al,"SELF_INTERSECTING",{get:al.get_SELF_INTERSECTING});al.prototype.__class__=al;var aQ=nape.space.Broadphase=function(){};aQ.__name__=["nape","space","Broadphase"];aQ.DYNAMIC_AABB_TREE=null;aQ.get_DYNAMIC_AABB_TREE=function(){if(br.Broadphase_DYNAMIC_AABB_TREE==null){br.internal=true;br.Broadphase_DYNAMIC_AABB_TREE=new aQ();br.internal=false}return br.Broadphase_DYNAMIC_AABB_TREE};aQ.SWEEP_AND_PRUNE=null;aQ.get_SWEEP_AND_PRUNE=function(){if(br.Broadphase_SWEEP_AND_PRUNE==null){br.internal=true;br.Broadphase_SWEEP_AND_PRUNE=new aQ();br.internal=false}return br.Broadphase_SWEEP_AND_PRUNE};aQ.prototype.toString=function(){if(br.Broadphase_DYNAMIC_AABB_TREE==null){br.internal=true;br.Broadphase_DYNAMIC_AABB_TREE=new aQ();br.internal=false}if(this==br.Broadphase_DYNAMIC_AABB_TREE){return"DYNAMIC_AABB_TREE"}else{if(br.Broadphase_SWEEP_AND_PRUNE==null){br.internal=true;br.Broadphase_SWEEP_AND_PRUNE=new aQ();br.internal=false}if(this==br.Broadphase_SWEEP_AND_PRUNE){return"SWEEP_AND_PRUNE"}else{return""}}};Object.defineProperty(aQ,"DYNAMIC_AABB_TREE",{get:aQ.get_DYNAMIC_AABB_TREE});Object.defineProperty(aQ,"SWEEP_AND_PRUNE",{get:aQ.get_SWEEP_AND_PRUNE});aQ.prototype.__class__=aQ;var bk=nape.space.Space=function(ec,eb){this.zpp_inner=null;this.zpp_inner=new a3(ec==null?null:ec.zpp_inner,eb);this.zpp_inner.outer=this;if(ec!=null){if(ec.zpp_inner.weak){var ea=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}}};bk.__name__=["nape","space","Space"];bk.prototype.zpp_inner=null;bk.prototype.get_userData=function(){if(this.zpp_inner.userData==null){this.zpp_inner.userData={}}return this.zpp_inner.userData};bk.prototype.get_gravity=function(){if(this.zpp_inner.wrap_gravity==null){this.zpp_inner.getgravity()}return this.zpp_inner.wrap_gravity};bk.prototype.set_gravity=function(ej){if(this.zpp_inner.wrap_gravity==null){this.zpp_inner.getgravity()}var ed=this.zpp_inner.wrap_gravity;var eg=ej.zpp_inner;if(eg._validate!=null){eg._validate()}var ei=ej.zpp_inner.x;var ef=ej.zpp_inner;if(ef._validate!=null){ef._validate()}var eh=ej.zpp_inner.y;var ea;var ee=ed.zpp_inner;if(ee._validate!=null){ee._validate()}if(ed.zpp_inner.x==ei){var ec=ed.zpp_inner;if(ec._validate!=null){ec._validate()}ea=ed.zpp_inner.y==eh}else{ea=false}if(!ea){ed.zpp_inner.x=ei;ed.zpp_inner.y=eh;var eb=ed.zpp_inner;if(eb._invalidate!=null){eb._invalidate(eb)}}if(ej.zpp_inner.weak){var ek=ej.zpp_inner;ej.zpp_inner.outer=null;ej.zpp_inner=null;ej.zpp_pool=au.poolVec2;au.poolVec2=ej;if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek}if(this.zpp_inner.wrap_gravity==null){this.zpp_inner.getgravity()}return this.zpp_inner.wrap_gravity};bk.prototype.get_broadphase=function(){if(this.zpp_inner.bphase.is_sweep){if(br.Broadphase_SWEEP_AND_PRUNE==null){br.internal=true;br.Broadphase_SWEEP_AND_PRUNE=new aQ();br.internal=false}return br.Broadphase_SWEEP_AND_PRUNE}else{if(br.Broadphase_DYNAMIC_AABB_TREE==null){br.internal=true;br.Broadphase_DYNAMIC_AABB_TREE=new aQ();br.internal=false}return br.Broadphase_DYNAMIC_AABB_TREE}};bk.prototype.get_sortContacts=function(){return this.zpp_inner.sortcontacts};bk.prototype.set_sortContacts=function(ea){this.zpp_inner.sortcontacts=ea;return this.zpp_inner.sortcontacts};bk.prototype.get_worldAngularDrag=function(){return this.zpp_inner.global_ang_drag};bk.prototype.set_worldAngularDrag=function(ea){this.zpp_inner.global_ang_drag=ea;return this.zpp_inner.global_ang_drag};bk.prototype.get_worldLinearDrag=function(){return this.zpp_inner.global_lin_drag};bk.prototype.set_worldLinearDrag=function(ea){this.zpp_inner.global_lin_drag=ea;return this.zpp_inner.global_lin_drag};bk.prototype.get_compounds=function(){return this.zpp_inner.wrap_compounds};bk.prototype.get_bodies=function(){return this.zpp_inner.wrap_bodies};bk.prototype.get_liveBodies=function(){return this.zpp_inner.wrap_live};bk.prototype.get_constraints=function(){return this.zpp_inner.wrap_constraints};bk.prototype.get_liveConstraints=function(){return this.zpp_inner.wrap_livecon};bk.prototype.visitBodies=function(eh){var eg=this.zpp_inner.wrap_bodies;eg.zpp_inner.valmod();var ee=aX.get(eg);while(true){ee.zpp_inner.zpp_inner.valmod();var ej=ee.zpp_inner;ej.zpp_inner.valmod();if(ej.zpp_inner.zip_length){ej.zpp_inner.zip_length=false;ej.zpp_inner.user_length=ej.zpp_inner.inner.length}var eb=ej.zpp_inner.user_length;ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=aX.zpp_pool;aX.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;eh(ee.zpp_inner.at(ee.zpp_i++))}var ei=this.zpp_inner.wrap_compounds;ei.zpp_inner.valmod();var ek=c4.get(ei);while(true){ek.zpp_inner.zpp_inner.valmod();var ef=ek.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ea=ef.zpp_inner.user_length;ek.zpp_critical=true;var ec;if(ek.zpp_i<ea){ec=true}else{ek.zpp_next=c4.zpp_pool;c4.zpp_pool=ek;ek.zpp_inner=null;ec=false}if(!ec){break}ek.zpp_critical=false;ek.zpp_inner.at(ek.zpp_i++).visitBodies(eh)}};bk.prototype.visitConstraints=function(eh){var eg=this.zpp_inner.wrap_constraints;eg.zpp_inner.valmod();var ee=bO.get(eg);while(true){ee.zpp_inner.zpp_inner.valmod();var ej=ee.zpp_inner;ej.zpp_inner.valmod();if(ej.zpp_inner.zip_length){ej.zpp_inner.zip_length=false;ej.zpp_inner.user_length=ej.zpp_inner.inner.length}var eb=ej.zpp_inner.user_length;ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=bO.zpp_pool;bO.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;eh(ee.zpp_inner.at(ee.zpp_i++))}var ei=this.zpp_inner.wrap_compounds;ei.zpp_inner.valmod();var ek=c4.get(ei);while(true){ek.zpp_inner.zpp_inner.valmod();var ef=ek.zpp_inner;ef.zpp_inner.valmod();if(ef.zpp_inner.zip_length){ef.zpp_inner.zip_length=false;ef.zpp_inner.user_length=ef.zpp_inner.inner.length}var ea=ef.zpp_inner.user_length;ek.zpp_critical=true;var ec;if(ek.zpp_i<ea){ec=true}else{ek.zpp_next=c4.zpp_pool;c4.zpp_pool=ek;ek.zpp_inner=null;ec=false}if(!ec){break}ek.zpp_critical=false;ek.zpp_inner.at(ek.zpp_i++).visitConstraints(eh)}};bk.prototype.visitCompounds=function(ea){var eg=this.zpp_inner.wrap_compounds;eg.zpp_inner.valmod();var ee=c4.get(eg);while(true){ee.zpp_inner.zpp_inner.valmod();var ed=ee.zpp_inner;ed.zpp_inner.valmod();if(ed.zpp_inner.zip_length){ed.zpp_inner.zip_length=false;ed.zpp_inner.user_length=ed.zpp_inner.inner.length}var ec=ed.zpp_inner.user_length;ee.zpp_critical=true;var eb;if(ee.zpp_i<ec){eb=true}else{ee.zpp_next=c4.zpp_pool;c4.zpp_pool=ee;ee.zpp_inner=null;eb=false}if(!eb){break}ee.zpp_critical=false;var ef=ee.zpp_inner.at(ee.zpp_i++);ea(ef);ef.visitCompounds(ea)}};bk.prototype.get_world=function(){return this.zpp_inner.__static};bk.prototype.get_arbiters=function(){if(this.zpp_inner.wrap_arbiters==null){var ea=new aP();ea.space=this.zpp_inner;this.zpp_inner.wrap_arbiters=ea}return this.zpp_inner.wrap_arbiters};bk.prototype.get_listeners=function(){return this.zpp_inner.wrap_listeners};bk.prototype.clear=function(){this.zpp_inner.clear()};bk.prototype.step=function(ea,ec,eb){if(eb==null){eb=10}if(ec==null){ec=10}this.zpp_inner.step(ea,ec,eb)};bk.prototype.get_timeStamp=function(){return this.zpp_inner.stamp};bk.prototype.get_elapsedTime=function(){return this.zpp_inner.time};bk.prototype.interactionType=function(ec,ea){if((ec.zpp_inner.body!=null?ec.zpp_inner.body.outer:null).zpp_inner.type==1&&(ea.zpp_inner.body!=null?ea.zpp_inner.body.outer:null).zpp_inner.type==1){return null}if((ec.zpp_inner.body!=null?ec.zpp_inner.body.outer:null)==(ea.zpp_inner.body!=null?ea.zpp_inner.body.outer:null)){return null}var ef=ec.zpp_inner;var ee=ea.zpp_inner;var el=ef.body;var ek=ee.body;var ed;ed=false;var es=el.constraints.head;while(es!=null){var ei=es.elt;if(ei.ignore&&ei.pair_exists(el.id,ek.id)){ed=true;break}es=es.next}var eg;var ey;if(!ed){var eh=ef;while(eh!=null&&eh.group==null){if(eh.ishape!=null){eh=eh.ishape.body}else{if(eh.icompound!=null){eh=eh.icompound.compound}else{eh=eh.ibody.compound}}}var eb=eh==null?null:eh.group;var er;if(eb==null){er=false}else{var ej=ee;while(ej!=null&&ej.group==null){if(ej.ishape!=null){ej=ej.ishape.body}else{if(ej.icompound!=null){ej=ej.icompound.compound}else{ej=ej.ibody.compound}}}var eA=ej==null?null:ej.group;if(eA==null){er=false}else{var ez=false;while(eb!=null&&eA!=null){if(eb==eA){ez=eb.ignore;break}if(eb.depth<eA.depth){eA=eA.group}else{eb=eb.group}}er=ez}}ey=!er}else{ey=false}if(ey){var eq;if(ef.sensorEnabled||ee.sensorEnabled){var et=ef.filter;var em=ee.filter;if((et.sensorMask&em.sensorGroup)!=0){eq=(em.sensorMask&et.sensorGroup)!=0}else{eq=false}}else{eq=false}if(eq){eg=2}else{var ep;var eo;if(ef.fluidEnabled||ee.fluidEnabled){var ex=ef.filter;var ew=ee.filter;if((ex.fluidMask&ew.fluidGroup)!=0){eo=(ew.fluidMask&ex.fluidGroup)!=0}else{eo=false}}else{eo=false}if(eo){ep=!(el.imass==0&&ek.imass==0&&el.iinertia==0&&ek.iinertia==0)}else{ep=false}if(ep){eg=0}else{var en;var ev=ef.filter;var eu=ee.filter;if((ev.collisionMask&eu.collisionGroup)!=0&&(eu.collisionMask&ev.collisionGroup)!=0){en=!(el.imass==0&&ek.imass==0&&el.iinertia==0&&ek.iinertia==0)}else{en=false}if(en){eg=1}else{eg=-1}}}}else{eg=-1}switch(eg){case 0:if(br.InteractionType_FLUID==null){br.internal=true;br.InteractionType_FLUID=new b3();br.internal=false}return br.InteractionType_FLUID;case 1:if(br.InteractionType_COLLISION==null){br.internal=true;br.InteractionType_COLLISION=new b3();br.internal=false}return br.InteractionType_COLLISION;case 2:if(br.InteractionType_SENSOR==null){br.internal=true;br.InteractionType_SENSOR=new b3();br.internal=false}return br.InteractionType_SENSOR;default:return null}};bk.prototype.shapesUnderPoint=function(ea,ef,ec){var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}var ee=ea.zpp_inner.x;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}var ed=this.zpp_inner.shapesUnderPoint(ee,ea.zpp_inner.y,ef==null?null:ef.zpp_inner,ec);if(ea.zpp_inner.weak){var eb=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}return ed};bk.prototype.bodiesUnderPoint=function(ea,ef,ec){var eh=ea.zpp_inner;if(eh._validate!=null){eh._validate()}var ee=ea.zpp_inner.x;var eg=ea.zpp_inner;if(eg._validate!=null){eg._validate()}var ed=this.zpp_inner.bodiesUnderPoint(ee,ea.zpp_inner.y,ef==null?null:ef.zpp_inner,ec);if(ea.zpp_inner.weak){var eb=ea.zpp_inner;ea.zpp_inner.outer=null;ea.zpp_inner=null;ea.zpp_pool=au.poolVec2;au.poolVec2=ea;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb}return ed};bk.prototype.shapesInAABB=function(eb,ee,ea,ed,ec){if(ea==null){ea=true}if(ee==null){ee=false}return this.zpp_inner.shapesInAABB(eb,ea,ee,ed==null?null:ed.zpp_inner,ec)};bk.prototype.bodiesInAABB=function(eb,ee,ea,ed,ec){if(ea==null){ea=true}if(ee==null){ee=false}return this.zpp_inner.bodiesInAABB(eb,ea,ee,ed==null?null:ed.zpp_inner,ec)};bk.prototype.shapesInCircle=function(eb,ea,eg,ef,ed){if(eg==null){eg=false}var ee=this.zpp_inner.shapesInCircle(eb,ea,eg,ef==null?null:ef.zpp_inner,ed);if(eb.zpp_inner.weak){var ec=eb.zpp_inner;eb.zpp_inner.outer=null;eb.zpp_inner=null;eb.zpp_pool=au.poolVec2;au.poolVec2=eb;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec._isimmutable=null;ec._validate=null;ec._invalidate=null;ec.next=bB.zpp_pool;bB.zpp_pool=ec}return ee};bk.prototype.bodiesInCircle=function(eb,ea,eg,ef,ed){if(eg==null){eg=false}var ee=this.zpp_inner.bodiesInCircle(eb,ea,eg,ef==null?null:ef.zpp_inner,ed);if(eb.zpp_inner.weak){var ec=eb.zpp_inner;eb.zpp_inner.outer=null;eb.zpp_inner=null;eb.zpp_pool=au.poolVec2;au.poolVec2=eb;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec._isimmutable=null;ec._validate=null;ec._invalidate=null;ec.next=bB.zpp_pool;bB.zpp_pool=ec}return ee};bk.prototype.shapesInShape=function(eb,ed,ec,ea){if(ed==null){ed=false}return this.zpp_inner.shapesInShape(eb.zpp_inner,ed,ec==null?null:ec.zpp_inner,ea)};bk.prototype.bodiesInShape=function(eb,ed,ec,ea){if(ed==null){ed=false}return this.zpp_inner.bodiesInShape(eb.zpp_inner,ed,ec==null?null:ec.zpp_inner,ea)};bk.prototype.shapesInBody=function(ef,ea,ec){var eh=ec==null?new cZ():ec;var eg=ef.zpp_inner.wrap_shapes;eg.zpp_inner.valmod();var ee=bC.get(eg);while(true){ee.zpp_inner.zpp_inner.valmod();var ei=ee.zpp_inner;ei.zpp_inner.valmod();if(ei.zpp_inner.zip_length){ei.zpp_inner.zip_length=false;ei.zpp_inner.user_length=ei.zpp_inner.inner.length}var eb=ei.zpp_inner.user_length;ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=bC.zpp_pool;bC.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;this.shapesInShape(ee.zpp_inner.at(ee.zpp_i++),false,ea,eh)}return eh};bk.prototype.bodiesInBody=function(ef,ea,ec){var eh=ec==null?new a5():ec;var eg=ef.zpp_inner.wrap_shapes;eg.zpp_inner.valmod();var ee=bC.get(eg);while(true){ee.zpp_inner.zpp_inner.valmod();var ei=ee.zpp_inner;ei.zpp_inner.valmod();if(ei.zpp_inner.zip_length){ei.zpp_inner.zip_length=false;ei.zpp_inner.user_length=ei.zpp_inner.inner.length}var eb=ei.zpp_inner.user_length;ee.zpp_critical=true;var ed;if(ee.zpp_i<eb){ed=true}else{ee.zpp_next=bC.zpp_pool;bC.zpp_pool=ee;ee.zpp_inner=null;ed=false}if(!ed){break}ee.zpp_critical=false;this.bodiesInShape(ee.zpp_inner.at(ee.zpp_i++),false,ea,eh)}return eh};bk.prototype.convexCast=function(ec,eb,ea,ed){if(ea==null){ea=false}return this.zpp_inner.convexCast(ec.zpp_inner,eb,ed,ea)};bk.prototype.convexMultiCast=function(ed,ec,eb,ee,ea){if(eb==null){eb=false}return this.zpp_inner.convexMultiCast(ed.zpp_inner,ec,ee,eb,ea)};bk.prototype.rayCast=function(ea,eb,ec){if(eb==null){eb=false}return this.zpp_inner.rayCast(ea,eb,ec)};bk.prototype.rayMultiCast=function(ea,ec,ed,eb){if(ec==null){ec=false}return this.zpp_inner.rayMultiCast(ea,ec,ed,eb)};Object.defineProperty(bk.prototype,"userData",{get:bk.prototype.get_userData});Object.defineProperty(bk.prototype,"gravity",{get:bk.prototype.get_gravity,set:bk.prototype.set_gravity});Object.defineProperty(bk.prototype,"broadphase",{get:bk.prototype.get_broadphase});Object.defineProperty(bk.prototype,"sortContacts",{get:bk.prototype.get_sortContacts,set:bk.prototype.set_sortContacts});Object.defineProperty(bk.prototype,"worldAngularDrag",{get:bk.prototype.get_worldAngularDrag,set:bk.prototype.set_worldAngularDrag});Object.defineProperty(bk.prototype,"worldLinearDrag",{get:bk.prototype.get_worldLinearDrag,set:bk.prototype.set_worldLinearDrag});Object.defineProperty(bk.prototype,"compounds",{get:bk.prototype.get_compounds});Object.defineProperty(bk.prototype,"bodies",{get:bk.prototype.get_bodies});Object.defineProperty(bk.prototype,"liveBodies",{get:bk.prototype.get_liveBodies});Object.defineProperty(bk.prototype,"constraints",{get:bk.prototype.get_constraints});Object.defineProperty(bk.prototype,"liveConstraints",{get:bk.prototype.get_liveConstraints});Object.defineProperty(bk.prototype,"world",{get:bk.prototype.get_world});Object.defineProperty(bk.prototype,"arbiters",{get:bk.prototype.get_arbiters});Object.defineProperty(bk.prototype,"listeners",{get:bk.prototype.get_listeners});Object.defineProperty(bk.prototype,"timeStamp",{get:bk.prototype.get_timeStamp});Object.defineProperty(bk.prototype,"elapsedTime",{get:bk.prototype.get_elapsedTime});bk.prototype.__class__=bk;var cR=nape.util.Debug=function(){};cR.__name__=["nape","util","Debug"];cR.version=function(){return"Nape 2.0.19"};cR.clearObjectPools=function(){while(bO.zpp_pool!=null){var e0=bO.zpp_pool.zpp_next;bO.zpp_pool.zpp_next=null;bO.zpp_pool=e0}while(ap.zpp_pool!=null){var ee=ap.zpp_pool.zpp_next;ap.zpp_pool.zpp_next=null;ap.zpp_pool=ee}while(aX.zpp_pool!=null){var ed=aX.zpp_pool.zpp_next;aX.zpp_pool.zpp_next=null;aX.zpp_pool=ed}while(c4.zpp_pool!=null){var ec=c4.zpp_pool.zpp_next;c4.zpp_pool.zpp_next=null;c4.zpp_pool=ec}while(cV.zpp_pool!=null){var eb=cV.zpp_pool.zpp_next;cV.zpp_pool.zpp_next=null;cV.zpp_pool=eb}while(Y.zpp_pool!=null){var ea=Y.zpp_pool.zpp_next;Y.zpp_pool.zpp_next=null;Y.zpp_pool=ea}while(v.zpp_pool!=null){var fI=v.zpp_pool.zpp_next;v.zpp_pool.zpp_next=null;v.zpp_pool=fI}while(bL.zpp_pool!=null){var fH=bL.zpp_pool.zpp_next;bL.zpp_pool.zpp_next=null;bL.zpp_pool=fH}while(dW.zpp_pool!=null){var fG=dW.zpp_pool.zpp_next;dW.zpp_pool.zpp_next=null;dW.zpp_pool=fG}while(du.zpp_pool!=null){var fF=du.zpp_pool.zpp_next;du.zpp_pool.zpp_next=null;du.zpp_pool=fF}while(bC.zpp_pool!=null){var ff=bC.zpp_pool.zpp_next;bC.zpp_pool.zpp_next=null;bC.zpp_pool=ff}while(dJ.zpp_pool!=null){var fd=dJ.zpp_pool.zpp_next;dJ.zpp_pool.zpp_next=null;dJ.zpp_pool=fd}while(d5.zpp_pool!=null){var fb=d5.zpp_pool.zpp_next;d5.zpp_pool.zpp_next=null;d5.zpp_pool=fb}while(d0.zpp_pool!=null){var e9=d0.zpp_pool.zpp_next;d0.zpp_pool.zpp_next=null;d0.zpp_pool=e9}while(cL.zpp_pool!=null){var e7=cL.zpp_pool.zpp_next;cL.zpp_pool.zpp_next=null;cL.zpp_pool=e7}while(b.zpp_pool!=null){var e5=b.zpp_pool.next;b.zpp_pool.next=null;b.zpp_pool=e5}while(cF.zpp_pool!=null){var e4=cF.zpp_pool.next;cF.zpp_pool.next=null;cF.zpp_pool=e4}while(cJ.zpp_pool!=null){var e3=cJ.zpp_pool.next;cJ.zpp_pool.next=null;cJ.zpp_pool=e3}while(b9.zpp_pool!=null){var e2=b9.zpp_pool.next;b9.zpp_pool.next=null;b9.zpp_pool=e2}while(b6.zpp_pool!=null){var e1=b6.zpp_pool.next;b6.zpp_pool.next=null;b6.zpp_pool=e1}while(bE.zpp_pool!=null){var eU=bE.zpp_pool.next;bE.zpp_pool.next=null;bE.zpp_pool=eU}while(cx.zpp_pool!=null){var eS=cx.zpp_pool.next;cx.zpp_pool.next=null;cx.zpp_pool=eS}while(Q.zpp_pool!=null){var eQ=Q.zpp_pool.next;Q.zpp_pool.next=null;Q.zpp_pool=eQ}while(dL.zpp_pool!=null){var eO=dL.zpp_pool.next;dL.zpp_pool.next=null;dL.zpp_pool=eO}while(dV.zpp_pool!=null){var eM=dV.zpp_pool.next;dV.zpp_pool.next=null;dV.zpp_pool=eM}while(ar.zpp_pool!=null){var eK=ar.zpp_pool.next;ar.zpp_pool.next=null;ar.zpp_pool=eK}while(aF.zpp_pool!=null){var eJ=aF.zpp_pool.next;aF.zpp_pool.next=null;aF.zpp_pool=eJ}while(cO.zpp_pool!=null){var eI=cO.zpp_pool.next;cO.zpp_pool.next=null;cO.zpp_pool=eI}while(g.zpp_pool!=null){var eH=g.zpp_pool.next;g.zpp_pool.next=null;g.zpp_pool=eH}while(aT.zpp_pool!=null){var eG=aT.zpp_pool.next;aT.zpp_pool.next=null;aT.zpp_pool=eG}while(cS.zpp_pool!=null){var eA=cS.zpp_pool.next;cS.zpp_pool.next=null;cS.zpp_pool=eA}while(cC.zpp_pool!=null){var ey=cC.zpp_pool.next;cC.zpp_pool.next=null;cC.zpp_pool=ey}while(cd.zpp_pool!=null){var ew=cd.zpp_pool.next;cd.zpp_pool.next=null;cd.zpp_pool=ew}while(aR.zpp_pool!=null){var ev=aR.zpp_pool.next;aR.zpp_pool.next=null;aR.zpp_pool=ev}while(dr.zpp_pool!=null){var eu=dr.zpp_pool.next;dr.zpp_pool.next=null;dr.zpp_pool=eu}while(dn.zpp_pool!=null){var et=dn.zpp_pool.next;dn.zpp_pool.next=null;dn.zpp_pool=et}while(cm.zpp_pool!=null){var es=cm.zpp_pool.next;cm.zpp_pool.next=null;cm.zpp_pool=es}while(p.zpp_pool!=null){var er=p.zpp_pool.next;p.zpp_pool.next=null;p.zpp_pool=er}while(E.zpp_pool!=null){var eq=E.zpp_pool.next;E.zpp_pool.next=null;E.zpp_pool=eq}while(c3.zpp_pool!=null){var ep=c3.zpp_pool.next;c3.zpp_pool.next=null;c3.zpp_pool=ep}while(d3.zpp_pool!=null){var eo=d3.zpp_pool.next;d3.zpp_pool.next=null;d3.zpp_pool=eo}while(cH.zpp_pool!=null){var en=cH.zpp_pool.next;cH.zpp_pool.next=null;cH.zpp_pool=en}while(bB.zpp_pool!=null){var em=bB.zpp_pool.next;bB.zpp_pool.next=null;bB.zpp_pool=em}while(V.zpp_pool!=null){var el=V.zpp_pool.next;V.zpp_pool.next=null;V.zpp_pool=el}while(ah.zpp_pool!=null){var ek=ah.zpp_pool.next;ah.zpp_pool.next=null;ah.zpp_pool=ek}while(b8.zpp_pool!=null){var ej=b8.zpp_pool.next;b8.zpp_pool.next=null;b8.zpp_pool=ej}while(cD.zpp_pool!=null){var ei=cD.zpp_pool.next;cD.zpp_pool.next=null;cD.zpp_pool=ei}while(cG.zpp_pool!=null){var eh=cG.zpp_pool.next;cG.zpp_pool.next=null;cG.zpp_pool=eh}while(a.zpp_pool!=null){var eg=a.zpp_pool.next;a.zpp_pool.next=null;a.zpp_pool=eg}while(o.zpp_pool!=null){var ef=o.zpp_pool.next;o.zpp_pool.next=null;o.zpp_pool=ef}while(dU.zpp_pool!=null){var fE=dU.zpp_pool.next;dU.zpp_pool.next=null;dU.zpp_pool=fE}while(k.zpp_pool!=null){var fD=k.zpp_pool.next;k.zpp_pool.next=null;k.zpp_pool=fD}while(am.zpp_pool!=null){var fC=am.zpp_pool.next;am.zpp_pool.next=null;am.zpp_pool=fC}while(dS.zpp_pool!=null){var fB=dS.zpp_pool.next;dS.zpp_pool.next=null;dS.zpp_pool=fB}while(bT.zpp_pool!=null){var fA=bT.zpp_pool.next;bT.zpp_pool.next=null;bT.zpp_pool=fA}while(bX.zpp_pool!=null){var fz=bX.zpp_pool.next;bX.zpp_pool.next=null;bX.zpp_pool=fz}while(dG.zpp_pool!=null){var fy=dG.zpp_pool.next;dG.zpp_pool.next=null;dG.zpp_pool=fy}while(co.zpp_pool!=null){var fx=co.zpp_pool.next;co.zpp_pool.next=null;co.zpp_pool=fx}while(bD.zpp_pool!=null){var fw=bD.zpp_pool.next;bD.zpp_pool.next=null;bD.zpp_pool=fw}while(bl.zpp_pool!=null){var fv=bl.zpp_pool.next;bl.zpp_pool.next=null;bl.zpp_pool=fv}while(dI.zpp_pool!=null){var fu=dI.zpp_pool.next;dI.zpp_pool.next=null;dI.zpp_pool=fu}while(ca.zpp_pool!=null){var ft=ca.zpp_pool.next;ca.zpp_pool.next=null;ca.zpp_pool=ft}while(ct.zpp_pool!=null){var fs=ct.zpp_pool.next;ct.zpp_pool.next=null;ct.zpp_pool=fs}while(d6.zpp_pool!=null){var fr=d6.zpp_pool.next;d6.zpp_pool.next=null;d6.zpp_pool=fr}while(dY.zpp_pool!=null){var fq=dY.zpp_pool.next;dY.zpp_pool.next=null;dY.zpp_pool=fq}while(W.zpp_pool!=null){var fp=W.zpp_pool.next;W.zpp_pool.next=null;W.zpp_pool=fp}while(T.zpp_pool!=null){var fo=T.zpp_pool.next;T.zpp_pool.next=null;T.zpp_pool=fo}while(aV.zpp_pool!=null){var fn=aV.zpp_pool.next;aV.zpp_pool.next=null;aV.zpp_pool=fn}while(c8.zpp_pool!=null){var fm=c8.zpp_pool.next;c8.zpp_pool.next=null;c8.zpp_pool=fm}while(cl.zpp_pool!=null){var fl=cl.zpp_pool.next;cl.zpp_pool.next=null;cl.zpp_pool=fl}while(cq.zpp_pool!=null){var fk=cq.zpp_pool.next;cq.zpp_pool.next=null;cq.zpp_pool=fk}while(f.zpp_pool!=null){var fj=f.zpp_pool.next;f.zpp_pool.next=null;f.zpp_pool=fj}while(dz.zpp_pool!=null){var fi=dz.zpp_pool.next;dz.zpp_pool.next=null;dz.zpp_pool=fi}while(bG.zpp_pool!=null){var fh=bG.zpp_pool.next;bG.zpp_pool.next=null;bG.zpp_pool=fh}while(d2.zpp_pool!=null){var fg=d2.zpp_pool.next;d2.zpp_pool.next=null;d2.zpp_pool=fg}while(c2.zpp_pool!=null){var fe=c2.zpp_pool.next;c2.zpp_pool.next=null;c2.zpp_pool=fe}while(dv.zpp_pool!=null){var fc=dv.zpp_pool.next;dv.zpp_pool.next=null;dv.zpp_pool=fc}while(cW.zpp_pool!=null){var fa=cW.zpp_pool.next;cW.zpp_pool.next=null;cW.zpp_pool=fa}while(bx.zpp_pool!=null){var e8=bx.zpp_pool.next;bx.zpp_pool.next=null;bx.zpp_pool=e8}while(cg.zpp_pool!=null){var e6=cg.zpp_pool.next;cg.zpp_pool.next=null;cg.zpp_pool=e6}while(A.zpp_pool!=null){var eZ=A.zpp_pool.next;A.zpp_pool.next=null;A.zpp_pool=eZ}while(dK.zpp_pool!=null){var eY=dK.zpp_pool.next;dK.zpp_pool.next=null;dK.zpp_pool=eY}while(dT.zpp_pool!=null){var eX=dT.zpp_pool.next;dT.zpp_pool.next=null;dT.zpp_pool=eX}while(bb.zpp_pool!=null){var eW=bb.zpp_pool.next;bb.zpp_pool.next=null;bb.zpp_pool=eW}while(d9.zpp_pool!=null){var eV=d9.zpp_pool.next;d9.zpp_pool.next=null;d9.zpp_pool=eV}while(L.zpp_pool!=null){var eT=L.zpp_pool.next;L.zpp_pool.next=null;L.zpp_pool=eT}while(e.zpp_pool!=null){var eR=e.zpp_pool.next;e.zpp_pool.next=null;e.zpp_pool=eR}while(bi.zpp_pool!=null){var eP=bi.zpp_pool.next;bi.zpp_pool.next=null;bi.zpp_pool=eP}while(w.zpp_pool!=null){var eN=w.zpp_pool.next;w.zpp_pool.next=null;w.zpp_pool=eN}while(c5.zpp_pool!=null){var eL=c5.zpp_pool.next;c5.zpp_pool.next=null;c5.zpp_pool=eL}while(cA.zpp_pool!=null){var eF=cA.zpp_pool.next;cA.zpp_pool.next=null;cA.zpp_pool=eF}while(cn.zpp_pool!=null){var eE=cn.zpp_pool.next;cn.zpp_pool.next=null;cn.zpp_pool=eE}while(cM.zpp_pool!=null){var eD=cM.zpp_pool.next;cM.zpp_pool.next=null;cM.zpp_pool=eD}while(dp.zpp_pool!=null){var eC=dp.zpp_pool.next;dp.zpp_pool.next=null;dp.zpp_pool=eC}while(au.poolGeomPoly!=null){var eB=au.poolGeomPoly.zpp_pool;au.poolGeomPoly.zpp_pool=null;au.poolGeomPoly=eB}while(au.poolVec2!=null){var ez=au.poolVec2.zpp_pool;au.poolVec2.zpp_pool=null;au.poolVec2=ez}while(au.poolVec3!=null){var ex=au.poolVec3.zpp_pool;au.poolVec3.zpp_pool=null;au.poolVec3=ex}};cR.prototype.__class__=cR;var aW=sandbox.Main=function(){};aW.__name__=["sandbox","Main"];aW.main=function(){};aW.prototype.__class__=aW;var a0=zpp_nape.ZPP_Const=function(){};a0.__name__=["zpp_nape","ZPP_Const"];a0.POSINF=function(){return Infinity};a0.NEGINF=function(){return -Infinity};a0.prototype.__class__=a0;var cr=zpp_nape.ZPP_ID=function(){};cr.__name__=["zpp_nape","ZPP_ID"];cr.Constraint=function(){return cr._Constraint++};cr.Interactor=function(){return cr._Interactor++};cr.CbType=function(){return cr._CbType++};cr.CbSet=function(){return cr._CbSet++};cr.Listener=function(){return cr._Listener++};cr.ZPP_SimpleVert=function(){return cr._ZPP_SimpleVert++};cr.ZPP_SimpleSeg=function(){return cr._ZPP_SimpleSeg++};cr.Space=function(){return cr._Space++};cr.InteractionGroup=function(){return cr._InteractionGroup++};cr.prototype.__class__=cr;var cS=zpp_nape.callbacks.ZPP_Callback=function(){this.constraint=null;this.body=null;this.pre_swapped=false;this.pre_arbiter=null;this.wrap_arbiters=null;this.set=null;this.int2=null;this.int1=null;this.length=0;this.prev=null;this.next=null;this.index=0;this.space=null;this.listener=null;this.event=0;this.outer_int=null;this.outer_con=null;this.outer_body=null;this.length=0};cS.__name__=["zpp_nape","callbacks","ZPP_Callback"];cS.prototype.outer_body=null;cS.prototype.outer_con=null;cS.prototype.outer_int=null;cS.prototype.wrapper_body=function(){if(this.outer_body==null){this.outer_body=new dN();this.outer_body.zpp_inner=this}return this.outer_body};cS.prototype.wrapper_con=function(){if(this.outer_con==null){this.outer_con=new dm();this.outer_con.zpp_inner=this}return this.outer_con};cS.prototype.wrapper_int=function(){if(this.outer_int==null){this.outer_int=new ay();this.outer_int.zpp_inner=this}if(this.wrap_arbiters==null){this.wrap_arbiters=U.get(this.set.arbiters,true)}else{this.wrap_arbiters.zpp_inner.inner=this.set.arbiters}this.wrap_arbiters.zpp_inner.zip_length=true;this.wrap_arbiters.zpp_inner.at_ite=null;return this.outer_int};cS.prototype.event=null;cS.prototype.listener=null;cS.prototype.space=null;cS.prototype.index=null;cS.prototype.next=null;cS.prototype.prev=null;cS.prototype.length=null;cS.prototype.push=function(ea){if(this.prev!=null){this.prev.next=ea}else{this.next=ea}ea.prev=this.prev;ea.next=null;this.prev=ea;this.length++};cS.prototype.push_rev=function(ea){if(this.next!=null){this.next.prev=ea}else{this.prev=ea}ea.next=this.next;ea.prev=null;this.next=ea;this.length++};cS.prototype.pop=function(){var ea=this.next;this.next=ea.next;if(this.next==null){this.prev=null}else{this.next.prev=null}this.length--;return ea};cS.prototype.pop_rev=function(){var ea=this.prev;this.prev=ea.prev;if(this.prev==null){this.next=null}else{this.prev.next=null}this.length--;return ea};cS.prototype.empty=function(){return this.next==null};cS.prototype.clear=function(){while(!this.empty()){this.pop()}};cS.prototype.splice=function(eb){var ea=eb.next;if(eb.prev==null){this.next=eb.next;if(this.next!=null){this.next.prev=null}else{this.prev=null}}else{eb.prev.next=eb.next;if(eb.next!=null){eb.next.prev=eb.prev}else{this.prev=eb.prev}}this.length--;return ea};cS.prototype.rotateL=function(){this.push(this.pop())};cS.prototype.rotateR=function(){this.push_rev(this.pop_rev())};cS.prototype.cycleNext=function(ea){if(ea.next==null){return this.next}else{return ea.next}};cS.prototype.cyclePrev=function(ea){if(ea.prev==null){return this.prev}else{return ea.prev}};cS.prototype.at=function(eb){var ea=this.next;while(eb--!=0){ea=ea.next}return ea};cS.prototype.rev_at=function(eb){var ea=this.prev;while(eb--!=0){ea=ea.prev}return ea};cS.prototype.free=function(){this.int1=this.int2=null;this.body=null;this.constraint=null;this.listener=null;if(this.wrap_arbiters!=null){this.wrap_arbiters.zpp_inner.inner=null}this.set=null};cS.prototype.alloc=function(){};cS.prototype.int1=null;cS.prototype.int2=null;cS.prototype.set=null;cS.prototype.wrap_arbiters=null;cS.prototype.pre_arbiter=null;cS.prototype.pre_swapped=null;cS.prototype.genarbs=function(){if(this.wrap_arbiters==null){this.wrap_arbiters=U.get(this.set.arbiters,true)}else{this.wrap_arbiters.zpp_inner.inner=this.set.arbiters}this.wrap_arbiters.zpp_inner.zip_length=true;this.wrap_arbiters.zpp_inner.at_ite=null};cS.prototype.body=null;cS.prototype.constraint=null;cS.prototype.__class__=cS;var cC=zpp_nape.callbacks.ZPP_CbSet=function(){this.wrap_constraints=null;this.constraints=null;this.wrap_interactors=null;this.interactors=null;this.zip_conlisteners=false;this.conlisteners=null;this.zip_bodylisteners=false;this.bodylisteners=null;this.zip_listeners=false;this.listeners=null;this.cbpairs=null;this.manager=null;this.id=0;this.next=null;this.count=0;this.cbTypes=null;this.cbTypes=new x();this.listeners=new cp();this.zip_listeners=true;this.bodylisteners=new bh();this.zip_bodylisteners=true;this.conlisteners=new cY();this.zip_conlisteners=true;this.constraints=new m();this.interactors=new bn();this.id=cr.CbSet();this.cbpairs=new aK()};cC.__name__=["zpp_nape","callbacks","ZPP_CbSet"];cC.setlt=function(ed,eb){var ef=ed.cbTypes.head;var ee=eb.cbTypes.head;while(ef!=null&&ee!=null){var ec=ef.elt;var ea=ee.elt;if(ec.id<ea.id){return true}if(ea.id<ec.id){return false}else{ef=ef.next;ee=ee.next}}if(ee!=null){return ef==null}else{return false}};cC.get=function(ee){var eb;if(cC.zpp_pool==null){eb=new cC()}else{eb=cC.zpp_pool;cC.zpp_pool=eb.next;eb.next=null}var ed=null;var ec=ee.head;while(ec!=null){var ea=ec.elt;ed=eb.cbTypes.insert(ed,ea);ea.cbsets.add(eb);ec=ec.next}return eb};cC.compatible=function(eb,ei,eh){var ec;var ee=eb.options1;var ea=ei.cbTypes;if(ee.nonemptyintersection(ea,ee.includes)&&!ee.nonemptyintersection(ea,ee.excludes)){var eg=eb.options2;var el=eh.cbTypes;if(eg.nonemptyintersection(el,eg.includes)){ec=!eg.nonemptyintersection(el,eg.excludes)}else{ec=false}}else{ec=false}if(!ec){var ef=eb.options2;var ek=ei.cbTypes;if(ef.nonemptyintersection(ek,ef.includes)&&!ef.nonemptyintersection(ek,ef.excludes)){var ed=eb.options1;var ej=eh.cbTypes;if(ed.nonemptyintersection(ej,ed.includes)){return !ed.nonemptyintersection(ej,ed.excludes)}else{return false}}else{return false}}else{return true}};cC.empty_intersection=function(eb,ea){var ec=null;var ed=(eb.cbpairs.length<ea.cbpairs.length?eb.cbpairs:ea.cbpairs).head;while(ed!=null){var ef=ed.elt;if(ef.a==eb&&ef.b==ea||ef.a==ea&&ef.b==eb){ec=ef;break}ed=ed.next}if(ec==null){var ee;if(ar.zpp_pool==null){ee=new ar()}else{ee=ar.zpp_pool;ar.zpp_pool=ee.next;ee.next=null}ee.zip_listeners=true;if(cC.setlt(eb,ea)){ee.a=eb;ee.b=ea}else{ee.a=ea;ee.b=eb}ec=ee;eb.cbpairs.add(ec);if(ea!=eb){ea.cbpairs.add(ec)}}if(ec.zip_listeners){ec.zip_listeners=false;ec.__validate()}return ec.listeners.head==null};cC.single_intersection=function(eb,ea,ee){var ec=null;var ed=(eb.cbpairs.length<ea.cbpairs.length?eb.cbpairs:ea.cbpairs).head;while(ed!=null){var eh=ed.elt;if(eh.a==eb&&eh.b==ea||eh.a==ea&&eh.b==eb){ec=eh;break}ed=ed.next}if(ec==null){var eg;if(ar.zpp_pool==null){eg=new ar()}else{eg=ar.zpp_pool;ar.zpp_pool=eg.next;eg.next=null}eg.zip_listeners=true;if(cC.setlt(eb,ea)){eg.a=eb;eg.b=ea}else{eg.a=ea;eg.b=eb}ec=eg;eb.cbpairs.add(ec);if(ea!=eb){ea.cbpairs.add(ec)}}if(ec.zip_listeners){ec.zip_listeners=false;ec.__validate()}var ef=ec.listeners.head;if(ef!=null&&ef.elt==ee){return ef.next==null}else{return false}};cC.find_all=function(ei,eg,ea,ed){var ee=null;var ec=(ei.cbpairs.length<eg.cbpairs.length?ei.cbpairs:eg.cbpairs).head;while(ec!=null){var eb=ec.elt;if(eb.a==ei&&eb.b==eg||eb.a==eg&&eb.b==ei){ee=eb;break}ec=ec.next}if(ee==null){var ef;if(ar.zpp_pool==null){ef=new ar()}else{ef=ar.zpp_pool;ar.zpp_pool=ef.next;ef.next=null}ef.zip_listeners=true;if(cC.setlt(ei,eg)){ef.a=ei;ef.b=eg}else{ef.a=eg;ef.b=ei}ee=ef;ei.cbpairs.add(ee);if(eg!=ei){eg.cbpairs.add(ee)}}if(ee.zip_listeners){ee.zip_listeners=false;ee.__validate()}var ej=ee.listeners.head;while(ej!=null){var eh=ej.elt;if(eh.event==ea){ed(eh)}ej=ej.next}};cC.prototype.cbTypes=null;cC.prototype.count=null;cC.prototype.next=null;cC.prototype.id=null;cC.prototype.manager=null;cC.prototype.cbpairs=null;cC.prototype.increment=function(){this.count++};cC.prototype.decrement=function(){return --this.count==0};cC.prototype.invalidate_pairs=function(){var ea=this.cbpairs.head;while(ea!=null){ea.elt.zip_listeners=true;ea=ea.next}};cC.prototype.listeners=null;cC.prototype.zip_listeners=null;cC.prototype.invalidate_listeners=function(){this.zip_listeners=true;this.invalidate_pairs()};cC.prototype.validate_listeners=function(){if(this.zip_listeners){this.zip_listeners=false;this.realvalidate_listeners()}};cC.prototype.realvalidate_listeners=function(){this.listeners.clear();var eb=this.cbTypes.head;while(eb!=null){var eh=null;var ed=this.listeners.head;var ea=eb.elt.listeners.head;while(ea!=null){var ec=ea.elt;if(ed!=null&&ed.elt==ec){ea=ea.next;eh=ed;ed=ed.next}else{var ee;if(ed!=null){var ei=ed.elt;if(ec.precedence<=ei.precedence){if(ec.precedence==ei.precedence){ee=ec.id>ei.id}else{ee=false}}else{ee=true}}else{ee=true}if(ee){if(ec.space==this.manager.space){var ef=this.listeners;var eg;if(aF.zpp_pool==null){eg=new aF()}else{eg=aF.zpp_pool;aF.zpp_pool=eg.next;eg.next=null}eg.elt=ec;var ej=eg;if(eh==null){ej.next=ef.head;ef.head=ej}else{ej.next=eh.next;eh.next=ej}ef.pushmod=ef.modified=true;ef.length++;eh=ej}ea=ea.next}else{eh=ed;ed=ed.next}}}eb=eb.next}};cC.prototype.bodylisteners=null;cC.prototype.zip_bodylisteners=null;cC.prototype.invalidate_bodylisteners=function(){this.zip_bodylisteners=true};cC.prototype.validate_bodylisteners=function(){if(this.zip_bodylisteners){this.zip_bodylisteners=false;this.realvalidate_bodylisteners()}};cC.prototype.realvalidate_bodylisteners=function(){this.bodylisteners.clear();var eb=this.cbTypes.head;while(eb!=null){var ei=null;var ee=this.bodylisteners.head;var ea=eb.elt.bodylisteners.head;while(ea!=null){var ed=ea.elt;if(ee!=null&&ee.elt==ed){ea=ea.next;ei=ee;ee=ee.next}else{var ef;if(ee!=null){var ek=ee.elt;if(ed.precedence<=ek.precedence){if(ed.precedence==ek.precedence){ef=ed.id>ek.id}else{ef=false}}else{ef=true}}else{ef=true}if(ef){var ec;var eg=ed.options;if(!eg.nonemptyintersection(this.cbTypes,eg.excludes)){ec=ed.space==this.manager.space}else{ec=false}if(ec){var ej=this.bodylisteners;var eh;if(aT.zpp_pool==null){eh=new aT()}else{eh=aT.zpp_pool;aT.zpp_pool=eh.next;eh.next=null}eh.elt=ed;var el=eh;if(ei==null){el.next=ej.head;ej.head=el}else{el.next=ei.next;ei.next=el}ej.pushmod=ej.modified=true;ej.length++;ei=el}ea=ea.next}else{ei=ee;ee=ee.next}}}eb=eb.next}};cC.prototype.conlisteners=null;cC.prototype.zip_conlisteners=null;cC.prototype.invalidate_conlisteners=function(){this.zip_conlisteners=true};cC.prototype.validate_conlisteners=function(){if(this.zip_conlisteners){this.zip_conlisteners=false;this.realvalidate_conlisteners()}};cC.prototype.realvalidate_conlisteners=function(){this.conlisteners.clear();var eb=this.cbTypes.head;while(eb!=null){var ei=null;var ee=this.conlisteners.head;var ea=eb.elt.conlisteners.head;while(ea!=null){var ed=ea.elt;if(ee!=null&&ee.elt==ed){ea=ea.next;ei=ee;ee=ee.next}else{var ef;if(ee!=null){var ek=ee.elt;if(ed.precedence<=ek.precedence){if(ed.precedence==ek.precedence){ef=ed.id>ek.id}else{ef=false}}else{ef=true}}else{ef=true}if(ef){var ec;var eg=ed.options;if(!eg.nonemptyintersection(this.cbTypes,eg.excludes)){ec=ed.space==this.manager.space}else{ec=false}if(ec){var ej=this.conlisteners;var eh;if(aR.zpp_pool==null){eh=new aR()}else{eh=aR.zpp_pool;aR.zpp_pool=eh.next;eh.next=null}eh.elt=ed;var el=eh;if(ei==null){el.next=ej.head;ej.head=el}else{el.next=ei.next;ei.next=el}ej.pushmod=ej.modified=true;ej.length++;ei=el}ea=ea.next}else{ei=ee;ee=ee.next}}}eb=eb.next}};cC.prototype.validate=function(){if(this.zip_listeners){this.zip_listeners=false;this.realvalidate_listeners()}if(this.zip_bodylisteners){this.zip_bodylisteners=false;this.realvalidate_bodylisteners()}if(this.zip_conlisteners){this.zip_conlisteners=false;this.realvalidate_conlisteners()}};cC.prototype.interactors=null;cC.prototype.wrap_interactors=null;cC.prototype.constraints=null;cC.prototype.wrap_constraints=null;cC.prototype.addConstraint=function(ea){this.constraints.add(ea)};cC.prototype.addInteractor=function(ea){this.interactors.add(ea)};cC.prototype.remConstraint=function(ea){this.constraints.remove(ea)};cC.prototype.remInteractor=function(ea){this.interactors.remove(ea)};cC.prototype.free=function(){this.listeners.clear();this.zip_listeners=true;this.bodylisteners.clear();this.zip_bodylisteners=true;this.conlisteners.clear();this.zip_conlisteners=true;while(this.cbTypes.head!=null){this.cbTypes.pop_unsafe().cbsets.remove(this)}};cC.prototype.alloc=function(){};cC.prototype.__class__=cC;var ar=zpp_nape.callbacks.ZPP_CbSetPair=function(){this.listeners=null;this.zip_listeners=false;this.next=null;this.b=null;this.a=null;this.listeners=new cp()};ar.__name__=["zpp_nape","callbacks","ZPP_CbSetPair"];ar.get=function(eb,ea){var ec;if(ar.zpp_pool==null){ec=new ar()}else{ec=ar.zpp_pool;ar.zpp_pool=ec.next;ec.next=null}ec.zip_listeners=true;if(cC.setlt(eb,ea)){ec.a=eb;ec.b=ea}else{ec.a=ea;ec.b=eb}return ec};ar.setlt=function(ea,eb){if(!cC.setlt(ea.a,eb.a)){if(ea.a==eb.a){return cC.setlt(ea.b,eb.b)}else{return false}}else{return true}};ar.prototype.a=null;ar.prototype.b=null;ar.prototype.next=null;ar.prototype.free=function(){this.a=this.b=null;this.listeners.clear()};ar.prototype.alloc=function(){this.zip_listeners=true};ar.prototype.compatible=function(eb){var ec;var ee=eb.options1;var ea=this.a.cbTypes;if(ee.nonemptyintersection(ea,ee.includes)&&!ee.nonemptyintersection(ea,ee.excludes)){var eg=eb.options2;var ej=this.b.cbTypes;if(eg.nonemptyintersection(ej,eg.includes)){ec=!eg.nonemptyintersection(ej,eg.excludes)}else{ec=false}}else{ec=false}if(!ec){var ef=eb.options2;var ei=this.a.cbTypes;if(ef.nonemptyintersection(ei,ef.includes)&&!ef.nonemptyintersection(ei,ef.excludes)){var ed=eb.options1;var eh=this.b.cbTypes;if(ed.nonemptyintersection(eh,ed.includes)){return !ed.nonemptyintersection(eh,ed.excludes)}else{return false}}else{return false}}else{return true}};ar.prototype.zip_listeners=null;ar.prototype.listeners=null;ar.prototype.invalidate=function(){this.zip_listeners=true};ar.prototype.validate=function(){if(this.zip_listeners){this.zip_listeners=false;this.__validate()}};ar.prototype.__validate=function(){this.listeners.clear();var ek=this.a.listeners.head;var ee=this.b.listeners.head;while(ek!=null&&ee!=null){var ea=ek.elt;var ej=ee.elt;if(ea==ej){var ed;var ec;var eg=ea.options1;var eb=this.a.cbTypes;if(eg.nonemptyintersection(eb,eg.includes)&&!eg.nonemptyintersection(eb,eg.excludes)){var ei=ea.options2;var en=this.b.cbTypes;if(ei.nonemptyintersection(en,ei.includes)){ec=!ei.nonemptyintersection(en,ei.excludes)}else{ec=false}}else{ec=false}if(!ec){var eh=ea.options2;var em=this.a.cbTypes;if(eh.nonemptyintersection(em,eh.includes)&&!eh.nonemptyintersection(em,eh.excludes)){var ef=ea.options1;var el=this.b.cbTypes;if(ef.nonemptyintersection(el,ef.includes)){ed=!ef.nonemptyintersection(el,ef.excludes)}else{ed=false}}else{ed=false}}else{ed=true}if(ed){this.listeners.add(ea)}ek=ek.next;ee=ee.next}else{if(ea.precedence>ej.precedence||ea.precedence==ej.precedence&&ea.id>ej.id){ek=ek.next}else{ee=ee.next}}}};ar.prototype.empty_intersection=function(){return this.listeners.head==null};ar.prototype.single_intersection=function(ea){var eb=this.listeners.head;if(eb!=null&&eb.elt==ea){return eb.next==null}else{return false}};ar.prototype.forall=function(ed,eb){var ec=this.listeners.head;while(ec!=null){var ea=ec.elt;if(ea.event==ed){eb(ea)}ec=ec.next}};ar.prototype.__class__=ar;var cp=zpp_nape.util.ZNPList_ZPP_InteractionListener=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};cp.__name__=["zpp_nape","util","ZNPList_ZPP_InteractionListener"];cp.prototype.head=null;cp.prototype.begin=function(){return this.head};cp.prototype.modified=null;cp.prototype.pushmod=null;cp.prototype.length=null;cp.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};cp.prototype.add=function(ec){var eb;if(aF.zpp_pool==null){eb=new aF()}else{eb=aF.zpp_pool;aF.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};cp.prototype.inlined_add=function(ec){var eb;if(aF.zpp_pool==null){eb=new aF()}else{eb=aF.zpp_pool;aF.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};cp.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};cp.prototype.insert=function(ed,ec){var eb;if(aF.zpp_pool==null){eb=new aF()}else{eb=aF.zpp_pool;aF.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cp.prototype.inlined_insert=function(ed,ec){var eb;if(aF.zpp_pool==null){eb=new aF()}else{eb=aF.zpp_pool;aF.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cp.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aF.zpp_pool;aF.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};cp.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aF.zpp_pool;aF.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};cp.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};cp.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};cp.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=aF.zpp_pool;aF.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};cp.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};cp.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=aF.zpp_pool;aF.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};cp.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=aF.zpp_pool;aF.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};cp.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=aF.zpp_pool;aF.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};cp.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=aF.zpp_pool;aF.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};cp.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};cp.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aF.zpp_pool;aF.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};cp.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aF.zpp_pool;aF.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};cp.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};cp.prototype.empty=function(){return this.head==null};cp.prototype.size=function(){return this.length};cp.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};cp.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};cp.prototype.front=function(){return this.head.elt};cp.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};cp.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};cp.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};cp.prototype.__class__=cp;var bh=zpp_nape.util.ZNPList_ZPP_BodyListener=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};bh.__name__=["zpp_nape","util","ZNPList_ZPP_BodyListener"];bh.prototype.head=null;bh.prototype.begin=function(){return this.head};bh.prototype.modified=null;bh.prototype.pushmod=null;bh.prototype.length=null;bh.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};bh.prototype.add=function(ec){var eb;if(aT.zpp_pool==null){eb=new aT()}else{eb=aT.zpp_pool;aT.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bh.prototype.inlined_add=function(ec){var eb;if(aT.zpp_pool==null){eb=new aT()}else{eb=aT.zpp_pool;aT.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bh.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};bh.prototype.insert=function(ed,ec){var eb;if(aT.zpp_pool==null){eb=new aT()}else{eb=aT.zpp_pool;aT.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bh.prototype.inlined_insert=function(ed,ec){var eb;if(aT.zpp_pool==null){eb=new aT()}else{eb=aT.zpp_pool;aT.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bh.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aT.zpp_pool;aT.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bh.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aT.zpp_pool;aT.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bh.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bh.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bh.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=aT.zpp_pool;aT.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bh.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bh.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=aT.zpp_pool;aT.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bh.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=aT.zpp_pool;aT.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};bh.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=aT.zpp_pool;aT.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bh.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=aT.zpp_pool;aT.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bh.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bh.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aT.zpp_pool;aT.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bh.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aT.zpp_pool;aT.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bh.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bh.prototype.empty=function(){return this.head==null};bh.prototype.size=function(){return this.length};bh.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bh.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bh.prototype.front=function(){return this.head.elt};bh.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};bh.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};bh.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};bh.prototype.__class__=bh;var cY=zpp_nape.util.ZNPList_ZPP_ConstraintListener=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};cY.__name__=["zpp_nape","util","ZNPList_ZPP_ConstraintListener"];cY.prototype.head=null;cY.prototype.begin=function(){return this.head};cY.prototype.modified=null;cY.prototype.pushmod=null;cY.prototype.length=null;cY.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};cY.prototype.add=function(ec){var eb;if(aR.zpp_pool==null){eb=new aR()}else{eb=aR.zpp_pool;aR.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};cY.prototype.inlined_add=function(ec){var eb;if(aR.zpp_pool==null){eb=new aR()}else{eb=aR.zpp_pool;aR.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};cY.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};cY.prototype.insert=function(ed,ec){var eb;if(aR.zpp_pool==null){eb=new aR()}else{eb=aR.zpp_pool;aR.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cY.prototype.inlined_insert=function(ed,ec){var eb;if(aR.zpp_pool==null){eb=new aR()}else{eb=aR.zpp_pool;aR.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cY.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aR.zpp_pool;aR.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};cY.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aR.zpp_pool;aR.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};cY.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};cY.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};cY.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=aR.zpp_pool;aR.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};cY.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};cY.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=aR.zpp_pool;aR.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};cY.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=aR.zpp_pool;aR.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};cY.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=aR.zpp_pool;aR.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};cY.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=aR.zpp_pool;aR.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};cY.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};cY.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aR.zpp_pool;aR.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};cY.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aR.zpp_pool;aR.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};cY.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};cY.prototype.empty=function(){return this.head==null};cY.prototype.size=function(){return this.length};cY.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};cY.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};cY.prototype.front=function(){return this.head.elt};cY.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};cY.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};cY.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};cY.prototype.__class__=cY;var m=zpp_nape.util.ZNPList_ZPP_Constraint=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};m.__name__=["zpp_nape","util","ZNPList_ZPP_Constraint"];m.prototype.head=null;m.prototype.begin=function(){return this.head};m.prototype.modified=null;m.prototype.pushmod=null;m.prototype.length=null;m.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};m.prototype.add=function(ec){var eb;if(cx.zpp_pool==null){eb=new cx()}else{eb=cx.zpp_pool;cx.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};m.prototype.inlined_add=function(ec){var eb;if(cx.zpp_pool==null){eb=new cx()}else{eb=cx.zpp_pool;cx.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};m.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};m.prototype.insert=function(ed,ec){var eb;if(cx.zpp_pool==null){eb=new cx()}else{eb=cx.zpp_pool;cx.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};m.prototype.inlined_insert=function(ed,ec){var eb;if(cx.zpp_pool==null){eb=new cx()}else{eb=cx.zpp_pool;cx.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};m.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cx.zpp_pool;cx.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};m.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cx.zpp_pool;cx.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};m.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};m.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};m.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cx.zpp_pool;cx.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};m.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};m.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cx.zpp_pool;cx.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};m.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cx.zpp_pool;cx.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};m.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cx.zpp_pool;cx.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};m.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cx.zpp_pool;cx.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};m.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};m.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cx.zpp_pool;cx.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};m.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cx.zpp_pool;cx.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};m.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};m.prototype.empty=function(){return this.head==null};m.prototype.size=function(){return this.length};m.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};m.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};m.prototype.front=function(){return this.head.elt};m.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};m.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};m.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};m.prototype.__class__=m;var bn=zpp_nape.util.ZNPList_ZPP_Interactor=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};bn.__name__=["zpp_nape","util","ZNPList_ZPP_Interactor"];bn.prototype.head=null;bn.prototype.begin=function(){return this.head};bn.prototype.modified=null;bn.prototype.pushmod=null;bn.prototype.length=null;bn.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};bn.prototype.add=function(ec){var eb;if(g.zpp_pool==null){eb=new g()}else{eb=g.zpp_pool;g.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bn.prototype.inlined_add=function(ec){var eb;if(g.zpp_pool==null){eb=new g()}else{eb=g.zpp_pool;g.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bn.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};bn.prototype.insert=function(ed,ec){var eb;if(g.zpp_pool==null){eb=new g()}else{eb=g.zpp_pool;g.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bn.prototype.inlined_insert=function(ed,ec){var eb;if(g.zpp_pool==null){eb=new g()}else{eb=g.zpp_pool;g.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bn.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=g.zpp_pool;g.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bn.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=g.zpp_pool;g.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bn.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bn.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bn.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=g.zpp_pool;g.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bn.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bn.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=g.zpp_pool;g.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bn.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=g.zpp_pool;g.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};bn.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=g.zpp_pool;g.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bn.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=g.zpp_pool;g.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bn.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bn.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=g.zpp_pool;g.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bn.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=g.zpp_pool;g.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bn.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bn.prototype.empty=function(){return this.head==null};bn.prototype.size=function(){return this.length};bn.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bn.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bn.prototype.front=function(){return this.head.elt};bn.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};bn.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};bn.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};bn.prototype.__class__=bn;var af=zpp_nape.util.ZNPList_ZPP_CbSet=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};af.__name__=["zpp_nape","util","ZNPList_ZPP_CbSet"];af.prototype.head=null;af.prototype.begin=function(){return this.head};af.prototype.modified=null;af.prototype.pushmod=null;af.prototype.length=null;af.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};af.prototype.add=function(ec){var eb;if(cO.zpp_pool==null){eb=new cO()}else{eb=cO.zpp_pool;cO.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};af.prototype.inlined_add=function(ec){var eb;if(cO.zpp_pool==null){eb=new cO()}else{eb=cO.zpp_pool;cO.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};af.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};af.prototype.insert=function(ed,ec){var eb;if(cO.zpp_pool==null){eb=new cO()}else{eb=cO.zpp_pool;cO.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};af.prototype.inlined_insert=function(ed,ec){var eb;if(cO.zpp_pool==null){eb=new cO()}else{eb=cO.zpp_pool;cO.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};af.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cO.zpp_pool;cO.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};af.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cO.zpp_pool;cO.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};af.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};af.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};af.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cO.zpp_pool;cO.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};af.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};af.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cO.zpp_pool;cO.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};af.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cO.zpp_pool;cO.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};af.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cO.zpp_pool;cO.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};af.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cO.zpp_pool;cO.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};af.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};af.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cO.zpp_pool;cO.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};af.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cO.zpp_pool;cO.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};af.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};af.prototype.empty=function(){return this.head==null};af.prototype.size=function(){return this.length};af.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};af.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};af.prototype.front=function(){return this.head.elt};af.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};af.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};af.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};af.prototype.__class__=af;var db=zpp_nape.callbacks.ZPP_CbType=function(){this.conlisteners=null;this.bodylisteners=null;this.listeners=null;this.cbsets=null;this.id=0;this.userData=null;this.outer=null;this.id=cr.CbType();this.listeners=new cp();this.bodylisteners=new bh();this.conlisteners=new cY();this.constraints=new m();this.interactors=new bn();this.cbsets=new af()};db.__name__=["zpp_nape","callbacks","ZPP_CbType"];db.setlt=function(eb,ea){return eb.id<ea.id};db.prototype.outer=null;db.prototype.userData=null;db.prototype.id=null;db.prototype.cbsets=null;db.prototype.interactors=null;db.prototype.wrap_interactors=null;db.prototype.constraints=null;db.prototype.wrap_constraints=null;db.prototype.addConstraint=function(ea){this.constraints.add(ea)};db.prototype.addInteractor=function(ea){this.interactors.add(ea)};db.prototype.remConstraint=function(ea){this.constraints.remove(ea)};db.prototype.remInteractor=function(ea){this.interactors.remove(ea)};db.prototype.listeners=null;db.prototype.addint=function(eg){var ec=null;var ea=this.listeners.head;while(ea!=null){var ed=ea.elt;if(eg.precedence>ed.precedence||eg.precedence==ed.precedence&&eg.id>ed.id){break}ec=ea;ea=ea.next}var ee=this.listeners;var ef;if(aF.zpp_pool==null){ef=new aF()}else{ef=aF.zpp_pool;aF.zpp_pool=ef.next;ef.next=null}ef.elt=eg;var ei=ef;if(ec==null){ei.next=ee.head;ee.head=ei}else{ei.next=ec.next;ec.next=ei}ee.pushmod=ee.modified=true;ee.length++;var eh=this.cbsets.head;while(eh!=null){var eb=eh.elt;eb.zip_listeners=true;eb.invalidate_pairs();eh=eh.next}};db.prototype.removeint=function(eb){this.listeners.remove(eb);var ec=this.cbsets.head;while(ec!=null){var ea=ec.elt;ea.zip_listeners=true;ea.invalidate_pairs();ec=ec.next}};db.prototype.invalidateint=function(){var eb=this.cbsets.head;while(eb!=null){var ea=eb.elt;ea.zip_listeners=true;ea.invalidate_pairs();eb=eb.next}};db.prototype.bodylisteners=null;db.prototype.addbody=function(ea){var eg=null;var ee=this.bodylisteners.head;while(ee!=null){var ed=ee.elt;if(ea.precedence>ed.precedence||ea.precedence==ed.precedence&&ea.id>ed.id){break}eg=ee;ee=ee.next}var eh=this.bodylisteners;var ec;if(aT.zpp_pool==null){ec=new aT()}else{ec=aT.zpp_pool;aT.zpp_pool=ec.next;ec.next=null}ec.elt=ea;var eb=ec;if(eg==null){eb.next=eh.head;eh.head=eb}else{eb.next=eg.next;eg.next=eb}eh.pushmod=eh.modified=true;eh.length++;var ef=this.cbsets.head;while(ef!=null){ef.elt.zip_bodylisteners=true;ef=ef.next}};db.prototype.removebody=function(ea){this.bodylisteners.remove(ea);var eb=this.cbsets.head;while(eb!=null){eb.elt.zip_bodylisteners=true;eb=eb.next}};db.prototype.invalidatebody=function(){var ea=this.cbsets.head;while(ea!=null){ea.elt.zip_bodylisteners=true;ea=ea.next}};db.prototype.conlisteners=null;db.prototype.addconstraint=function(ea){var eg=null;var ee=this.conlisteners.head;while(ee!=null){var ed=ee.elt;if(ea.precedence>ed.precedence||ea.precedence==ed.precedence&&ea.id>ed.id){break}eg=ee;ee=ee.next}var eh=this.conlisteners;var ec;if(aR.zpp_pool==null){ec=new aR()}else{ec=aR.zpp_pool;aR.zpp_pool=ec.next;ec.next=null}ec.elt=ea;var eb=ec;if(eg==null){eb.next=eh.head;eh.head=eb}else{eb.next=eg.next;eg.next=eb}eh.pushmod=eh.modified=true;eh.length++;var ef=this.cbsets.head;while(ef!=null){ef.elt.zip_conlisteners=true;ef=ef.next}};db.prototype.removeconstraint=function(ea){this.conlisteners.remove(ea);var eb=this.cbsets.head;while(eb!=null){eb.elt.zip_conlisteners=true;eb=eb.next}};db.prototype.invalidateconstraint=function(){var ea=this.cbsets.head;while(ea!=null){ea.elt.zip_conlisteners=true;ea=ea.next}};db.prototype.__class__=db;var br=zpp_nape.util.ZPP_Flags=function(){};br.__name__=["zpp_nape","util","ZPP_Flags"];br.GravMassMode_DEFAULT=null;br.GravMassMode_FIXED=null;br.GravMassMode_SCALED=null;br.InertiaMode_DEFAULT=null;br.InertiaMode_FIXED=null;br.MassMode_DEFAULT=null;br.MassMode_FIXED=null;br.BodyType_STATIC=null;br.BodyType_DYNAMIC=null;br.BodyType_KINEMATIC=null;br.ListenerType_BODY=null;br.PreFlag_ACCEPT=null;br.ListenerType_CONSTRAINT=null;br.PreFlag_IGNORE=null;br.ListenerType_INTERACTION=null;br.PreFlag_ACCEPT_ONCE=null;br.ListenerType_PRE=null;br.PreFlag_IGNORE_ONCE=null;br.CbEvent_BEGIN=null;br.InteractionType_COLLISION=null;br.CbEvent_ONGOING=null;br.InteractionType_SENSOR=null;br.CbEvent_END=null;br.InteractionType_FLUID=null;br.CbEvent_WAKE=null;br.InteractionType_ANY=null;br.CbEvent_SLEEP=null;br.CbEvent_BREAK=null;br.CbEvent_PRE=null;br.Winding_UNDEFINED=null;br.Winding_CLOCKWISE=null;br.Winding_ANTICLOCKWISE=null;br.ValidationResult_VALID=null;br.ValidationResult_DEGENERATE=null;br.ValidationResult_CONCAVE=null;br.ValidationResult_SELF_INTERSECTING=null;br.ShapeType_CIRCLE=null;br.ShapeType_POLYGON=null;br.Broadphase_DYNAMIC_AABB_TREE=null;br.Broadphase_SWEEP_AND_PRUNE=null;br.ArbiterType_COLLISION=null;br.ArbiterType_SENSOR=null;br.ArbiterType_FLUID=null;br.prototype.__class__=br;var cc=zpp_nape.callbacks.ZPP_Listener=function(){this.space=null;this.interaction=null;this.constraint=null;this.body=null;this.precedence=0;this.event=0;this.type=0;this.id=0;this.outer=null;this.id=cr.Listener()};cc.__name__=["zpp_nape","callbacks","ZPP_Listener"];cc.setlt=function(eb,ea){if(eb.precedence<=ea.precedence){if(eb.precedence==ea.precedence){return eb.id>ea.id}else{return false}}else{return true}};cc.prototype.outer=null;cc.prototype.id=null;cc.prototype.type=null;cc.prototype.event=null;cc.prototype.precedence=null;cc.prototype.body=null;cc.prototype.constraint=null;cc.prototype.interaction=null;cc.prototype.space=null;cc.prototype.swapEvent=function(ea){};cc.prototype.invalidate_precedence=function(){};cc.prototype.addedToSpace=function(){};cc.prototype.removedFromSpace=function(){};cc.prototype.__class__=cc;var bW=zpp_nape.callbacks.ZPP_BodyListener=function(ea,ec,eb){this.handler=null;this.options=null;this.outer_zn=null;cc.call(this);this.event=ec;this.handler=eb;this.body=this;this.type=0;this.options=ea.zpp_inner};bW.__name__=["zpp_nape","callbacks","ZPP_BodyListener"];bW.__super__=cc;bW.prototype=Object.create(cc.prototype);bW.prototype.outer_zn=null;bW.prototype.options=null;bW.prototype.handler=null;bW.prototype.addedToSpace=function(){this.options.handler=dX(this,this.cbtype_change);var ea=this.options.includes.head;while(ea!=null){var ec=ea.elt;var eb=null;var eh=ec.bodylisteners.head;while(eh!=null){var ed=eh.elt;if(this.precedence>ed.precedence||this.precedence==ed.precedence&&this.id>ed.id){break}eb=eh;eh=eh.next}var ee=ec.bodylisteners;var ef;if(aT.zpp_pool==null){ef=new aT()}else{ef=aT.zpp_pool;aT.zpp_pool=ef.next;ef.next=null}ef.elt=this;var ei=ef;if(eb==null){ei.next=ee.head;ee.head=ei}else{ei.next=eb.next;eb.next=ei}ee.pushmod=ee.modified=true;ee.length++;var eg=ec.cbsets.head;while(eg!=null){eg.elt.zip_bodylisteners=true;eg=eg.next}ea=ea.next}};bW.prototype.removedFromSpace=function(){var eb=this.options.includes.head;while(eb!=null){var ea=eb.elt;ea.bodylisteners.remove(this);var ec=ea.cbsets.head;while(ec!=null){ec.elt.zip_bodylisteners=true;ec=ec.next}eb=eb.next}this.options.handler=null};bW.prototype.cbtype_change=function(ee,ei,el){this.removedFromSpace();var ef=this.options;if(ei){if(el){var ed=null;var eb=ef.includes.head;while(eb!=null){if(ee.id<eb.elt.id){break}ed=eb;eb=eb.next}var ej=ef.includes;var eh;if(b.zpp_pool==null){eh=new b()}else{eh=b.zpp_pool;b.zpp_pool=eh.next;eh.next=null}eh.elt=ee;var en=eh;if(ed==null){en.next=ej.head;ej.head=en}else{en.next=ed.next;ed.next=en}ej.pushmod=ej.modified=true;ej.length++}else{ef.includes.remove(ee)}}else{if(el){var ec=null;var em=ef.excludes.head;while(em!=null){if(ee.id<em.elt.id){break}ec=em;em=em.next}var eg=ef.excludes;var ek;if(b.zpp_pool==null){ek=new b()}else{ek=b.zpp_pool;b.zpp_pool=ek.next;ek.next=null}ek.elt=ee;var ea=ek;if(ec==null){ea.next=eg.head;eg.head=ea}else{ea.next=ec.next;ec.next=ea}eg.pushmod=eg.modified=true;eg.length++}else{ef.excludes.remove(ee)}}this.addedToSpace()};bW.prototype.invalidate_precedence=function(){if(this.space!=null){this.removedFromSpace();this.addedToSpace()}};bW.prototype.swapEvent=function(ea){this.removedFromSpace();this.event=ea;this.addedToSpace()};bW.prototype.__class__=bW;var O=zpp_nape.callbacks.ZPP_ConstraintListener=function(ea,ec,eb){this.handler=null;this.options=null;this.outer_zn=null;cc.call(this);this.event=ec;this.handler=eb;this.constraint=this;this.type=1;this.options=ea.zpp_inner};O.__name__=["zpp_nape","callbacks","ZPP_ConstraintListener"];O.__super__=cc;O.prototype=Object.create(cc.prototype);O.prototype.outer_zn=null;O.prototype.options=null;O.prototype.handler=null;O.prototype.addedToSpace=function(){this.options.handler=dX(this,this.cbtype_change);var ea=this.options.includes.head;while(ea!=null){var ec=ea.elt;var eb=null;var eh=ec.conlisteners.head;while(eh!=null){var ed=eh.elt;if(this.precedence>ed.precedence||this.precedence==ed.precedence&&this.id>ed.id){break}eb=eh;eh=eh.next}var ee=ec.conlisteners;var ef;if(aR.zpp_pool==null){ef=new aR()}else{ef=aR.zpp_pool;aR.zpp_pool=ef.next;ef.next=null}ef.elt=this;var ei=ef;if(eb==null){ei.next=ee.head;ee.head=ei}else{ei.next=eb.next;eb.next=ei}ee.pushmod=ee.modified=true;ee.length++;var eg=ec.cbsets.head;while(eg!=null){eg.elt.zip_conlisteners=true;eg=eg.next}ea=ea.next}};O.prototype.removedFromSpace=function(){var eb=this.options.includes.head;while(eb!=null){var ea=eb.elt;ea.conlisteners.remove(this);var ec=ea.cbsets.head;while(ec!=null){ec.elt.zip_conlisteners=true;ec=ec.next}eb=eb.next}this.options.handler=null};O.prototype.cbtype_change=function(ee,ei,el){this.removedFromSpace();var ef=this.options;if(ei){if(el){var ed=null;var eb=ef.includes.head;while(eb!=null){if(ee.id<eb.elt.id){break}ed=eb;eb=eb.next}var ej=ef.includes;var eh;if(b.zpp_pool==null){eh=new b()}else{eh=b.zpp_pool;b.zpp_pool=eh.next;eh.next=null}eh.elt=ee;var en=eh;if(ed==null){en.next=ej.head;ej.head=en}else{en.next=ed.next;ed.next=en}ej.pushmod=ej.modified=true;ej.length++}else{ef.includes.remove(ee)}}else{if(el){var ec=null;var em=ef.excludes.head;while(em!=null){if(ee.id<em.elt.id){break}ec=em;em=em.next}var eg=ef.excludes;var ek;if(b.zpp_pool==null){ek=new b()}else{ek=b.zpp_pool;b.zpp_pool=ek.next;ek.next=null}ek.elt=ee;var ea=ek;if(ec==null){ea.next=eg.head;eg.head=ea}else{ea.next=ec.next;ec.next=ea}eg.pushmod=eg.modified=true;eg.length++}else{ef.excludes.remove(ee)}}this.addedToSpace()};O.prototype.invalidate_precedence=function(){if(this.space!=null){this.removedFromSpace();this.addedToSpace()}};O.prototype.swapEvent=function(ea){this.removedFromSpace();this.event=ea;this.addedToSpace()};O.prototype.__class__=O;var x=zpp_nape.util.ZNPList_ZPP_CbType=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};x.__name__=["zpp_nape","util","ZNPList_ZPP_CbType"];x.prototype.head=null;x.prototype.begin=function(){return this.head};x.prototype.modified=null;x.prototype.pushmod=null;x.prototype.length=null;x.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};x.prototype.add=function(ec){var eb;if(b.zpp_pool==null){eb=new b()}else{eb=b.zpp_pool;b.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};x.prototype.inlined_add=function(ec){var eb;if(b.zpp_pool==null){eb=new b()}else{eb=b.zpp_pool;b.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};x.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};x.prototype.insert=function(ed,ec){var eb;if(b.zpp_pool==null){eb=new b()}else{eb=b.zpp_pool;b.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};x.prototype.inlined_insert=function(ed,ec){var eb;if(b.zpp_pool==null){eb=new b()}else{eb=b.zpp_pool;b.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};x.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=b.zpp_pool;b.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};x.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=b.zpp_pool;b.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};x.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};x.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};x.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=b.zpp_pool;b.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};x.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};x.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=b.zpp_pool;b.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};x.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=b.zpp_pool;b.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};x.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=b.zpp_pool;b.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};x.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=b.zpp_pool;b.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};x.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};x.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=b.zpp_pool;b.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};x.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=b.zpp_pool;b.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};x.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};x.prototype.empty=function(){return this.head==null};x.prototype.size=function(){return this.length};x.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};x.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};x.prototype.front=function(){return this.head.elt};x.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};x.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};x.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};x.prototype.__class__=x;var c1=zpp_nape.callbacks.ZPP_InteractionListener=function(ed,ec,eb,ea){this.handlerp=null;this.pure=false;this.allowSleepingCallbacks=false;this.handleri=null;this.options2=null;this.options1=null;this.itype=0;this.outer_znp=null;this.outer_zni=null;cc.call(this);this.type=ea;this.interaction=this;this.event=eb;this.options1=ed.zpp_inner;this.options2=ec.zpp_inner;this.allowSleepingCallbacks=false};c1.__name__=["zpp_nape","callbacks","ZPP_InteractionListener"];c1.__super__=cc;c1.prototype=Object.create(cc.prototype);c1.prototype.outer_zni=null;c1.prototype.outer_znp=null;c1.prototype.itype=null;c1.prototype.options1=null;c1.prototype.options2=null;c1.prototype.handleri=null;c1.prototype.allowSleepingCallbacks=null;c1.prototype.pure=null;c1.prototype.handlerp=null;c1.prototype.setInteractionType=function(ea){this.itype=ea};c1.prototype.wake=function(){var ee=this.options1.includes.head;var ed=this.options2.includes.head;while(ee!=null&&ed!=null){var ec=ee.elt;var eb=ed.elt;if(ec==eb){var ea=ec.interactors.head;while(ea!=null){ea.elt.wake();ea=ea.next}ee=ee.next;ed=ed.next}else{if(ec.id<eb.id){var ei=ec.interactors.head;while(ei!=null){ei.elt.wake();ei=ei.next}ee=ee.next}else{var eh=eb.interactors.head;while(eh!=null){eh.elt.wake();eh=eh.next}ed=ed.next}}}while(ee!=null){var eg=ee.elt.interactors.head;while(eg!=null){eg.elt.wake();eg=eg.next}ee=ee.next}while(ed!=null){var ef=ed.elt.interactors.head;while(ef!=null){ef.elt.wake();ef=ef.next}ed=ed.next}};c1.prototype.CbSetset=function(em,ek,ej){var ed=c1.UCbSet;var ec=c1.VCbSet;var eb=c1.WCbSet;var eu=em.head;var ea=ek.head;while(eu!=null&&ea!=null){var ex=eu.elt;var ev=ea.elt;if(ex==ev){var ez;if(cO.zpp_pool==null){ez=new cO()}else{ez=cO.zpp_pool;cO.zpp_pool=ez.next;ez.next=null}ez.elt=ex;var et=ez;et.next=eb.head;eb.head=et;eb.modified=true;eb.length++;eu=eu.next;ea=ea.next}else{if(cC.setlt(ex,ev)){var eh;if(cO.zpp_pool==null){eh=new cO()}else{eh=cO.zpp_pool;cO.zpp_pool=eh.next;eh.next=null}eh.elt=ex;var eB=eh;eB.next=ed.head;ed.head=eB;ed.modified=true;ed.length++;eu=eu.next}else{var eg;if(cO.zpp_pool==null){eg=new cO()}else{eg=cO.zpp_pool;cO.zpp_pool=eg.next;eg.next=null}eg.elt=ev;var eA=eg;eA.next=ec.head;ec.head=eA;ec.modified=true;ec.length++;ea=ea.next}}}while(eu!=null){var eo=eu.elt;var ef;if(cO.zpp_pool==null){ef=new cO()}else{ef=cO.zpp_pool;cO.zpp_pool=ef.next;ef.next=null}ef.elt=eo;var ey=ef;ey.next=ed.head;ed.head=ey;ed.modified=true;ed.length++;eu=eu.next}while(ea!=null){var eq=ea.elt;var ee;if(cO.zpp_pool==null){ee=new cO()}else{ee=cO.zpp_pool;cO.zpp_pool=ee.next;ee.next=null}ee.elt=eq;var ew=ee;ew.next=ec.head;ec.head=ew;ec.modified=true;ec.length++;ea=ea.next}while(ed.head!=null){var ei=ed.pop_unsafe();var ep=ek.head;while(ep!=null){ej(ei,ep.elt);ep=ep.next}}while(ec.head!=null){var es=ec.pop_unsafe();var en=eb.head;while(en!=null){ej(es,en.elt);en=en.next}}while(eb.head!=null){var er=eb.pop_unsafe();ej(er,er);var el=eb.head;while(el!=null){ej(er,el.elt);el=el.next}}};c1.prototype.CbTypeset=function(em,ek,ej){var ed=c1.UCbType;var ec=c1.VCbType;var eb=c1.WCbType;var eu=em.head;var ea=ek.head;while(eu!=null&&ea!=null){var ex=eu.elt;var ev=ea.elt;if(ex==ev){var ez;if(b.zpp_pool==null){ez=new b()}else{ez=b.zpp_pool;b.zpp_pool=ez.next;ez.next=null}ez.elt=ex;var et=ez;et.next=eb.head;eb.head=et;eb.modified=true;eb.length++;eu=eu.next;ea=ea.next}else{if(ex.id<ev.id){var eh;if(b.zpp_pool==null){eh=new b()}else{eh=b.zpp_pool;b.zpp_pool=eh.next;eh.next=null}eh.elt=ex;var eB=eh;eB.next=ed.head;ed.head=eB;ed.modified=true;ed.length++;eu=eu.next}else{var eg;if(b.zpp_pool==null){eg=new b()}else{eg=b.zpp_pool;b.zpp_pool=eg.next;eg.next=null}eg.elt=ev;var eA=eg;eA.next=ec.head;ec.head=eA;ec.modified=true;ec.length++;ea=ea.next}}}while(eu!=null){var eo=eu.elt;var ef;if(b.zpp_pool==null){ef=new b()}else{ef=b.zpp_pool;b.zpp_pool=ef.next;ef.next=null}ef.elt=eo;var ey=ef;ey.next=ed.head;ed.head=ey;ed.modified=true;ed.length++;eu=eu.next}while(ea!=null){var eq=ea.elt;var ee;if(b.zpp_pool==null){ee=new b()}else{ee=b.zpp_pool;b.zpp_pool=ee.next;ee.next=null}ee.elt=eq;var ew=ee;ew.next=ec.head;ec.head=ew;ec.modified=true;ec.length++;ea=ea.next}while(ed.head!=null){var ei=ed.pop_unsafe();var ep=ek.head;while(ep!=null){ej(ei,ep.elt);ep=ep.next}}while(ec.head!=null){var es=ec.pop_unsafe();var en=eb.head;while(en!=null){ej(es,en.elt);en=en.next}}while(eb.head!=null){var er=eb.pop_unsafe();ej(er,er);var el=eb.head;while(el!=null){ej(er,el.elt);el=el.next}}};c1.prototype.with_uniquesets=function(gK){var f6=this;var gL;if(p.zpp_pool==null){gL=new p()}else{gL=p.zpp_pool;p.zpp_pool=gL.next;gL.next=null}gL.lt=ar.setlt;var ga=this.options2.includes;var f0=c1.UCbType;var fZ=c1.VCbType;var fY=c1.WCbType;var gw=this.options1.includes.head;var es=ga.head;while(gw!=null&&es!=null){var fM=gw.elt;var fK=es.elt;if(fM==fK){var e8;if(b.zpp_pool==null){e8=new b()}else{e8=b.zpp_pool;b.zpp_pool=e8.next;e8.next=null}e8.elt=fM;var fF=e8;fF.next=fY.head;fY.head=fF;fY.modified=true;fY.length++;gw=gw.next;es=es.next}else{if(fM.id<fK.id){var fX;if(b.zpp_pool==null){fX=new b()}else{fX=b.zpp_pool;b.zpp_pool=fX.next;fX.next=null}fX.elt=fM;var fc=fX;fc.next=f0.head;f0.head=fc;f0.modified=true;f0.length++;gw=gw.next}else{var fW;if(b.zpp_pool==null){fW=new b()}else{fW=b.zpp_pool;b.zpp_pool=fW.next;fW.next=null}fW.elt=fK;var fa=fW;fa.next=fZ.head;fZ.head=fa;fZ.modified=true;fZ.length++;es=es.next}}}while(gw!=null){var fI=gw.elt;var fV;if(b.zpp_pool==null){fV=new b()}else{fV=b.zpp_pool;b.zpp_pool=fV.next;fV.next=null}fV.elt=fI;var e9=fV;e9.next=f0.head;f0.head=e9;f0.modified=true;f0.length++;gw=gw.next}while(es!=null){var gq=es.elt;var fU;if(b.zpp_pool==null){fU=new b()}else{fU=b.zpp_pool;b.zpp_pool=fU.next;fU.next=null}fU.elt=gq;var e7=fU;e7.next=fZ.head;fZ.head=e7;fZ.modified=true;fZ.length++;es=es.next}while(f0.head!=null){var fH=f0.pop_unsafe();var eu=ga.head;while(eu!=null){var fp=eu.elt.cbsets;var gP=c1.UCbSet;var gz=c1.VCbSet;var gc=c1.WCbSet;var eh=fH.cbsets.head;var fT=fp.head;while(eh!=null&&fT!=null){var ed=eh.elt;var gJ=fT.elt;if(ed==gJ){var fS;if(cO.zpp_pool==null){fS=new cO()}else{fS=cO.zpp_pool;cO.zpp_pool=fS.next;fS.next=null}fS.elt=ed;var e6=fS;e6.next=gc.head;gc.head=e6;gc.modified=true;gc.length++;eh=eh.next;fT=fT.next}else{if(cC.setlt(ed,gJ)){var fQ;if(cO.zpp_pool==null){fQ=new cO()}else{fQ=cO.zpp_pool;cO.zpp_pool=fQ.next;fQ.next=null}fQ.elt=ed;var e5=fQ;e5.next=gP.head;gP.head=e5;gP.modified=true;gP.length++;eh=eh.next}else{var fO;if(cO.zpp_pool==null){fO=new cO()}else{fO=cO.zpp_pool;cO.zpp_pool=fO.next;fO.next=null}fO.elt=gJ;var e4=fO;e4.next=gz.head;gz.head=e4;gz.modified=true;gz.length++;fT=fT.next}}}while(eh!=null){var gp=eh.elt;var fL;if(cO.zpp_pool==null){fL=new cO()}else{fL=cO.zpp_pool;cO.zpp_pool=fL.next;fL.next=null}fL.elt=gp;var e3=fL;e3.next=gP.head;gP.head=e3;gP.modified=true;gP.length++;eh=eh.next}while(fT!=null){var go=fT.elt;var fJ;if(cO.zpp_pool==null){fJ=new cO()}else{fJ=cO.zpp_pool;cO.zpp_pool=fJ.next;fJ.next=null}fJ.elt=go;var e2=fJ;e2.next=gz.head;gz.head=e2;gz.modified=true;gz.length++;fT=fT.next}while(gP.head!=null){var eC=gP.pop_unsafe();var eL=fp.head;while(eL!=null){var fG=eL.elt;eC.validate();fG.validate();if(cC.single_intersection(eC,fG,f6)){var fE;if(ar.zpp_pool==null){fE=new ar()}else{fE=ar.zpp_pool;ar.zpp_pool=fE.next;fE.next=null}fE.zip_listeners=true;if(cC.setlt(eC,fG)){fE.a=eC;fE.b=fG}else{fE.a=fG;fE.b=eC}gL.try_insert(fE)}eL=eL.next}}while(gz.head!=null){var eB=gz.pop_unsafe();var eK=gc.head;while(eK!=null){var eq=eK.elt;eB.validate();eq.validate();if(cC.single_intersection(eB,eq,f6)){var fD;if(ar.zpp_pool==null){fD=new ar()}else{fD=ar.zpp_pool;ar.zpp_pool=fD.next;fD.next=null}fD.zip_listeners=true;if(cC.setlt(eB,eq)){fD.a=eB;fD.b=eq}else{fD.a=eq;fD.b=eB}gL.try_insert(fD)}eK=eK.next}}while(gc.head!=null){var eA=gc.pop_unsafe();eA.validate();eA.validate();if(cC.single_intersection(eA,eA,f6)){var fC;if(ar.zpp_pool==null){fC=new ar()}else{fC=ar.zpp_pool;ar.zpp_pool=fC.next;fC.next=null}fC.zip_listeners=true;if(cC.setlt(eA,eA)){fC.a=eA;fC.b=eA}else{fC.a=eA;fC.b=eA}gL.try_insert(fC)}var eJ=gc.head;while(eJ!=null){var ep=eJ.elt;eA.validate();ep.validate();if(cC.single_intersection(eA,ep,f6)){var fB;if(ar.zpp_pool==null){fB=new ar()}else{fB=ar.zpp_pool;ar.zpp_pool=fB.next;fB.next=null}fB.zip_listeners=true;if(cC.setlt(eA,ep)){fB.a=eA;fB.b=ep}else{fB.a=ep;fB.b=eA}gL.try_insert(fB)}eJ=eJ.next}}eu=eu.next}}while(fZ.head!=null){var ez=fZ.pop_unsafe();var eI=fY.head;while(eI!=null){var fo=eI.elt.cbsets;var gO=c1.UCbSet;var gx=c1.VCbSet;var gb=c1.WCbSet;var eg=ez.cbsets.head;var fR=fo.head;while(eg!=null&&fR!=null){var ec=eg.elt;var gI=fR.elt;if(ec==gI){var fA;if(cO.zpp_pool==null){fA=new cO()}else{fA=cO.zpp_pool;cO.zpp_pool=fA.next;fA.next=null}fA.elt=ec;var gF=fA;gF.next=gb.head;gb.head=gF;gb.modified=true;gb.length++;eg=eg.next;fR=fR.next}else{if(cC.setlt(ec,gI)){var fz;if(cO.zpp_pool==null){fz=new cO()}else{fz=cO.zpp_pool;cO.zpp_pool=fz.next;fz.next=null}fz.elt=ec;var gE=fz;gE.next=gO.head;gO.head=gE;gO.modified=true;gO.length++;eg=eg.next}else{var fy;if(cO.zpp_pool==null){fy=new cO()}else{fy=cO.zpp_pool;cO.zpp_pool=fy.next;fy.next=null}fy.elt=gI;var gD=fy;gD.next=gx.head;gx.head=gD;gx.modified=true;gx.length++;fR=fR.next}}}while(eg!=null){var gn=eg.elt;var fx;if(cO.zpp_pool==null){fx=new cO()}else{fx=cO.zpp_pool;cO.zpp_pool=fx.next;fx.next=null}fx.elt=gn;var gC=fx;gC.next=gO.head;gO.head=gC;gO.modified=true;gO.length++;eg=eg.next}while(fR!=null){var gm=fR.elt;var fw;if(cO.zpp_pool==null){fw=new cO()}else{fw=cO.zpp_pool;cO.zpp_pool=fw.next;fw.next=null}fw.elt=gm;var gB=fw;gB.next=gx.head;gx.head=gB;gx.modified=true;gx.length++;fR=fR.next}while(gO.head!=null){var ey=gO.pop_unsafe();var eH=fo.head;while(eH!=null){var eo=eH.elt;ey.validate();eo.validate();if(cC.single_intersection(ey,eo,f6)){var fv;if(ar.zpp_pool==null){fv=new ar()}else{fv=ar.zpp_pool;ar.zpp_pool=fv.next;fv.next=null}fv.zip_listeners=true;if(cC.setlt(ey,eo)){fv.a=ey;fv.b=eo}else{fv.a=eo;fv.b=ey}gL.try_insert(fv)}eH=eH.next}}while(gx.head!=null){var ex=gx.pop_unsafe();var eG=gb.head;while(eG!=null){var en=eG.elt;ex.validate();en.validate();if(cC.single_intersection(ex,en,f6)){var fl;if(ar.zpp_pool==null){fl=new ar()}else{fl=ar.zpp_pool;ar.zpp_pool=fl.next;fl.next=null}fl.zip_listeners=true;if(cC.setlt(ex,en)){fl.a=ex;fl.b=en}else{fl.a=en;fl.b=ex}gL.try_insert(fl)}eG=eG.next}}while(gb.head!=null){var ew=gb.pop_unsafe();ew.validate();ew.validate();if(cC.single_intersection(ew,ew,f6)){var fk;if(ar.zpp_pool==null){fk=new ar()}else{fk=ar.zpp_pool;ar.zpp_pool=fk.next;fk.next=null}fk.zip_listeners=true;if(cC.setlt(ew,ew)){fk.a=ew;fk.b=ew}else{fk.a=ew;fk.b=ew}gL.try_insert(fk)}var eF=gb.head;while(eF!=null){var em=eF.elt;ew.validate();em.validate();if(cC.single_intersection(ew,em,f6)){var fj;if(ar.zpp_pool==null){fj=new ar()}else{fj=ar.zpp_pool;ar.zpp_pool=fj.next;fj.next=null}fj.zip_listeners=true;if(cC.setlt(ew,em)){fj.a=ew;fj.b=em}else{fj.a=em;fj.b=ew}gL.try_insert(fj)}eF=eF.next}}eI=eI.next}}while(fY.head!=null){var ev=fY.pop_unsafe();var fn=ev.cbsets;var gN=c1.UCbSet;var gu=c1.VCbSet;var f8=c1.WCbSet;var ef=ev.cbsets.head;var fP=fn.head;while(ef!=null&&fP!=null){var eb=ef.elt;var gH=fP.elt;if(eb==gH){var fi;if(cO.zpp_pool==null){fi=new cO()}else{fi=cO.zpp_pool;cO.zpp_pool=fi.next;fi.next=null}fi.elt=eb;var gA=fi;gA.next=f8.head;f8.head=gA;f8.modified=true;f8.length++;ef=ef.next;fP=fP.next}else{if(cC.setlt(eb,gH)){var fh;if(cO.zpp_pool==null){fh=new cO()}else{fh=cO.zpp_pool;cO.zpp_pool=fh.next;fh.next=null}fh.elt=eb;var gy=fh;gy.next=gN.head;gN.head=gy;gN.modified=true;gN.length++;ef=ef.next}else{var fg;if(cO.zpp_pool==null){fg=new cO()}else{fg=cO.zpp_pool;cO.zpp_pool=fg.next;fg.next=null}fg.elt=gH;var gv=fg;gv.next=gu.head;gu.head=gv;gu.modified=true;gu.length++;fP=fP.next}}}while(ef!=null){var gl=ef.elt;var ff;if(cO.zpp_pool==null){ff=new cO()}else{ff=cO.zpp_pool;cO.zpp_pool=ff.next;ff.next=null}ff.elt=gl;var gt=ff;gt.next=gN.head;gN.head=gt;gN.modified=true;gN.length++;ef=ef.next}while(fP!=null){var gk=fP.elt;var fe;if(cO.zpp_pool==null){fe=new cO()}else{fe=cO.zpp_pool;cO.zpp_pool=fe.next;fe.next=null}fe.elt=gk;var gr=fe;gr.next=gu.head;gu.head=gr;gu.modified=true;gu.length++;fP=fP.next}while(gN.head!=null){var et=gN.pop_unsafe();var eE=fn.head;while(eE!=null){var el=eE.elt;et.validate();el.validate();if(cC.single_intersection(et,el,f6)){var fd;if(ar.zpp_pool==null){fd=new ar()}else{fd=ar.zpp_pool;ar.zpp_pool=fd.next;fd.next=null}fd.zip_listeners=true;if(cC.setlt(et,el)){fd.a=et;fd.b=el}else{fd.a=el;fd.b=et}gL.try_insert(fd)}eE=eE.next}}while(gu.head!=null){var f5=gu.pop_unsafe();var eD=f8.head;while(eD!=null){var ek=eD.elt;f5.validate();ek.validate();if(cC.single_intersection(f5,ek,f6)){var fb;if(ar.zpp_pool==null){fb=new ar()}else{fb=ar.zpp_pool;ar.zpp_pool=fb.next;fb.next=null}fb.zip_listeners=true;if(cC.setlt(f5,ek)){fb.a=f5;fb.b=ek}else{fb.a=ek;fb.b=f5}gL.try_insert(fb)}eD=eD.next}}while(f8.head!=null){var f4=f8.pop_unsafe();f4.validate();f4.validate();if(cC.single_intersection(f4,f4,f6)){var e1;if(ar.zpp_pool==null){e1=new ar()}else{e1=ar.zpp_pool;ar.zpp_pool=e1.next;e1.next=null}e1.zip_listeners=true;if(cC.setlt(f4,f4)){e1.a=f4;e1.b=f4}else{e1.a=f4;e1.b=f4}gL.try_insert(e1)}var fu=f8.head;while(fu!=null){var ej=fu.elt;f4.validate();ej.validate();if(cC.single_intersection(f4,ej,f6)){var e0;if(ar.zpp_pool==null){e0=new ar()}else{e0=ar.zpp_pool;ar.zpp_pool=e0.next;e0.next=null}e0.zip_listeners=true;if(cC.setlt(f4,ej)){e0.a=f4;e0.b=ej}else{e0.a=ej;e0.b=f4}gL.try_insert(e0)}fu=fu.next}}var ft=fY.head;while(ft!=null){var fm=ft.elt.cbsets;var gM=c1.UCbSet;var gs=c1.VCbSet;var f7=c1.WCbSet;var ee=ev.cbsets.head;var fN=fm.head;while(ee!=null&&fN!=null){var ea=ee.elt;var gG=fN.elt;if(ea==gG){var eZ;if(cO.zpp_pool==null){eZ=new cO()}else{eZ=cO.zpp_pool;cO.zpp_pool=eZ.next;eZ.next=null}eZ.elt=ea;var gh=eZ;gh.next=f7.head;f7.head=gh;f7.modified=true;f7.length++;ee=ee.next;fN=fN.next}else{if(cC.setlt(ea,gG)){var eY;if(cO.zpp_pool==null){eY=new cO()}else{eY=cO.zpp_pool;cO.zpp_pool=eY.next;eY.next=null}eY.elt=ea;var gg=eY;gg.next=gM.head;gM.head=gg;gM.modified=true;gM.length++;ee=ee.next}else{var eX;if(cO.zpp_pool==null){eX=new cO()}else{eX=cO.zpp_pool;cO.zpp_pool=eX.next;eX.next=null}eX.elt=gG;var gf=eX;gf.next=gs.head;gs.head=gf;gs.modified=true;gs.length++;fN=fN.next}}}while(ee!=null){var gj=ee.elt;var eW;if(cO.zpp_pool==null){eW=new cO()}else{eW=cO.zpp_pool;cO.zpp_pool=eW.next;eW.next=null}eW.elt=gj;var ge=eW;ge.next=gM.head;gM.head=ge;gM.modified=true;gM.length++;ee=ee.next}while(fN!=null){var gi=fN.elt;var eV;if(cO.zpp_pool==null){eV=new cO()}else{eV=cO.zpp_pool;cO.zpp_pool=eV.next;eV.next=null}eV.elt=gi;var gd=eV;gd.next=gs.head;gs.head=gd;gs.modified=true;gs.length++;fN=fN.next}while(gM.head!=null){var f3=gM.pop_unsafe();var fs=fm.head;while(fs!=null){var ei=fs.elt;f3.validate();ei.validate();if(cC.single_intersection(f3,ei,f6)){var eU;if(ar.zpp_pool==null){eU=new ar()}else{eU=ar.zpp_pool;ar.zpp_pool=eU.next;eU.next=null}eU.zip_listeners=true;if(cC.setlt(f3,ei)){eU.a=f3;eU.b=ei}else{eU.a=ei;eU.b=f3}gL.try_insert(eU)}fs=fs.next}}while(gs.head!=null){var f2=gs.pop_unsafe();var fr=f7.head;while(fr!=null){var eN=fr.elt;f2.validate();eN.validate();if(cC.single_intersection(f2,eN,f6)){var eT;if(ar.zpp_pool==null){eT=new ar()}else{eT=ar.zpp_pool;ar.zpp_pool=eT.next;eT.next=null}eT.zip_listeners=true;if(cC.setlt(f2,eN)){eT.a=f2;eT.b=eN}else{eT.a=eN;eT.b=f2}gL.try_insert(eT)}fr=fr.next}}while(f7.head!=null){var f1=f7.pop_unsafe();f1.validate();f1.validate();if(cC.single_intersection(f1,f1,f6)){var eS;if(ar.zpp_pool==null){eS=new ar()}else{eS=ar.zpp_pool;ar.zpp_pool=eS.next;eS.next=null}eS.zip_listeners=true;if(cC.setlt(f1,f1)){eS.a=f1;eS.b=f1}else{eS.a=f1;eS.b=f1}gL.try_insert(eS)}var fq=f7.head;while(fq!=null){var eM=fq.elt;f1.validate();eM.validate();if(cC.single_intersection(f1,eM,f6)){var eP;if(ar.zpp_pool==null){eP=new ar()}else{eP=ar.zpp_pool;ar.zpp_pool=eP.next;eP.next=null}eP.zip_listeners=true;if(cC.setlt(f1,eM)){eP.a=f1;eP.b=eM}else{eP.a=eM;eP.b=f1}gL.try_insert(eP)}fq=fq.next}}ft=ft.next}}if(gL.parent!=null){var f9=gL.parent;while(f9!=null){if(f9.prev!=null){f9=f9.prev}else{if(f9.next!=null){f9=f9.next}else{var er=f9.data;if(gK){f6.space.freshListenerType(er.a,er.b)}else{f6.space.nullListenerType(er.a,er.b)}er.a=er.b=null;er.listeners.clear();er.next=ar.zpp_pool;ar.zpp_pool=er;var eO=f9.parent;if(eO!=null){if(f9==eO.prev){eO.prev=null}else{eO.next=null}f9.parent=null}var eR=f9;eR.data=null;eR.lt=null;eR.swapped=null;eR.next=p.zpp_pool;p.zpp_pool=eR;f9=eO}}}gL.parent=null}var eQ=gL;eQ.data=null;eQ.lt=null;eQ.swapped=null;eQ.next=p.zpp_pool;p.zpp_pool=eQ};c1.prototype.with_union=function(ec){var ea=this.options1.includes.head;var ee=this.options2.includes.head;while(ea!=null&&ee!=null){var ed=ea.elt;var eb=ee.elt;if(ed==eb){ec(ed);ea=ea.next;ee=ee.next}else{if(ed.id<eb.id){ec(ed);ea=ea.next}else{ec(eb);ee=ee.next}}}while(ea!=null){ec(ea.elt);ea=ea.next}while(ee!=null){ec(ee.elt);ee=ee.next}};c1.prototype.addedToSpace=function(){var eV=this;var eN=this.type==3;var el=this.options1.includes.head;var ek=this.options2.includes.head;while(el!=null&&ek!=null){var eg=el.elt;var ef=ek.elt;if(eg==ef){var es=null;var ej=eg.listeners.head;while(ej!=null){var eS=ej.elt;if(eV.precedence>eS.precedence||eV.precedence==eS.precedence&&eV.id>eS.id){break}es=ej;ej=ej.next}var eh=eg.listeners;var eA;if(aF.zpp_pool==null){eA=new aF()}else{eA=aF.zpp_pool;aF.zpp_pool=eA.next;eA.next=null}eA.elt=eV;var ei=eA;if(es==null){ei.next=eh.head;eh.head=ei}else{ei.next=es.next;es.next=ei}eh.pushmod=eh.modified=true;eh.length++;var ez=eg.cbsets.head;while(ez!=null){var eB=ez.elt;eB.zip_listeners=true;eB.invalidate_pairs();ez=ez.next}if(eN){var ey=eg.interactors.head;while(ey!=null){ey.elt.wake();ey=ey.next}}el=el.next;ek=ek.next}else{if(eg.id<ef.id){var eq=null;var ex=eg.listeners.head;while(ex!=null){var eU=ex.elt;if(eV.precedence>eU.precedence||eV.precedence==eU.precedence&&eV.id>eU.id){break}eq=ex;ex=ex.next}var eP=eg.listeners;var eG;if(aF.zpp_pool==null){eG=new aF()}else{eG=aF.zpp_pool;aF.zpp_pool=eG.next;eG.next=null}eG.elt=eV;var ee=eG;if(eq==null){ee.next=eP.head;eP.head=ee}else{ee.next=eq.next;eq.next=ee}eP.pushmod=eP.modified=true;eP.length++;var ew=eg.cbsets.head;while(ew!=null){var ed=ew.elt;ed.zip_listeners=true;ed.invalidate_pairs();ew=ew.next}if(eN){var ev=eg.interactors.head;while(ev!=null){ev.elt.wake();ev=ev.next}}el=el.next}else{var eo=null;var eu=ef.listeners.head;while(eu!=null){var eT=eu.elt;if(eV.precedence>eT.precedence||eV.precedence==eT.precedence&&eV.id>eT.id){break}eo=eu;eu=eu.next}var eM=ef.listeners;var eE;if(aF.zpp_pool==null){eE=new aF()}else{eE=aF.zpp_pool;aF.zpp_pool=eE.next;eE.next=null}eE.elt=eV;var ec=eE;if(eo==null){ec.next=eM.head;eM.head=ec}else{ec.next=eo.next;eo.next=ec}eM.pushmod=eM.modified=true;eM.length++;var et=ef.cbsets.head;while(et!=null){var eb=et.elt;eb.zip_listeners=true;eb.invalidate_pairs();et=et.next}if(eN){var er=ef.interactors.head;while(er!=null){er.elt.wake();er=er.next}}ek=ek.next}}}while(el!=null){var e0=el.elt;var en=null;var ep=e0.listeners.head;while(ep!=null){var eR=ep.elt;if(eV.precedence>eR.precedence||eV.precedence==eR.precedence&&eV.id>eR.id){break}en=ep;ep=ep.next}var eK=e0.listeners;var eD;if(aF.zpp_pool==null){eD=new aF()}else{eD=aF.zpp_pool;aF.zpp_pool=eD.next;eD.next=null}eD.elt=eV;var ea=eD;if(en==null){ea.next=eK.head;eK.head=ea}else{ea.next=en.next;en.next=ea}eK.pushmod=eK.modified=true;eK.length++;var eO=e0.cbsets.head;while(eO!=null){var eY=eO.elt;eY.zip_listeners=true;eY.invalidate_pairs();eO=eO.next}if(eN){var eL=e0.interactors.head;while(eL!=null){eL.elt.wake();eL=eL.next}}el=el.next}while(ek!=null){var eX=ek.elt;var em=null;var eJ=eX.listeners.head;while(eJ!=null){var eQ=eJ.elt;if(eV.precedence>eQ.precedence||eV.precedence==eQ.precedence&&eV.id>eQ.id){break}em=eJ;eJ=eJ.next}var eI=eX.listeners;var eC;if(aF.zpp_pool==null){eC=new aF()}else{eC=aF.zpp_pool;aF.zpp_pool=eC.next;eC.next=null}eC.elt=eV;var eZ=eC;if(em==null){eZ.next=eI.head;eI.head=eZ}else{eZ.next=em.next;em.next=eZ}eI.pushmod=eI.modified=true;eI.length++;var eH=eX.cbsets.head;while(eH!=null){var eW=eH.elt;eW.zip_listeners=true;eW.invalidate_pairs();eH=eH.next}if(eN){var eF=eX.interactors.head;while(eF!=null){eF.elt.wake();eF=eF.next}}ek=ek.next}this.options1.handler=dX(this,this.cbtype_change1);this.options2.handler=dX(this,this.cbtype_change2);this.with_uniquesets(true)};c1.prototype.removedFromSpace=function(){var eg=this;this.with_uniquesets(false);var eq=this.type==3;var ef=this.options1.includes.head;var ee=this.options2.includes.head;while(ef!=null&&ee!=null){var ed=ef.elt;var ec=ee.elt;if(ed==ec){ed.listeners.remove(eg);var es=ed.cbsets.head;while(es!=null){var ep=es.elt;ep.zip_listeners=true;ep.invalidate_pairs();es=es.next}if(eq){var er=ed.interactors.head;while(er!=null){er.elt.wake();er=er.next}}ef=ef.next;ee=ee.next}else{if(ed.id<ec.id){ed.listeners.remove(eg);var eo=ed.cbsets.head;while(eo!=null){var eb=eo.elt;eb.zip_listeners=true;eb.invalidate_pairs();eo=eo.next}if(eq){var en=ed.interactors.head;while(en!=null){en.elt.wake();en=en.next}}ef=ef.next}else{ec.listeners.remove(eg);var em=ec.cbsets.head;while(em!=null){var ea=em.elt;ea.zip_listeners=true;ea.invalidate_pairs();em=em.next}if(eq){var el=ec.interactors.head;while(el!=null){el.elt.wake();el=el.next}}ee=ee.next}}}while(ef!=null){var ew=ef.elt;ew.listeners.remove(eg);var ek=ew.cbsets.head;while(ek!=null){var ev=ek.elt;ev.zip_listeners=true;ev.invalidate_pairs();ek=ek.next}if(eq){var ej=ew.interactors.head;while(ej!=null){ej.elt.wake();ej=ej.next}}ef=ef.next}while(ee!=null){var eu=ee.elt;eu.listeners.remove(eg);var ei=eu.cbsets.head;while(ei!=null){var et=ei.elt;et.zip_listeners=true;et.invalidate_pairs();ei=ei.next}if(eq){var eh=eu.interactors.head;while(eh!=null){eh.elt.wake();eh=eh.next}}ee=ee.next}this.options1.handler=null;this.options2.handler=null};c1.prototype.invalidate_precedence=function(){var e4=this;if(this.space!=null){var eT=this.type==3;var el=this.options1.includes.head;var ek=this.options2.includes.head;while(el!=null&&ek!=null){var eg=el.elt;var ef=ek.elt;if(eg==ef){eg.listeners.remove(e4);var ej=eg.cbsets.head;while(ej!=null){var eB=ej.elt;eB.zip_listeners=true;eB.invalidate_pairs();ej=ej.next}var es=null;var ez=eg.listeners.head;while(ez!=null){var e1=ez.elt;if(e4.precedence>e1.precedence||e4.precedence==e1.precedence&&e4.id>e1.id){break}es=ez;ez=ez.next}var eh=eg.listeners;var eA;if(aF.zpp_pool==null){eA=new aF()}else{eA=aF.zpp_pool;aF.zpp_pool=eA.next;eA.next=null}eA.elt=e4;var ei=eA;if(es==null){ei.next=eh.head;eh.head=ei}else{ei.next=es.next;es.next=ei}eh.pushmod=eh.modified=true;eh.length++;var ey=eg.cbsets.head;while(ey!=null){var ed=ey.elt;ed.zip_listeners=true;ed.invalidate_pairs();ey=ey.next}if(eT){var ex=eg.interactors.head;while(ex!=null){ex.elt.wake();ex=ex.next}}el=el.next;ek=ek.next}else{if(eg.id<ef.id){eg.listeners.remove(e4);var ew=eg.cbsets.head;while(ew!=null){var eb=ew.elt;eb.zip_listeners=true;eb.invalidate_pairs();ew=ew.next}var eq=null;var ev=eg.listeners.head;while(ev!=null){var e3=ev.elt;if(e4.precedence>e3.precedence||e4.precedence==e3.precedence&&e4.id>e3.id){break}eq=ev;ev=ev.next}var eW=eg.listeners;var eL;if(aF.zpp_pool==null){eL=new aF()}else{eL=aF.zpp_pool;aF.zpp_pool=eL.next;eL.next=null}eL.elt=e4;var ee=eL;if(eq==null){ee.next=eW.head;eW.head=ee}else{ee.next=eq.next;eq.next=ee}eW.pushmod=eW.modified=true;eW.length++;var eu=eg.cbsets.head;while(eu!=null){var fa=eu.elt;fa.zip_listeners=true;fa.invalidate_pairs();eu=eu.next}if(eT){var et=eg.interactors.head;while(et!=null){et.elt.wake();et=et.next}}el=el.next}else{ef.listeners.remove(e4);var er=ef.cbsets.head;while(er!=null){var e8=er.elt;e8.zip_listeners=true;e8.invalidate_pairs();er=er.next}var eo=null;var ep=ef.listeners.head;while(ep!=null){var e2=ep.elt;if(e4.precedence>e2.precedence||e4.precedence==e2.precedence&&e4.id>e2.id){break}eo=ep;ep=ep.next}var eS=ef.listeners;var eJ;if(aF.zpp_pool==null){eJ=new aF()}else{eJ=aF.zpp_pool;aF.zpp_pool=eJ.next;eJ.next=null}eJ.elt=e4;var ec=eJ;if(eo==null){ec.next=eS.head;eS.head=ec}else{ec.next=eo.next;eo.next=ec}eS.pushmod=eS.modified=true;eS.length++;var eV=ef.cbsets.head;while(eV!=null){var e7=eV.elt;e7.zip_listeners=true;e7.invalidate_pairs();eV=eV.next}if(eT){var eR=ef.interactors.head;while(eR!=null){eR.elt.wake();eR=eR.next}}ek=ek.next}}}while(el!=null){var e6=el.elt;e6.listeners.remove(e4);var eP=e6.cbsets.head;while(eP!=null){var e5=eP.elt;e5.zip_listeners=true;e5.invalidate_pairs();eP=eP.next}var en=null;var eN=e6.listeners.head;while(eN!=null){var e0=eN.elt;if(e4.precedence>e0.precedence||e4.precedence==e0.precedence&&e4.id>e0.id){break}en=eN;eN=eN.next}var eO=e6.listeners;var eH;if(aF.zpp_pool==null){eH=new aF()}else{eH=aF.zpp_pool;aF.zpp_pool=eH.next;eH.next=null}eH.elt=e4;var ea=eH;if(en==null){ea.next=eO.head;eO.head=ea}else{ea.next=en.next;en.next=ea}eO.pushmod=eO.modified=true;eO.length++;var eK=e6.cbsets.head;while(eK!=null){var eY=eK.elt;eY.zip_listeners=true;eY.invalidate_pairs();eK=eK.next}if(eT){var eI=e6.interactors.head;while(eI!=null){eI.elt.wake();eI=eI.next}}el=el.next}while(ek!=null){var eX=ek.elt;eX.listeners.remove(e4);var eG=eX.cbsets.head;while(eG!=null){var eU=eG.elt;eU.zip_listeners=true;eU.invalidate_pairs();eG=eG.next}var em=null;var eF=eX.listeners.head;while(eF!=null){var eZ=eF.elt;if(e4.precedence>eZ.precedence||e4.precedence==eZ.precedence&&e4.id>eZ.id){break}em=eF;eF=eF.next}var eM=eX.listeners;var eE;if(aF.zpp_pool==null){eE=new aF()}else{eE=aF.zpp_pool;aF.zpp_pool=eE.next;eE.next=null}eE.elt=e4;var e9=eE;if(em==null){e9.next=eM.head;eM.head=e9}else{e9.next=em.next;em.next=e9}eM.pushmod=eM.modified=true;eM.length++;var eD=eX.cbsets.head;while(eD!=null){var eQ=eD.elt;eQ.zip_listeners=true;eQ.invalidate_pairs();eD=eD.next}if(eT){var eC=eX.interactors.head;while(eC!=null){eC.elt.wake();eC=eC.next}}ek=ek.next}}};c1.prototype.cbtype_change1=function(ea,ec,eb){this.cbtype_change(this.options1,ea,ec,eb)};c1.prototype.cbtype_change2=function(ea,ec,eb){this.cbtype_change(this.options2,ea,ec,eb)};c1.prototype.cbtype_change=function(en,ee,ei,ek){this.removedFromSpace();if(ei){if(ek){var ed=null;var eb=en.includes.head;while(eb!=null){if(ee.id<eb.elt.id){break}ed=eb;eb=eb.next}var ef=en.includes;var eg;if(b.zpp_pool==null){eg=new b()}else{eg=b.zpp_pool;b.zpp_pool=eg.next;eg.next=null}eg.elt=ee;var em=eg;if(ed==null){em.next=ef.head;ef.head=em}else{em.next=ed.next;ed.next=em}ef.pushmod=ef.modified=true;ef.length++}else{en.includes.remove(ee)}}else{if(ek){var ec=null;var el=en.excludes.head;while(el!=null){if(ee.id<el.elt.id){break}ec=el;el=el.next}var eh=en.excludes;var ej;if(b.zpp_pool==null){ej=new b()}else{ej=b.zpp_pool;b.zpp_pool=ej.next;ej.next=null}ej.elt=ee;var ea=ej;if(ec==null){ea.next=eh.head;eh.head=ea}else{ea.next=ec.next;ec.next=ea}eh.pushmod=eh.modified=true;eh.length++}else{en.excludes.remove(ee)}}this.addedToSpace()};c1.prototype.swapEvent=function(ea){this.removedFromSpace();this.event=ea;this.addedToSpace()};c1.prototype.__class__=c1;var cP=zpp_nape.callbacks.ZPP_OptionType=function(){this.wrap_excludes=null;this.wrap_includes=null;this.excludes=null;this.includes=null;this.handler=null;this.outer=null;this.includes=new x();this.excludes=new x()};cP.__name__=["zpp_nape","callbacks","ZPP_OptionType"];cP.argument=function(ea){if(ea==null){return new R()}else{if(dc.__instanceof(ea,R)){return ea}else{return new R().including(ea)}}};cP.prototype.outer=null;cP.prototype.handler=null;cP.prototype.includes=null;cP.prototype.excludes=null;cP.prototype.wrap_includes=null;cP.prototype.wrap_excludes=null;cP.prototype.setup_includes=function(){this.wrap_includes=cy.get(this.includes,true)};cP.prototype.setup_excludes=function(){this.wrap_excludes=cy.get(this.excludes,true)};cP.prototype.excluded=function(ea){return this.nonemptyintersection(ea,this.excludes)};cP.prototype.included=function(ea){return this.nonemptyintersection(ea,this.includes)};cP.prototype.compatible=function(ea){if(this.nonemptyintersection(ea,this.includes)){return !this.nonemptyintersection(ea,this.excludes)}else{return false}};cP.prototype.nonemptyintersection=function(ed,ef){var ec=false;var eg=ed.head;var ea=ef.head;while(ea!=null&&eg!=null){var ee=ea.elt;var eb=eg.elt;if(ee==eb){ec=true;break}else{if(ee.id<eb.id){ea=ea.next}else{eg=eg.next}}}return ec};cP.prototype.effect_change=function(eb,ei,ek){if(ei){if(ek){var ee=null;var ec=this.includes.head;while(ec!=null){if(eb.id<ec.elt.id){break}ee=ec;ec=ec.next}var ef=this.includes;var eg;if(b.zpp_pool==null){eg=new b()}else{eg=b.zpp_pool;b.zpp_pool=eg.next;eg.next=null}eg.elt=eb;var em=eg;if(ee==null){em.next=ef.head;ef.head=em}else{em.next=ee.next;ee.next=em}ef.pushmod=ef.modified=true;ef.length++}else{this.includes.remove(eb)}}else{if(ek){var ed=null;var el=this.excludes.head;while(el!=null){if(eb.id<el.elt.id){break}ed=el;el=el.next}var eh=this.excludes;var ej;if(b.zpp_pool==null){ej=new b()}else{ej=b.zpp_pool;b.zpp_pool=ej.next;ej.next=null}ej.elt=eb;var ea=ej;if(ed==null){ea.next=eh.head;eh.head=ea}else{ea.next=ed.next;ed.next=ea}eh.pushmod=eh.modified=true;eh.length++}else{this.excludes.remove(eb)}}};cP.prototype.append_type=function(eg,eb){if(eg==this.includes){if(!this.includes.has(eb)){if(!this.excludes.has(eb)){if(this.handler!=null){this.handler(eb,true,true)}else{var ee=null;var ec=this.includes.head;while(ec!=null){if(eb.id<ec.elt.id){break}ee=ec;ec=ec.next}var ef=this.includes;var eh;if(b.zpp_pool==null){eh=new b()}else{eh=b.zpp_pool;b.zpp_pool=eh.next;eh.next=null}eh.elt=eb;var el=eh;if(ee==null){el.next=ef.head;ef.head=el}else{el.next=ee.next;ee.next=el}ef.pushmod=ef.modified=true;ef.length++}}else{if(this.handler!=null){this.handler(eb,false,false)}else{this.excludes.remove(eb)}}}}else{if(!this.excludes.has(eb)){if(!this.includes.has(eb)){if(this.handler!=null){this.handler(eb,false,true)}else{var ed=null;var ek=this.excludes.head;while(ek!=null){if(eb.id<ek.elt.id){break}ed=ek;ek=ek.next}var ei=this.excludes;var ej;if(b.zpp_pool==null){ej=new b()}else{ej=b.zpp_pool;b.zpp_pool=ej.next;ej.next=null}ej.elt=eb;var ea=ej;if(ed==null){ea.next=ei.head;ei.head=ea}else{ea.next=ed.next;ed.next=ea}ei.pushmod=ei.modified=true;ei.length++}}else{if(this.handler!=null){this.handler(eb,true,false)}else{this.includes.remove(eb)}}}}};cP.prototype.set=function(ea){if(ea!=this){while(this.includes.head!=null){this.append_type(this.excludes,this.includes.head.elt)}while(this.excludes.head!=null){this.append_type(this.includes,this.excludes.head.elt)}var eb=ea.excludes.head;while(eb!=null){this.append_type(this.excludes,eb.elt);eb=eb.next}var ec=ea.includes.head;while(ec!=null){this.append_type(this.includes,ec.elt);ec=ec.next}}return this};cP.prototype.append=function(ek,ec){if(dc.__instanceof(ec,dk)){var ee=ec;this.append_type(ek,ee.zpp_inner)}else{if(dc.__instanceof(ec,C)){var eh=ec;eh.zpp_inner.valmod();var ei=Y.get(eh);while(true){ei.zpp_inner.zpp_inner.valmod();var ej=ei.zpp_inner;ej.zpp_inner.valmod();if(ej.zpp_inner.zip_length){ej.zpp_inner.zip_length=false;ej.zpp_inner.user_length=ej.zpp_inner.inner.length}var ea=ej.zpp_inner.user_length;ei.zpp_critical=true;var eg;if(ei.zpp_i<ea){eg=true}else{ei.zpp_next=Y.zpp_pool;Y.zpp_pool=ei;ei.zpp_inner=null;eg=false}if(!eg){break}ei.zpp_critical=false;this.append_type(ek,ei.zpp_inner.at(ei.zpp_i++).zpp_inner)}}else{if((ec instanceof Array)&&ec.__enum__==null){var ef=ec;var el=0;while(el<ef.length){var ed=ef[el];++el;var eb=ed;this.append_type(ek,eb.zpp_inner)}}}}};cP.prototype.__class__=cP;var b1=zpp_nape.constraint.ZPP_Constraint=function(){this.pre_dt=0;this.wrap_cbTypes=null;this.cbSet=null;this.cbTypes=null;this.__velocity=false;this.ignore=false;this.component=null;this.removeOnBreak=false;this.breakUnderError=false;this.breakUnderForce=false;this.maxError=0;this.maxForce=0;this.damping=0;this.frequency=0;this.stiff=false;this.active=false;this.space=null;this.compound=null;this.userData=null;this.id=0;this.outer=null;this.__velocity=false;this.id=cr.Constraint();this.stiff=true;this.active=true;this.ignore=false;this.frequency=10;this.damping=1;this.maxForce=Infinity;this.maxError=Infinity;this.breakUnderForce=false;this.removeOnBreak=true;this.pre_dt=-1;this.cbTypes=new x()};b1.__name__=["zpp_nape","constraint","ZPP_Constraint"];b1.prototype.outer=null;b1.prototype.clear=function(){};b1.prototype.id=null;b1.prototype.userData=null;b1.prototype.compound=null;b1.prototype.space=null;b1.prototype.active=null;b1.prototype.stiff=null;b1.prototype.frequency=null;b1.prototype.damping=null;b1.prototype.maxForce=null;b1.prototype.maxError=null;b1.prototype.breakUnderForce=null;b1.prototype.breakUnderError=null;b1.prototype.removeOnBreak=null;b1.prototype.component=null;b1.prototype.ignore=null;b1.prototype.__velocity=null;b1.prototype.immutable_midstep=function(ea){};b1.prototype.cbTypes=null;b1.prototype.cbSet=null;b1.prototype.wrap_cbTypes=null;b1.prototype.setupcbTypes=function(){this.wrap_cbTypes=cy.get(this.cbTypes);this.wrap_cbTypes.zpp_inner.adder=dX(this,this.wrap_cbTypes_adder);this.wrap_cbTypes.zpp_inner.subber=dX(this,this.wrap_cbTypes_subber);this.wrap_cbTypes.zpp_inner.dontremove=true};b1.prototype.wrap_cbTypes_subber=function(eb){var ea=eb.zpp_inner;if(this.cbTypes.has(ea)){if(this.space!=null){this.dealloc_cbSet();ea.constraints.remove(this)}this.cbTypes.remove(ea);if(this.space!=null){this.alloc_cbSet();this.wake()}}};b1.prototype.wrap_cbTypes_adder=function(ea){this.insert_cbtype(ea.zpp_inner);return false};b1.prototype.insert_cbtype=function(ea){if(!this.cbTypes.has(ea)){if(this.space!=null){this.dealloc_cbSet();ea.constraints.add(this)}var ee=null;var ed=this.cbTypes.head;while(ed!=null){if(ea.id<ed.elt.id){break}ee=ed;ed=ed.next}var ef=this.cbTypes;var ec;if(b.zpp_pool==null){ec=new b()}else{ec=b.zpp_pool;b.zpp_pool=ec.next;ec.next=null}ec.elt=ea;var eb=ec;if(ee==null){eb.next=ef.head;ef.head=eb}else{eb.next=ee.next;ee.next=eb}ef.pushmod=ef.modified=true;ef.length++;if(this.space!=null){this.alloc_cbSet();this.wake()}}};b1.prototype.alloc_cbSet=function(){if((this.cbSet=this.space.cbsets.get(this.cbTypes))!=null){this.cbSet.count++;this.cbSet.constraints.add(this)}};b1.prototype.dealloc_cbSet=function(){if(this.cbSet!=null){this.cbSet.constraints.remove(this);if(--this.cbSet.count==0){this.space.cbsets.remove(this.cbSet);var ea=this.cbSet;ea.listeners.clear();ea.zip_listeners=true;ea.bodylisteners.clear();ea.zip_bodylisteners=true;ea.conlisteners.clear();ea.zip_conlisteners=true;while(ea.cbTypes.head!=null){ea.cbTypes.pop_unsafe().cbsets.remove(ea)}ea.next=cC.zpp_pool;cC.zpp_pool=ea}this.cbSet=null}};b1.prototype.activate=function(){if(this.space!=null){this.activeInSpace()}};b1.prototype.deactivate=function(){if(this.space!=null){this.inactiveOrOutSpace()}};b1.prototype.addedToSpace=function(){if(this.active){this.activeInSpace()}this.activeBodies();var ea=this.cbTypes.head;while(ea!=null){ea.elt.constraints.add(this);ea=ea.next}};b1.prototype.removedFromSpace=function(){if(this.active){this.inactiveOrOutSpace()}this.inactiveBodies();var ea=this.cbTypes.head;while(ea!=null){ea.elt.constraints.remove(this);ea=ea.next}};b1.prototype.activeInSpace=function(){this.alloc_cbSet();if(bx.zpp_pool==null){this.component=new bx()}else{this.component=bx.zpp_pool;bx.zpp_pool=this.component.next;this.component.next=null}this.component.isBody=false;this.component.constraint=this};b1.prototype.inactiveOrOutSpace=function(){this.dealloc_cbSet();var ea=this.component;ea.body=null;ea.constraint=null;ea.next=bx.zpp_pool;bx.zpp_pool=ea;this.component=null};b1.prototype.activeBodies=function(){};b1.prototype.inactiveBodies=function(){};b1.prototype.clearcache=function(){};b1.prototype.validate=function(){};b1.prototype.wake_connected=function(){};b1.prototype.forest=function(){};b1.prototype.pair_exists=function(eb,ea){return false};b1.prototype.broken=function(){};b1.prototype.warmStart=function(){};b1.prototype.pre_dt=null;b1.prototype.preStep=function(ea){return false};b1.prototype.applyImpulseVel=function(){return false};b1.prototype.applyImpulsePos=function(){return false};b1.prototype.wake=function(){if(this.space!=null){this.space.wake_constraint(this)}};b1.prototype.draw=function(ea){};b1.prototype.copy=function(eb,ea){return null};b1.prototype.copyto=function(er){var eq=this.outer;if(eq.zpp_inner.wrap_cbTypes==null){eq.zpp_inner.setupcbTypes()}var ej=eq.zpp_inner.wrap_cbTypes;ej.zpp_inner.valmod();var eb=Y.get(ej);while(true){eb.zpp_inner.zpp_inner.valmod();var el=eb.zpp_inner;el.zpp_inner.valmod();if(el.zpp_inner.zip_length){el.zpp_inner.zip_length=false;el.zpp_inner.user_length=el.zpp_inner.inner.length}var ed=el.zpp_inner.user_length;eb.zpp_critical=true;var eo;if(eb.zpp_i<ed){eo=true}else{eb.zpp_next=Y.zpp_pool;Y.zpp_pool=eb;eb.zpp_inner=null;eo=false}if(!eo){break}eb.zpp_critical=false;var eh=eb.zpp_inner.at(eb.zpp_i++);if(er.zpp_inner.wrap_cbTypes==null){er.zpp_inner.setupcbTypes()}var ek=er.zpp_inner.wrap_cbTypes;if(ek.zpp_inner.reverse_flag){ek.push(eh)}else{ek.unshift(eh)}}er.zpp_inner.removeOnBreak=eq.zpp_inner.removeOnBreak;var ei=eq.zpp_inner.breakUnderError;if(er.zpp_inner.breakUnderError!=ei){er.zpp_inner.breakUnderError=ei;er.zpp_inner.wake()}var ea=eq.zpp_inner.breakUnderForce;if(er.zpp_inner.breakUnderForce!=ea){er.zpp_inner.breakUnderForce=ea;er.zpp_inner.wake()}var ep=eq.zpp_inner.maxError;if(er.zpp_inner.maxError!=ep){er.zpp_inner.maxError=ep;er.zpp_inner.wake()}var ee=eq.zpp_inner.maxForce;if(er.zpp_inner.maxForce!=ee){er.zpp_inner.maxForce=ee;er.zpp_inner.wake()}var ec=eq.zpp_inner.damping;if(er.zpp_inner.damping!=ec){er.zpp_inner.damping=ec;if(!er.zpp_inner.stiff){er.zpp_inner.wake()}}var eg=eq.zpp_inner.frequency;if(er.zpp_inner.frequency!=eg){er.zpp_inner.frequency=eg;if(!er.zpp_inner.stiff){er.zpp_inner.wake()}}var en=eq.zpp_inner.stiff;if(er.zpp_inner.stiff!=en){er.zpp_inner.stiff=en;er.zpp_inner.wake()}var em=eq.zpp_inner.ignore;if(er.zpp_inner.ignore!=em){er.zpp_inner.ignore=em;er.zpp_inner.wake()}var ef=eq.zpp_inner.active;if(er.zpp_inner.active!=ef){if(er.zpp_inner.component!=null){er.zpp_inner.component.woken=false}er.zpp_inner.clearcache();if(ef){er.zpp_inner.active=ef;er.zpp_inner.activate();if(er.zpp_inner.space!=null){if(er.zpp_inner.component!=null){er.zpp_inner.component.sleeping=true}er.zpp_inner.space.wake_constraint(er.zpp_inner,true)}}else{if(er.zpp_inner.space!=null){er.zpp_inner.wake();er.zpp_inner.space.live_constraints.remove(er.zpp_inner)}er.zpp_inner.active=ef;er.zpp_inner.deactivate()}}};b1.prototype.__class__=b1;var dt=zpp_nape.constraint.ZPP_AngleJoint=function(){this.stepped=false;this.bias=0;this.gamma=0;this.jMax=0;this.jAcc=0;this.kMass=0;this.b2=null;this.b1=null;this.scale=0;this.equal=false;this.slack=false;this.jointMax=0;this.jointMin=0;this.ratio=0;this.outer_zn=null;b1.call(this);this.ratio=1;this.jAcc=0;this.slack=false;this.jMax=Infinity;this.stepped=false};dt.__name__=["zpp_nape","constraint","ZPP_AngleJoint"];dt.__super__=b1;dt.prototype=Object.create(b1.prototype);dt.prototype.outer_zn=null;dt.prototype.ratio=null;dt.prototype.jointMin=null;dt.prototype.jointMax=null;dt.prototype.slack=null;dt.prototype.equal=null;dt.prototype.scale=null;dt.prototype.is_slack=function(){var ea;var eb=this.ratio*this.b2.rot-this.b1.rot;if(this.equal){ea=false;this.scale=1}else{if(eb<this.jointMin){this.scale=-1;ea=false}else{if(eb>this.jointMax){eb-=this.jointMax;this.scale=1;ea=false}else{this.scale=0;eb=0;ea=true}}}return ea};dt.prototype.bodyImpulse=function(ea){if(this.stepped){if(ea==this.b1){return q.get(0,0,-this.scale*this.jAcc)}else{return q.get(0,0,this.ratio*this.scale*this.jAcc)}}else{return q.get(0,0,0)}};dt.prototype.activeBodies=function(){if(this.b1!=null){this.b1.constraints.add(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.add(this)}}};dt.prototype.inactiveBodies=function(){if(this.b1!=null){this.b1.constraints.remove(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.remove(this)}}};dt.prototype.b1=null;dt.prototype.b2=null;dt.prototype.kMass=null;dt.prototype.jAcc=null;dt.prototype.jMax=null;dt.prototype.gamma=null;dt.prototype.bias=null;dt.prototype.stepped=null;dt.prototype.copy=function(ea,eb){var ed=new aA(null,null,this.jointMin,this.jointMax,this.ratio);this.copyto(ed);if(ea!=null&&this.b1!=null){var eh=null;var ec=0;while(ec<ea.length){var ef=ea[ec];++ec;if(ef.id==this.b1.id){eh=ef.bc;break}}if(eh!=null){ed.zpp_inner_zn.b1=eh.zpp_inner}else{eb.push(cu.todo(this.b1.id,function(ej){ed.zpp_inner_zn.b1=ej.zpp_inner}))}}if(ea!=null&&this.b2!=null){var eg=null;var ee=0;while(ee<ea.length){var ei=ea[ee];++ee;if(ei.id==this.b2.id){eg=ei.bc;break}}if(eg!=null){ed.zpp_inner_zn.b2=eg.zpp_inner}else{eb.push(cu.todo(this.b2.id,function(ej){ed.zpp_inner_zn.b2=ej.zpp_inner}))}}return ed};dt.prototype.validate=function(){if(this.b1==null||this.b2==null){throw new cE("Error: AngleJoint cannot be simulated null bodies")}if(this.b1==this.b2){throw new cE("Error: AngleJoint cannot be simulated with body1 == body2")}if(this.b1.space!=this.space||this.b2.space!=this.space){throw new cE("Error: Constraints must have each body within the same space to which the constraint has been assigned")}if(this.jointMin>this.jointMax){throw new cE("Error: AngleJoint must have jointMin <= jointMax")}if(this.b1.type!=2&&this.b2.type!=2){throw new cE("Error: Constraints cannot have both bodies non-dynamic")}};dt.prototype.wake_connected=function(){if(this.b1!=null&&this.b1.type==2){this.b1.wake()}if(this.b2!=null&&this.b2.type==2){this.b2.wake()}};dt.prototype.forest=function(){if(this.b1.type==2){var en;if(this.b1.component==this.b1.component.parent){en=this.b1.component}else{var eo=this.b1.component;var em=null;while(eo!=eo.parent){var ei=eo.parent;eo.parent=em;em=eo;eo=ei}while(em!=null){var eh=em.parent;em.parent=eo;em=eh}en=eo}var er;if(this.component==this.component.parent){er=this.component}else{var et=this.component;var el=null;while(et!=et.parent){var eg=et.parent;et.parent=el;el=et;et=eg}while(el!=null){var ef=el.parent;el.parent=et;el=ef}er=et}if(en!=er){if(en.rank<er.rank){en.parent=er}else{if(en.rank>er.rank){er.parent=en}else{er.parent=en;en.rank++}}}}if(this.b2.type==2){var ee;if(this.b2.component==this.b2.component.parent){ee=this.b2.component}else{var es=this.b2.component;var ek=null;while(es!=es.parent){var ed=es.parent;es.parent=ek;ek=es;es=ed}while(ek!=null){var ec=ek.parent;ek.parent=es;ek=ec}ee=es}var ep;if(this.component==this.component.parent){ep=this.component}else{var eq=this.component;var ej=null;while(eq!=eq.parent){var eb=eq.parent;eq.parent=ej;ej=eq;eq=eb}while(ej!=null){var ea=ej.parent;ej.parent=eq;ej=ea}ep=eq}if(ee!=ep){if(ee.rank<ep.rank){ee.parent=ep}else{if(ee.rank>ep.rank){ep.parent=ee}else{ep.parent=ee;ee.rank++}}}}};dt.prototype.pair_exists=function(eb,ea){if(!(this.b1.id==eb&&this.b2.id==ea)){if(this.b1.id==ea){return this.b2.id==eb}else{return false}}else{return true}};dt.prototype.clearcache=function(){this.jAcc=0;this.pre_dt=-1;this.slack=false};dt.prototype.preStep=function(eb){if(this.pre_dt==-1){this.pre_dt=eb}var ee=eb/this.pre_dt;this.pre_dt=eb;this.stepped=true;this.equal=this.jointMin==this.jointMax;var ef=this.ratio*this.b2.rot-this.b1.rot;if(this.equal){ef-=this.jointMax;this.slack=false;this.scale=1}else{if(ef<this.jointMin){ef=this.jointMin-ef;this.scale=-1;this.slack=false}else{if(ef>this.jointMax){ef-=this.jointMax;this.scale=1;this.slack=false}else{this.scale=0;ef=0;this.slack=true}}}var ed=ef;if(!this.slack){this.kMass=this.b1.sinertia+this.ratio*this.ratio*this.b2.sinertia;if(this.kMass!=0){this.kMass=1/this.kMass}else{this.jAcc=0}if(!this.stiff){if(this.breakUnderError&&ed*ed>this.maxError*this.maxError){return true}var ea;var eg=2*Math.PI*this.frequency;this.gamma=1/(eb*eg*(2*this.damping+eg*eb));var ec=1/(1+this.gamma);ea=eb*eg*eg*this.gamma;this.gamma*=ec;this.kMass*=ec;this.bias=-ed*ea;if(this.bias<-this.maxError){this.bias=-this.maxError}else{if(this.bias>this.maxError){this.bias=this.maxError}}}else{this.bias=0;this.gamma=0}this.jAcc*=ee;this.jMax=this.maxForce*eb}return false};dt.prototype.warmStart=function(){if(!this.slack){this.b1.angvel-=this.scale*this.b1.iinertia*this.jAcc;this.b2.angvel+=this.ratio*this.scale*this.b2.iinertia*this.jAcc}};dt.prototype.applyImpulseVel=function(){if(this.slack){return false}var ea=this.kMass*(this.bias-this.scale*(this.ratio*(this.b2.angvel+this.b2.kinangvel)-this.b1.angvel-this.b1.kinangvel))-this.jAcc*this.gamma;var eb=this.jAcc;this.jAcc+=ea;if(!this.equal&&this.jAcc>0){this.jAcc=0}if(this.breakUnderForce&&(this.jAcc>this.jMax||this.jAcc<-this.jMax)){return true}if(!this.stiff){if(this.jAcc>this.jMax){this.jAcc=this.jMax}else{if(this.jAcc<-this.jMax){this.jAcc=-this.jMax}}}ea=this.jAcc-eb;this.b1.angvel-=this.scale*this.b1.iinertia*ea;this.b2.angvel+=this.ratio*this.scale*this.b2.iinertia*ea;return false};dt.prototype.applyImpulsePos=function(){var ep;var eh;var el;var ec=this.ratio*this.b2.rot-this.b1.rot;if(this.equal){ec-=this.jointMax;el=false;this.scale=1}else{if(ec<this.jointMin){ec=this.jointMin-ec;this.scale=-1;el=false}else{if(ec>this.jointMax){ec-=this.jointMax;this.scale=1;el=false}else{this.scale=0;ec=0;el=true}}}ep=ec;if(!el){if(this.breakUnderError&&ep*ep>this.maxError*this.maxError){return true}ep*=0.5;eh=-ep*this.kMass;if(this.equal||eh<0){var ej=this.b1;var eg=-this.scale*eh*this.b1.iinertia;ej.rot+=eg;if(eg*eg>0.0001){ej.axisx=Math.sin(ej.rot);ej.axisy=Math.cos(ej.rot)}else{var eb=eg*eg;var ed=1-0.5*eb;var ef=1-eb*eb/8;var ei=(ed*ej.axisx+eg*ej.axisy)*ef;ej.axisy=(ed*ej.axisy-eg*ej.axisx)*ef;ej.axisx=ei}var ek=this.b2;var eo=this.ratio*this.scale*eh*this.b2.iinertia;ek.rot+=eo;if(eo*eo>0.0001){ek.axisx=Math.sin(ek.rot);ek.axisy=Math.cos(ek.rot)}else{var ee=eo*eo;var em=1-0.5*ee;var en=1-ee*ee/8;var ea=(em*ek.axisx+eo*ek.axisy)*en;ek.axisy=(em*ek.axisy-eo*ek.axisx)*en;ek.axisx=ea}}}return false};dt.prototype.draw=function(ea){};dt.prototype.__class__=dt;var cu=zpp_nape.constraint.ZPP_CopyHelper=function(){this.cb=null;this.bc=null;this.id=0};cu.__name__=["zpp_nape","constraint","ZPP_CopyHelper"];cu.dict=function(ec,eb){var ea=new cu();ea.id=ec;ea.bc=eb;return ea};cu.todo=function(ec,ea){var eb=new cu();eb.id=ec;eb.cb=ea;return eb};cu.prototype.id=null;cu.prototype.bc=null;cu.prototype.cb=null;cu.prototype.__class__=cu;var J=zpp_nape.constraint.ZPP_DistanceJoint=function(){this.stepped=false;this.bias=0;this.gamma=0;this.jMax=0;this.jAcc=0;this.kMass=0;this.wrap_a2=null;this.a2rely=0;this.a2relx=0;this.a2localy=0;this.a2localx=0;this.b2=null;this.wrap_a1=null;this.a1rely=0;this.a1relx=0;this.a1localy=0;this.a1localx=0;this.b1=null;this.cx2=0;this.cx1=0;this.ny=0;this.nx=0;this.equal=false;this.slack=false;this.jointMax=0;this.jointMin=0;this.outer_zn=null;b1.call(this);this.a1localx=0;this.a1localy=0;this.a1relx=0;this.a1rely=0;this.a2localx=0;this.a2localy=0;this.a2relx=0;this.a2rely=0;this.jAcc=0;this.jMax=Infinity;this.stepped=false;this.cx1=this.cx2=0};J.__name__=["zpp_nape","constraint","ZPP_DistanceJoint"];J.__super__=b1;J.prototype=Object.create(b1.prototype);J.prototype.outer_zn=null;J.prototype.jointMin=null;J.prototype.jointMax=null;J.prototype.slack=null;J.prototype.equal=null;J.prototype.is_slack=function(){var eb;this.a1relx=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;this.a1rely=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;this.a2relx=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;this.a2rely=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var ea=0;var ee=0;ea=this.b2.posx+this.a2relx-(this.b1.posx+this.a1relx);ee=this.b2.posy+this.a2rely-(this.b1.posy+this.a1rely);var ed=ea*ea+ee*ee;if(ed<P.epsilon){eb=true}else{ed=Math.sqrt(ed);var ec=1/ed;ea*=ec;ee*=ec;if(this.equal){eb=false}else{if(ed<this.jointMin){eb=false}else{if(ed>this.jointMax){ed-=this.jointMax;eb=false}else{ea=0;ee=0;ed=0;eb=true}}}}return eb};J.prototype.nx=null;J.prototype.ny=null;J.prototype.cx1=null;J.prototype.cx2=null;J.prototype.bodyImpulse=function(ea){if(this.stepped){if(ea==this.b1){return q.get(-this.jAcc*this.nx,-this.jAcc*this.ny,-this.cx1*this.jAcc)}else{return q.get(this.jAcc*this.nx,this.jAcc*this.ny,this.cx2*this.jAcc)}}else{return q.get(0,0,0)}};J.prototype.activeBodies=function(){if(this.b1!=null){this.b1.constraints.add(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.add(this)}}};J.prototype.inactiveBodies=function(){if(this.b1!=null){this.b1.constraints.remove(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.remove(this)}}};J.prototype.b1=null;J.prototype.a1localx=null;J.prototype.a1localy=null;J.prototype.a1relx=null;J.prototype.a1rely=null;J.prototype.validate_a1=function(){this.wrap_a1.zpp_inner.x=this.a1localx;this.wrap_a1.zpp_inner.y=this.a1localy};J.prototype.invalidate_a1=function(ea){this.immutable_midstep("Constraint::a1");this.a1localx=ea.x;this.a1localy=ea.y;this.wake()};J.prototype.setup_a1=function(){var ea=this.a1localx;var eh=this.a1localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a1=eb;this.wrap_a1.zpp_inner._inuse=true;this.wrap_a1.zpp_inner._validate=dX(this,this.validate_a1);this.wrap_a1.zpp_inner._invalidate=dX(this,this.invalidate_a1)};J.prototype.wrap_a1=null;J.prototype.b2=null;J.prototype.a2localx=null;J.prototype.a2localy=null;J.prototype.a2relx=null;J.prototype.a2rely=null;J.prototype.validate_a2=function(){this.wrap_a2.zpp_inner.x=this.a2localx;this.wrap_a2.zpp_inner.y=this.a2localy};J.prototype.invalidate_a2=function(ea){this.immutable_midstep("Constraint::a2");this.a2localx=ea.x;this.a2localy=ea.y;this.wake()};J.prototype.setup_a2=function(){var ea=this.a2localx;var eh=this.a2localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a2=eb;this.wrap_a2.zpp_inner._inuse=true;this.wrap_a2.zpp_inner._validate=dX(this,this.validate_a2);this.wrap_a2.zpp_inner._invalidate=dX(this,this.invalidate_a2)};J.prototype.wrap_a2=null;J.prototype.kMass=null;J.prototype.jAcc=null;J.prototype.jMax=null;J.prototype.gamma=null;J.prototype.bias=null;J.prototype.stepped=null;J.prototype.copy=function(ea,eb){var ee=this.outer_zn;if(ee.zpp_inner_zn.wrap_a1==null){ee.zpp_inner_zn.setup_a1()}var ec=ee.zpp_inner_zn.wrap_a1;var eg=this.outer_zn;if(eg.zpp_inner_zn.wrap_a2==null){eg.zpp_inner_zn.setup_a2()}var ef=new dx(null,null,ec,eg.zpp_inner_zn.wrap_a2,this.jointMin,this.jointMax);this.copyto(ef);if(ea!=null&&this.b1!=null){var ek=null;var ed=0;while(ed<ea.length){var ej=ea[ed];++ed;if(ej.id==this.b1.id){ek=ej.bc;break}}if(ek!=null){ef.zpp_inner_zn.b1=ek.zpp_inner}else{eb.push(cu.todo(this.b1.id,function(em){ef.zpp_inner_zn.b1=em.zpp_inner}))}}if(ea!=null&&this.b2!=null){var ei=null;var eh=0;while(eh<ea.length){var el=ea[eh];++eh;if(el.id==this.b2.id){ei=el.bc;break}}if(ei!=null){ef.zpp_inner_zn.b2=ei.zpp_inner}else{eb.push(cu.todo(this.b2.id,function(em){ef.zpp_inner_zn.b2=em.zpp_inner}))}}return ef};J.prototype.validate=function(){if(this.b1==null||this.b2==null){throw new cE("Error: DistanceJoint cannot be simulated null bodies")}if(this.b1==this.b2){throw new cE("Error: DistanceJoint cannot be simulated with body1 == body2")}if(this.b1.space!=this.space||this.b2.space!=this.space){throw new cE("Error: Constraints must have each body within the same space to which the constraint has been assigned")}if(this.jointMin>this.jointMax){throw new cE("Error: DistanceJoint must have jointMin <= jointMax")}if(this.b1.type!=2&&this.b2.type!=2){throw new cE("Error: Constraints cannot have both bodies non-dynamic")}};J.prototype.wake_connected=function(){if(this.b1!=null&&this.b1.type==2){this.b1.wake()}if(this.b2!=null&&this.b2.type==2){this.b2.wake()}};J.prototype.forest=function(){if(this.b1.type==2){var en;if(this.b1.component==this.b1.component.parent){en=this.b1.component}else{var eo=this.b1.component;var em=null;while(eo!=eo.parent){var ei=eo.parent;eo.parent=em;em=eo;eo=ei}while(em!=null){var eh=em.parent;em.parent=eo;em=eh}en=eo}var er;if(this.component==this.component.parent){er=this.component}else{var et=this.component;var el=null;while(et!=et.parent){var eg=et.parent;et.parent=el;el=et;et=eg}while(el!=null){var ef=el.parent;el.parent=et;el=ef}er=et}if(en!=er){if(en.rank<er.rank){en.parent=er}else{if(en.rank>er.rank){er.parent=en}else{er.parent=en;en.rank++}}}}if(this.b2.type==2){var ee;if(this.b2.component==this.b2.component.parent){ee=this.b2.component}else{var es=this.b2.component;var ek=null;while(es!=es.parent){var ed=es.parent;es.parent=ek;ek=es;es=ed}while(ek!=null){var ec=ek.parent;ek.parent=es;ek=ec}ee=es}var ep;if(this.component==this.component.parent){ep=this.component}else{var eq=this.component;var ej=null;while(eq!=eq.parent){var eb=eq.parent;eq.parent=ej;ej=eq;eq=eb}while(ej!=null){var ea=ej.parent;ej.parent=eq;ej=ea}ep=eq}if(ee!=ep){if(ee.rank<ep.rank){ee.parent=ep}else{if(ee.rank>ep.rank){ep.parent=ee}else{ep.parent=ee;ee.rank++}}}}};J.prototype.pair_exists=function(eb,ea){if(!(this.b1.id==eb&&this.b2.id==ea)){if(this.b1.id==ea){return this.b2.id==eb}else{return false}}else{return true}};J.prototype.clearcache=function(){this.jAcc=0;this.pre_dt=-1};J.prototype.preStep=function(ec){if(this.pre_dt==-1){this.pre_dt=ec}var ef=ec/this.pre_dt;this.pre_dt=ec;this.stepped=true;this.equal=this.jointMin==this.jointMax;this.a1relx=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;this.a1rely=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;this.a2relx=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;this.a2rely=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;this.nx=this.b2.posx+this.a2relx-(this.b1.posx+this.a1relx);this.ny=this.b2.posy+this.a2rely-(this.b1.posy+this.a1rely);var eg=this.nx*this.nx+this.ny*this.ny;if(eg<P.epsilon){this.nx=0;this.ny=0;eg=0;this.slack=true}else{eg=Math.sqrt(eg);var eb=1/eg;this.nx*=eb;this.ny*=eb;if(this.equal){eg-=this.jointMax;this.slack=false}else{if(eg<this.jointMin){eg=this.jointMin-eg;this.nx=-this.nx;this.ny=-this.ny;this.slack=false}else{if(eg>this.jointMax){eg-=this.jointMax;this.slack=false}else{this.nx=0;this.ny=0;eg=0;this.slack=true}}}}var ee=eg;if(!this.slack){this.cx1=this.ny*this.a1relx-this.nx*this.a1rely;this.cx2=this.ny*this.a2relx-this.nx*this.a2rely;this.kMass=this.b1.smass+this.b2.smass+this.cx1*this.cx1*this.b1.sinertia+this.cx2*this.cx2*this.b2.sinertia;if(this.kMass!=0){this.kMass=1/this.kMass}else{this.jAcc=0}if(!this.stiff){if(this.breakUnderError&&ee*ee>this.maxError*this.maxError){return true}var ea;var eh=2*Math.PI*this.frequency;this.gamma=1/(ec*eh*(2*this.damping+eh*ec));var ed=1/(1+this.gamma);ea=ec*eh*eh*this.gamma;this.gamma*=ed;this.kMass*=ed;this.bias=-ee*ea;if(this.bias<-this.maxError){this.bias=-this.maxError}else{if(this.bias>this.maxError){this.bias=this.maxError}}}else{this.bias=0;this.gamma=0}this.jAcc*=ef;this.jMax=this.maxForce*ec}return false};J.prototype.warmStart=function(){if(!this.slack){var ea=this.b1.imass*this.jAcc;this.b1.velx-=this.nx*ea;this.b1.vely-=this.ny*ea;var eb=this.b2.imass*this.jAcc;this.b2.velx+=this.nx*eb;this.b2.vely+=this.ny*eb;this.b1.angvel-=this.cx1*this.b1.iinertia*this.jAcc;this.b2.angvel+=this.cx2*this.b2.iinertia*this.jAcc}};J.prototype.applyImpulseVel=function(){if(this.slack){return false}var ea=this.kMass*(this.bias-(this.nx*(this.b2.velx+this.b2.kinvelx-this.b1.velx-this.b1.kinvelx)+this.ny*(this.b2.vely+this.b2.kinvely-this.b1.vely-this.b1.kinvely)+(this.b2.angvel+this.b2.kinangvel)*this.cx2-(this.b1.angvel+this.b1.kinangvel)*this.cx1))-this.jAcc*this.gamma;var ed=this.jAcc;this.jAcc+=ea;if(!this.equal&&this.jAcc>0){this.jAcc=0}if(this.breakUnderForce&&this.jAcc<-this.jMax){return true}if(!this.stiff){if(this.jAcc<-this.jMax){this.jAcc=-this.jMax}}ea=this.jAcc-ed;var eb=this.b1.imass*ea;this.b1.velx-=this.nx*eb;this.b1.vely-=this.ny*eb;var ec=this.b2.imass*ea;this.b2.velx+=this.nx*ec;this.b2.vely+=this.ny*ec;this.b1.angvel-=this.cx1*this.b1.iinertia*ea;this.b2.angvel+=this.cx2*this.b2.iinertia*ea;return false};J.prototype.applyImpulsePos=function(){var eo;var eB;var ef=0;var ee=0;ef=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;ee=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;var eq=0;var en=0;eq=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;en=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var ed;var eF=0;var eE=0;eF=this.b2.posx+eq-(this.b1.posx+ef);eE=this.b2.posy+en-(this.b1.posy+ee);var et=eF*eF+eE*eE;if(et<P.epsilon){eF=0;eE=0;et=0;ed=true}else{et=Math.sqrt(et);var ep=1/et;eF*=ep;eE*=ep;if(this.equal){et-=this.jointMax;ed=false}else{if(et<this.jointMin){et=this.jointMin-et;eF=-eF;eE=-eE;ed=false}else{if(et>this.jointMax){et-=this.jointMax;ed=false}else{eF=0;eE=0;et=0;ed=true}}}}eo=et;if(!ed){if(this.breakUnderError&&eo*eo>this.maxError*this.maxError){return true}if(eo*eo<P.constraintLinearSlop*P.constraintLinearSlop){return false}eo*=0.5;if(eo*eo>6){var eA=this.b1.smass+this.b2.smass;if(eA>P.epsilon){eA=0.75/eA;eB=-eo*eA;if(this.equal||eB<0){var em=eB*this.b1.imass;this.b1.posx-=eF*em;this.b1.posy-=eE*em;var el=eB*this.b2.imass;this.b2.posx+=eF*el;this.b2.posy+=eE*el;eF=this.b2.posx+eq-(this.b1.posx+ef);eE=this.b2.posy+en-(this.b1.posy+ee);var eC=eF*eF+eE*eE;if(eC<P.epsilon){eF=0;eE=0;eC=0}else{eC=Math.sqrt(eC);var ek=1/eC;eF*=ek;eE*=ek;if(this.equal){eC-=this.jointMax}else{if(eC<this.jointMin){eC=this.jointMin-eC;eF=-eF;eE=-eE}else{if(eC>this.jointMax){eC-=this.jointMax}else{eF=0;eE=0;eC=0}}}}eo=eC;eo*=0.5}}}var es;var er;es=eE*ef-eF*ee;er=eE*eq-eF*en;var ej=this.b1.smass+this.b2.smass+es*es*this.b1.sinertia+er*er*this.b2.sinertia;if(ej!=0){ej=1/ej}eB=-eo*ej;if(this.equal||eB<0){var ei=this.b1.imass*eB;this.b1.posx-=eF*ei;this.b1.posy-=eE*ei;var eh=this.b2.imass*eB;this.b2.posx+=eF*eh;this.b2.posy+=eE*eh;var ez=this.b1;var ev=-es*this.b1.iinertia*eB;ez.rot+=ev;if(ev*ev>0.0001){ez.axisx=Math.sin(ez.rot);ez.axisy=Math.cos(ez.rot)}else{var eG=ev*ev;var eu=1-0.5*eG;var ey=1-eG*eG/8;var ex=(eu*ez.axisx+ev*ez.axisy)*ey;ez.axisy=(eu*ez.axisy-ev*ez.axisx)*ey;ez.axisx=ex}var eD=this.b2;var ec=er*this.b2.iinertia*eB;eD.rot+=ec;if(ec*ec>0.0001){eD.axisx=Math.sin(eD.rot);eD.axisy=Math.cos(eD.rot)}else{var eg=ec*ec;var eb=1-0.5*eg;var ea=1-eg*eg/8;var ew=(eb*eD.axisx+ec*eD.axisy)*ea;eD.axisy=(eb*eD.axisy-ec*eD.axisx)*ea;eD.axisx=ew}}}return false};J.prototype.draw=function(ea){};J.prototype.__class__=J;var bR=zpp_nape.constraint.ZPP_LineJoint=function(){this.biasy=0;this.biasx=0;this.jAccy=0;this.jAccx=0;this.kMassc=0;this.kMassb=0;this.kMassa=0;this.wrap_n=null;this.nrely=0;this.nrelx=0;this.nlocaly=0;this.nlocalx=0;this.wrap_a2=null;this.a2rely=0;this.a2relx=0;this.a2localy=0;this.a2localx=0;this.wrap_a1=null;this.a1rely=0;this.a1relx=0;this.a1localy=0;this.a1localx=0;this.cx2=0;this.cx1=0;this.dot2=0;this.dot1=0;this.equal=false;this.jointMax=0;this.jointMin=0;this.scale=0;this.outer_zn=null;b1.call(this);this.a1localx=0;this.a1localy=0;this.a1relx=0;this.a1rely=0;this.a2localx=0;this.a2localy=0;this.a2relx=0;this.a2rely=0;this.nlocalx=0;this.nlocaly=0;this.nrelx=0;this.nrely=0;this.jAccx=0;this.jAccy=0;this.jMax=Infinity;this.jointMin=-Infinity;this.jointMax=Infinity;this.stepped=false};bR.__name__=["zpp_nape","constraint","ZPP_LineJoint"];bR.__super__=b1;bR.prototype=Object.create(b1.prototype);bR.prototype.outer_zn=null;bR.prototype.scale=null;bR.prototype.jointMin=null;bR.prototype.jointMax=null;bR.prototype.equal=null;bR.prototype.dot1=null;bR.prototype.dot2=null;bR.prototype.cx1=null;bR.prototype.cx2=null;bR.prototype.bodyImpulse=function(ea){if(this.stepped){var ec=this.scale*this.nrelx*this.jAccy-this.nrely*this.jAccx;var eb=this.nrelx*this.jAccx+this.scale*this.nrely*this.jAccy;if(ea==this.b1){return q.get(-ec,-eb,this.scale*this.cx1*eb-this.dot1*ec)}else{return q.get(ec,eb,this.scale*this.cx1*eb-this.dot1*ec)}}else{return q.get(0,0,0)}};bR.prototype.activeBodies=function(){if(this.b1!=null){this.b1.constraints.add(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.add(this)}}};bR.prototype.inactiveBodies=function(){if(this.b1!=null){this.b1.constraints.remove(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.remove(this)}}};bR.prototype.b1=null;bR.prototype.a1localx=null;bR.prototype.a1localy=null;bR.prototype.a1relx=null;bR.prototype.a1rely=null;bR.prototype.validate_a1=function(){this.wrap_a1.zpp_inner.x=this.a1localx;this.wrap_a1.zpp_inner.y=this.a1localy};bR.prototype.invalidate_a1=function(ea){this.immutable_midstep("Constraint::a1");this.a1localx=ea.x;this.a1localy=ea.y;this.wake()};bR.prototype.setup_a1=function(){var ea=this.a1localx;var eh=this.a1localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a1=eb;this.wrap_a1.zpp_inner._inuse=true;this.wrap_a1.zpp_inner._validate=dX(this,this.validate_a1);this.wrap_a1.zpp_inner._invalidate=dX(this,this.invalidate_a1)};bR.prototype.wrap_a1=null;bR.prototype.b2=null;bR.prototype.a2localx=null;bR.prototype.a2localy=null;bR.prototype.a2relx=null;bR.prototype.a2rely=null;bR.prototype.validate_a2=function(){this.wrap_a2.zpp_inner.x=this.a2localx;this.wrap_a2.zpp_inner.y=this.a2localy};bR.prototype.invalidate_a2=function(ea){this.immutable_midstep("Constraint::a2");this.a2localx=ea.x;this.a2localy=ea.y;this.wake()};bR.prototype.setup_a2=function(){var ea=this.a2localx;var eh=this.a2localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a2=eb;this.wrap_a2.zpp_inner._inuse=true;this.wrap_a2.zpp_inner._validate=dX(this,this.validate_a2);this.wrap_a2.zpp_inner._invalidate=dX(this,this.invalidate_a2)};bR.prototype.wrap_a2=null;bR.prototype.zip_n=null;bR.prototype.nlocalx=null;bR.prototype.nlocaly=null;bR.prototype.nrelx=null;bR.prototype.nrely=null;bR.prototype.validate_n=function(){this.wrap_n.zpp_inner.x=this.nlocalx;this.wrap_n.zpp_inner.y=this.nlocaly};bR.prototype.invalidate_n=function(ea){this.immutable_midstep("Constraint::n");this.nlocalx=ea.x;this.nlocaly=ea.y;this.zip_n=true;this.wake()};bR.prototype.setup_n=function(){var ea=this.nlocalx;var eh=this.nlocaly;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_n=eb;this.wrap_n.zpp_inner._inuse=true;this.wrap_n.zpp_inner._validate=dX(this,this.validate_n);this.wrap_n.zpp_inner._invalidate=dX(this,this.invalidate_n)};bR.prototype.wrap_n=null;bR.prototype.validate_norm=function(){if(this.zip_n){this.zip_n=false;var ea=1/Math.sqrt(this.nlocalx*this.nlocalx+this.nlocaly*this.nlocaly);this.nlocalx*=ea;this.nlocaly*=ea}};bR.prototype.kMassa=null;bR.prototype.kMassb=null;bR.prototype.kMassc=null;bR.prototype.jAccx=null;bR.prototype.jAccy=null;bR.prototype.jMax=null;bR.prototype.gamma=null;bR.prototype.biasx=null;bR.prototype.biasy=null;bR.prototype.stepped=null;bR.prototype.copy=function(ea,eb){var ef=this.outer_zn;if(ef.zpp_inner_zn.wrap_a1==null){ef.zpp_inner_zn.setup_a1()}var ed=ef.zpp_inner_zn.wrap_a1;var ei=this.outer_zn;if(ei.zpp_inner_zn.wrap_a2==null){ei.zpp_inner_zn.setup_a2()}var ec=ei.zpp_inner_zn.wrap_a2;var eg=this.outer_zn;if(eg.zpp_inner_zn.wrap_n==null){eg.zpp_inner_zn.setup_n()}var eh=new aO(null,null,ed,ec,eg.zpp_inner_zn.wrap_n,this.jointMin,this.jointMax);this.copyto(eh);if(ea!=null&&this.b1!=null){var em=null;var ee=0;while(ee<ea.length){var el=ea[ee];++ee;if(el.id==this.b1.id){em=el.bc;break}}if(em!=null){eh.zpp_inner_zn.b1=em.zpp_inner}else{eb.push(cu.todo(this.b1.id,function(eo){eh.zpp_inner_zn.b1=eo.zpp_inner}))}}if(ea!=null&&this.b2!=null){var ek=null;var ej=0;while(ej<ea.length){var en=ea[ej];++ej;if(en.id==this.b2.id){ek=en.bc;break}}if(ek!=null){eh.zpp_inner_zn.b2=ek.zpp_inner}else{eb.push(cu.todo(this.b2.id,function(eo){eh.zpp_inner_zn.b2=eo.zpp_inner}))}}return eh};bR.prototype.validate=function(){if(this.b1==null||this.b2==null){throw new cE("Error: AngleJoint cannot be simulated null bodies")}if(this.b1==this.b2){throw new cE("Error: DistanceJoint cannot be simulated with body1 == body2")}if(this.b1.space!=this.space||this.b2.space!=this.space){throw new cE("Error: Constraints must have each body within the same space to which the constraint has been assigned")}if(this.jointMin>this.jointMax){throw new cE("Error: DistanceJoint must have jointMin <= jointMax")}if(this.nlocalx*this.nlocalx+this.nlocaly*this.nlocaly<P.epsilon){throw new cE("Error: DistanceJoint direction must be non-degenerate")}if(this.b1.type!=2&&this.b2.type!=2){throw new cE("Error: Constraints cannot have both bodies non-dynamic")}};bR.prototype.wake_connected=function(){if(this.b1!=null&&this.b1.type==2){this.b1.wake()}if(this.b2!=null&&this.b2.type==2){this.b2.wake()}};bR.prototype.forest=function(){if(this.b1.type==2){var en;if(this.b1.component==this.b1.component.parent){en=this.b1.component}else{var eo=this.b1.component;var em=null;while(eo!=eo.parent){var ei=eo.parent;eo.parent=em;em=eo;eo=ei}while(em!=null){var eh=em.parent;em.parent=eo;em=eh}en=eo}var er;if(this.component==this.component.parent){er=this.component}else{var et=this.component;var el=null;while(et!=et.parent){var eg=et.parent;et.parent=el;el=et;et=eg}while(el!=null){var ef=el.parent;el.parent=et;el=ef}er=et}if(en!=er){if(en.rank<er.rank){en.parent=er}else{if(en.rank>er.rank){er.parent=en}else{er.parent=en;en.rank++}}}}if(this.b2.type==2){var ee;if(this.b2.component==this.b2.component.parent){ee=this.b2.component}else{var es=this.b2.component;var ek=null;while(es!=es.parent){var ed=es.parent;es.parent=ek;ek=es;es=ed}while(ek!=null){var ec=ek.parent;ek.parent=es;ek=ec}ee=es}var ep;if(this.component==this.component.parent){ep=this.component}else{var eq=this.component;var ej=null;while(eq!=eq.parent){var eb=eq.parent;eq.parent=ej;ej=eq;eq=eb}while(ej!=null){var ea=ej.parent;ej.parent=eq;ej=ea}ep=eq}if(ee!=ep){if(ee.rank<ep.rank){ee.parent=ep}else{if(ee.rank>ep.rank){ep.parent=ee}else{ep.parent=ee;ee.rank++}}}}};bR.prototype.pair_exists=function(eb,ea){if(!(this.b1.id==eb&&this.b2.id==ea)){if(this.b1.id==ea){return this.b2.id==eb}else{return false}}else{return true}};bR.prototype.clearcache=function(){this.jAccx=0;this.jAccy=0;this.pre_dt=-1};bR.prototype.preStep=function(eo){if(this.pre_dt==-1){this.pre_dt=eo}var eq=eo/this.pre_dt;this.pre_dt=eo;this.equal=this.jointMin==this.jointMax;this.stepped=true;this.validate_norm();this.a1relx=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;this.a1rely=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;this.nrelx=this.b1.axisy*this.nlocalx-this.b1.axisx*this.nlocaly;this.nrely=this.nlocalx*this.b1.axisx+this.nlocaly*this.b1.axisy;this.a2relx=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;this.a2rely=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var ej=0;var ei=0;var ed=0;var ec=0;ej=this.b2.posx+this.a2relx-this.b1.posx-this.a1relx;ei=this.b2.posy+this.a2rely-this.b1.posy-this.a1rely;ed=ei*this.nrelx-ej*this.nrely;ec=this.nrelx*ej+this.nrely*ei;if(this.equal){ec-=this.jointMin;this.scale=1}else{if(ec>this.jointMax){ec-=this.jointMax;this.scale=1}else{if(ec<this.jointMin){ec=this.jointMin-ec;this.scale=-1}else{ec=0;this.scale=0}}}var en=0;var em=0;en=ej+this.a1relx;em=ei+this.a1rely;this.dot1=this.nrelx*en+this.nrely*em;this.cx1=em*this.nrelx-en*this.nrely;this.dot2=this.nrelx*this.a2relx+this.nrely*this.a2rely;this.cx2=this.a2rely*this.nrelx-this.a2relx*this.nrely;this.kMassa=this.b1.smass+this.b2.smass+this.dot1*this.dot1*this.b1.sinertia+this.dot2*this.dot2*this.b2.sinertia;this.kMassb=-this.scale*(this.dot1*this.cx1*this.b1.sinertia+this.dot2*this.cx2*this.b2.sinertia);this.kMassc=this.scale*this.scale*(this.b1.smass+this.b2.smass+this.cx1*this.cx1*this.b1.sinertia+this.cx2*this.cx2*this.b2.sinertia);var eb=this.kMassa*this.kMassc-this.kMassb*this.kMassb;var es;if(eb!=eb){this.kMassa=this.kMassb=this.kMassc=0;es=3}else{if(eb==0){var er=0;if(this.kMassa!=0){this.kMassa=1/this.kMassa}else{this.kMassa=0;er=1}if(this.kMassc!=0){this.kMassc=1/this.kMassc}else{this.kMassc=0;er|=2}this.kMassb=0;es=er}else{eb=1/eb;var ek=this.kMassc*eb;this.kMassc=this.kMassa*eb;this.kMassa=ek;this.kMassb*=-eb;es=0}}if((es&1)!=0){this.jAccx=0}if((es&2)!=0){this.jAccy=0}if(!this.stiff){if(this.breakUnderError&&ed*ed+ec*ec>this.maxError*this.maxError){return true}var ea;var ep=2*Math.PI*this.frequency;this.gamma=1/(eo*ep*(2*this.damping+ep*eo));var el=1/(1+this.gamma);ea=eo*ep*ep*this.gamma;this.gamma*=el;this.kMassa*=el;this.kMassb*=el;this.kMassc*=el;this.biasx=ed;this.biasy=ec;var eh=-ea;this.biasx*=eh;this.biasy*=eh;var eg=this.maxError;var ee=this.biasx*this.biasx+this.biasy*this.biasy;if(ee>eg*eg){var ef=eg*(1/Math.sqrt(ee));this.biasx*=ef;this.biasy*=ef}}else{this.gamma=0;this.biasx=0;this.biasy=0}this.jAccx*=eq;this.jAccy*=eq;this.jMax=this.maxForce*eo;return false};bR.prototype.warmStart=function(){var eb=this.scale*this.nrelx*this.jAccy-this.nrely*this.jAccx;var ea=this.nrelx*this.jAccx+this.scale*this.nrely*this.jAccy;var ec=this.b1.imass;this.b1.velx-=eb*ec;this.b1.vely-=ea*ec;var ed=this.b2.imass;this.b2.velx+=eb*ed;this.b2.vely+=ea*ed;this.b1.angvel+=(this.scale*this.cx1*this.jAccy-this.dot1*this.jAccx)*this.b1.iinertia;this.b2.angvel+=(this.dot2*this.jAccx-this.scale*this.cx2*this.jAccy)*this.b2.iinertia};bR.prototype.applyImpulseVel=function(){var eo=0;var en=0;var ej=0;var eg=0;ej=this.b2.velx-this.b1.velx;eg=this.b2.vely-this.b1.vely;ej+=this.b2.kinvelx-this.b1.kinvelx;eg+=this.b2.kinvely-this.b1.kinvely;eo=eg*this.nrelx-ej*this.nrely+(this.b2.angvel+this.b2.kinangvel)*this.dot2-(this.b1.angvel+this.b1.kinangvel)*this.dot1;en=this.scale*(this.nrelx*ej+this.nrely*eg-(this.b2.angvel+this.b2.kinangvel)*this.cx2+(this.b1.angvel+this.b1.kinangvel)*this.cx1);var ea=0;var eq=0;ea=this.biasx-eo;eq=this.biasy-en;var ep=this.kMassa*ea+this.kMassb*eq;eq=this.kMassb*ea+this.kMassc*eq;ea=ep;var ek=this.gamma;ea-=this.jAccx*ek;eq-=this.jAccy*ek;var em=0;var el=0;em=this.jAccx;el=this.jAccy;this.jAccx+=ea;this.jAccy+=eq;if(this.jAccy>0){this.jAccy=0}if(this.breakUnderForce){if(this.jAccx*this.jAccx+this.jAccy*this.jAccy>this.jMax*this.jMax){return true}}else{if(!this.stiff){var ei=this.jMax;var ef=this.jAccx*this.jAccx+this.jAccy*this.jAccy;if(ef>ei*ei){var ee=ei*(1/Math.sqrt(ef));this.jAccx*=ee;this.jAccy*=ee}}}ea=this.jAccx-em;eq=this.jAccy-el;var eh=this.scale*this.nrelx*eq-this.nrely*ea;var ed=this.nrelx*ea+this.scale*this.nrely*eq;var ec=this.b1.imass;this.b1.velx-=eh*ec;this.b1.vely-=ed*ec;var eb=this.b2.imass;this.b2.velx+=eh*eb;this.b2.vely+=ed*eb;this.b1.angvel+=(this.scale*this.cx1*eq-this.dot1*ea)*this.b1.iinertia;this.b2.angvel+=(this.dot2*ea-this.scale*this.cx2*eq)*this.b2.iinertia;return false};bR.prototype.applyImpulsePos=function(){var eI=0;var eF=0;eI=this.b1.axisy*this.nlocalx-this.b1.axisx*this.nlocaly;eF=this.nlocalx*this.b1.axisx+this.nlocaly*this.b1.axisy;var eo=0;var en=0;eo=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;en=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;var eh=0;var ef=0;eh=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;ef=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var ec=0;var ea=0;var ex;var eg=0;var ee=0;ec=this.b2.posx+eh-this.b1.posx-eo;ea=this.b2.posy+ef-this.b1.posy-en;eg=ea*eI-ec*eF;ee=eI*ec+eF*ea;if(this.equal){ee-=this.jointMin;ex=1}else{if(ee>this.jointMax){ee-=this.jointMax;ex=1}else{if(ee<this.jointMin){ee=this.jointMin-ee;ex=-1}else{ee=0;ex=0}}}if(this.breakUnderError&&eg*eg+ee*ee>this.maxError*this.maxError){return true}if(eg*eg+ee*ee<P.constraintLinearSlop*P.constraintLinearSlop){return false}var et=0;var eq=0;eg*=0.5;ee*=0.5;if(eg*eg+ee*ee>6){var eO=this.b1.smass+this.b2.smass;if(eO>P.epsilon){eO=0.8/eO;var eA=eO*(eF*eg-ex*eI*ee);var ej=eO*(eI*eg*ex-eF*eg);var eC=this.b1.imass;this.b1.posx-=eA*eC;this.b1.posy-=ej*eC;var ey=this.b2.imass;this.b2.posx+=eA*ey;this.b2.posy+=ej*ey;ec=this.b2.posx+eh-this.b1.posx-eo;ea=this.b2.posy+ef-this.b1.posy-en;eg=ea*eI-ec*eF;ee=eI*ec+eF*ea;if(this.equal){ee-=this.jointMin;ex=1}else{if(ee>this.jointMax){ee-=this.jointMax;ex=1}else{if(ee<this.jointMin){ee=this.jointMin-ee;ex=-1}else{ee=0;ex=0}}}eg*=0.5;ee*=0.5}}var eG;var eE;var eN;var eL;var em=0;var el=0;var ek=0;var eS=0;var eR=0;eS=ec+eo;eR=ea+en;eG=eI*eS+eF*eR;eN=eR*eI-eS*eF;eE=eI*eh+eF*ef;eL=ef*eI-eh*eF;em=this.b1.smass+this.b2.smass+eG*eG*this.b1.sinertia+eE*eE*this.b2.sinertia;el=-ex*(eG*eN*this.b1.sinertia+eE*eL*this.b2.sinertia);ek=ex*ex*(this.b1.smass+this.b2.smass+eN*eN*this.b1.sinertia+eL*eL*this.b2.sinertia);et=-eg;eq=-ee;var ei=em*ek-el*el;if(ei!=ei){eq=0;et=eq}else{if(ei==0){if(em!=0){et/=em}else{et=0}if(ek!=0){eq/=ek}else{eq=0}}else{ei=1/ei;var ew=ei*(ek*et-el*eq);eq=ei*(em*eq-el*et);et=ew}}if(eq>0){eq=0}var eM=ex*eI*eq-eF*et;var eJ=eI*et+ex*eF*eq;var ev=this.b1.imass;this.b1.posx-=eM*ev;this.b1.posy-=eJ*ev;var eu=this.b2.imass;this.b2.posx+=eM*eu;this.b2.posy+=eJ*eu;var eb=this.b1;var ed=(ex*eN*eq-eG*et)*this.b1.iinertia;eb.rot+=ed;if(ed*ed>0.0001){eb.axisx=Math.sin(eb.rot);eb.axisy=Math.cos(eb.rot)}else{var eH=ed*ed;var eD=1-0.5*eH;var eK=1-eH*eH/8;var es=(eD*eb.axisx+ed*eb.axisy)*eK;eb.axisy=(eD*eb.axisy-ed*eb.axisx)*eK;eb.axisx=es}var eB=this.b2;var ez=(eE*et-ex*eL*eq)*this.b2.iinertia;eB.rot+=ez;if(ez*ez>0.0001){eB.axisx=Math.sin(eB.rot);eB.axisy=Math.cos(eB.rot)}else{var er=ez*ez;var eQ=1-0.5*er;var eP=1-er*er/8;var ep=(eQ*eB.axisx+ez*eB.axisy)*eP;eB.axisy=(eQ*eB.axisy-ez*eB.axisx)*eP;eB.axisx=ep}return false};bR.prototype.draw=function(ea){};bR.prototype.__class__=bR;var y=zpp_nape.constraint.ZPP_MotorJoint=function(){this.stepped=false;this.jMax=0;this.jAcc=0;this.kMass=0;this.b2=null;this.b1=null;this.rate=0;this.ratio=0;this.outer_zn=null;b1.call(this);this.jAcc=0;this.stepped=false;this.__velocity=true};y.__name__=["zpp_nape","constraint","ZPP_MotorJoint"];y.__super__=b1;y.prototype=Object.create(b1.prototype);y.prototype.outer_zn=null;y.prototype.ratio=null;y.prototype.rate=null;y.prototype.bodyImpulse=function(ea){if(this.stepped){if(ea==this.b1){return q.get(0,0,-this.jAcc)}else{return q.get(0,0,this.ratio*this.jAcc)}}else{return q.get(0,0,0)}};y.prototype.activeBodies=function(){if(this.b1!=null){this.b1.constraints.add(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.add(this)}}};y.prototype.inactiveBodies=function(){if(this.b1!=null){this.b1.constraints.remove(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.remove(this)}}};y.prototype.b1=null;y.prototype.b2=null;y.prototype.kMass=null;y.prototype.jAcc=null;y.prototype.jMax=null;y.prototype.stepped=null;y.prototype.copy=function(ea,eb){var ed=new bQ(null,null,this.rate,this.ratio);this.copyto(ed);if(ea!=null&&this.b1!=null){var eh=null;var ec=0;while(ec<ea.length){var ef=ea[ec];++ec;if(ef.id==this.b1.id){eh=ef.bc;break}}if(eh!=null){ed.zpp_inner_zn.b1=eh.zpp_inner}else{eb.push(cu.todo(this.b1.id,function(ej){ed.zpp_inner_zn.b1=ej.zpp_inner}))}}if(ea!=null&&this.b2!=null){var eg=null;var ee=0;while(ee<ea.length){var ei=ea[ee];++ee;if(ei.id==this.b2.id){eg=ei.bc;break}}if(eg!=null){ed.zpp_inner_zn.b2=eg.zpp_inner}else{eb.push(cu.todo(this.b2.id,function(ej){ed.zpp_inner_zn.b2=ej.zpp_inner}))}}return ed};y.prototype.validate=function(){if(this.b1==null||this.b2==null){throw new cE("Error: AngleJoint cannot be simulated null bodies")}if(this.b1==this.b2){throw new cE("Error: MotorJoint cannot be simulated with body1 == body2")}if(this.b1.space!=this.space||this.b2.space!=this.space){throw new cE("Error: Constraints must have each body within the same space to which the constraint has been assigned")}if(this.b1.type!=2&&this.b2.type!=2){throw new cE("Error: Constraints cannot have both bodies non-dynamic")}};y.prototype.wake_connected=function(){if(this.b1!=null&&this.b1.type==2){this.b1.wake()}if(this.b2!=null&&this.b2.type==2){this.b2.wake()}};y.prototype.forest=function(){if(this.b1.type==2){var en;if(this.b1.component==this.b1.component.parent){en=this.b1.component}else{var eo=this.b1.component;var em=null;while(eo!=eo.parent){var ei=eo.parent;eo.parent=em;em=eo;eo=ei}while(em!=null){var eh=em.parent;em.parent=eo;em=eh}en=eo}var er;if(this.component==this.component.parent){er=this.component}else{var et=this.component;var el=null;while(et!=et.parent){var eg=et.parent;et.parent=el;el=et;et=eg}while(el!=null){var ef=el.parent;el.parent=et;el=ef}er=et}if(en!=er){if(en.rank<er.rank){en.parent=er}else{if(en.rank>er.rank){er.parent=en}else{er.parent=en;en.rank++}}}}if(this.b2.type==2){var ee;if(this.b2.component==this.b2.component.parent){ee=this.b2.component}else{var es=this.b2.component;var ek=null;while(es!=es.parent){var ed=es.parent;es.parent=ek;ek=es;es=ed}while(ek!=null){var ec=ek.parent;ek.parent=es;ek=ec}ee=es}var ep;if(this.component==this.component.parent){ep=this.component}else{var eq=this.component;var ej=null;while(eq!=eq.parent){var eb=eq.parent;eq.parent=ej;ej=eq;eq=eb}while(ej!=null){var ea=ej.parent;ej.parent=eq;ej=ea}ep=eq}if(ee!=ep){if(ee.rank<ep.rank){ee.parent=ep}else{if(ee.rank>ep.rank){ep.parent=ee}else{ep.parent=ee;ee.rank++}}}}};y.prototype.pair_exists=function(eb,ea){if(!(this.b1.id==eb&&this.b2.id==ea)){if(this.b1.id==ea){return this.b2.id==eb}else{return false}}else{return true}};y.prototype.clearcache=function(){this.jAcc=0;this.pre_dt=-1};y.prototype.preStep=function(ea){if(this.pre_dt==-1){this.pre_dt=ea}var eb=ea/this.pre_dt;this.pre_dt=ea;this.stepped=true;this.kMass=this.b1.sinertia+this.ratio*this.ratio*this.b2.sinertia;this.kMass=1/this.kMass;this.jAcc*=eb;this.jMax=this.maxForce*ea;return false};y.prototype.warmStart=function(){this.b1.angvel-=this.b1.iinertia*this.jAcc;this.b2.angvel+=this.ratio*this.b2.iinertia*this.jAcc};y.prototype.applyImpulseVel=function(){var ea=-this.kMass*(this.ratio*(this.b2.angvel+this.b2.kinangvel)-this.b1.angvel-this.b1.kinangvel-this.rate);var eb=this.jAcc;this.jAcc+=ea;if(this.breakUnderForce){if(this.jAcc>this.jMax||this.jAcc<-this.jMax){return true}}else{if(this.jAcc<-this.jMax){this.jAcc=-this.jMax}else{if(this.jAcc>this.jMax){this.jAcc=this.jMax}}}ea=this.jAcc-eb;this.b1.angvel-=this.b1.iinertia*ea;this.b2.angvel+=this.ratio*this.b2.iinertia*ea;return false};y.prototype.applyImpulsePos=function(){return false};y.prototype.__class__=y;var D=zpp_nape.constraint.ZPP_PivotJoint=function(){this.stepped=false;this.biasy=0;this.biasx=0;this.gamma=0;this.jMax=0;this.jAccy=0;this.jAccx=0;this.kMassc=0;this.kMassb=0;this.kMassa=0;this.wrap_a2=null;this.a2rely=0;this.a2relx=0;this.a2localy=0;this.a2localx=0;this.b2=null;this.wrap_a1=null;this.a1rely=0;this.a1relx=0;this.a1localy=0;this.a1localx=0;this.b1=null;this.outer_zn=null;b1.call(this);this.stepped=false;this.jAccx=0;this.jAccy=0;this.jMax=Infinity;this.a1localx=0;this.a1localy=0;this.a1relx=0;this.a1rely=0;this.a2localx=0;this.a2localy=0;this.a2relx=0;this.a2rely=0};D.__name__=["zpp_nape","constraint","ZPP_PivotJoint"];D.__super__=b1;D.prototype=Object.create(b1.prototype);D.prototype.outer_zn=null;D.prototype.bodyImpulse=function(ea){if(this.stepped){if(ea==this.b1){return q.get(-this.jAccx,-this.jAccy,-(this.jAccy*this.a1relx-this.jAccx*this.a1rely))}else{return q.get(this.jAccx,this.jAccy,this.jAccy*this.a2relx-this.jAccx*this.a2rely)}}else{return q.get(0,0,0)}};D.prototype.activeBodies=function(){if(this.b1!=null){this.b1.constraints.add(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.add(this)}}};D.prototype.inactiveBodies=function(){if(this.b1!=null){this.b1.constraints.remove(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.remove(this)}}};D.prototype.b1=null;D.prototype.a1localx=null;D.prototype.a1localy=null;D.prototype.a1relx=null;D.prototype.a1rely=null;D.prototype.validate_a1=function(){this.wrap_a1.zpp_inner.x=this.a1localx;this.wrap_a1.zpp_inner.y=this.a1localy};D.prototype.invalidate_a1=function(ea){this.immutable_midstep("Constraint::a1");this.a1localx=ea.x;this.a1localy=ea.y;this.wake()};D.prototype.setup_a1=function(){var ea=this.a1localx;var eh=this.a1localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a1=eb;this.wrap_a1.zpp_inner._inuse=true;this.wrap_a1.zpp_inner._validate=dX(this,this.validate_a1);this.wrap_a1.zpp_inner._invalidate=dX(this,this.invalidate_a1)};D.prototype.wrap_a1=null;D.prototype.b2=null;D.prototype.a2localx=null;D.prototype.a2localy=null;D.prototype.a2relx=null;D.prototype.a2rely=null;D.prototype.validate_a2=function(){this.wrap_a2.zpp_inner.x=this.a2localx;this.wrap_a2.zpp_inner.y=this.a2localy};D.prototype.invalidate_a2=function(ea){this.immutable_midstep("Constraint::a2");this.a2localx=ea.x;this.a2localy=ea.y;this.wake()};D.prototype.setup_a2=function(){var ea=this.a2localx;var eh=this.a2localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a2=eb;this.wrap_a2.zpp_inner._inuse=true;this.wrap_a2.zpp_inner._validate=dX(this,this.validate_a2);this.wrap_a2.zpp_inner._invalidate=dX(this,this.invalidate_a2)};D.prototype.wrap_a2=null;D.prototype.kMassa=null;D.prototype.kMassb=null;D.prototype.kMassc=null;D.prototype.jAccx=null;D.prototype.jAccy=null;D.prototype.jMax=null;D.prototype.gamma=null;D.prototype.biasx=null;D.prototype.biasy=null;D.prototype.stepped=null;D.prototype.copy=function(ea,eb){var ee=this.outer_zn;if(ee.zpp_inner_zn.wrap_a1==null){ee.zpp_inner_zn.setup_a1()}var ec=ee.zpp_inner_zn.wrap_a1;var eg=this.outer_zn;if(eg.zpp_inner_zn.wrap_a2==null){eg.zpp_inner_zn.setup_a2()}var ef=new bV(null,null,ec,eg.zpp_inner_zn.wrap_a2);this.copyto(ef);if(ea!=null&&this.b1!=null){var ek=null;var ed=0;while(ed<ea.length){var ej=ea[ed];++ed;if(ej.id==this.b1.id){ek=ej.bc;break}}if(ek!=null){ef.zpp_inner_zn.b1=ek.zpp_inner}else{eb.push(cu.todo(this.b1.id,function(em){ef.zpp_inner_zn.b1=em.zpp_inner}))}}if(ea!=null&&this.b2!=null){var ei=null;var eh=0;while(eh<ea.length){var el=ea[eh];++eh;if(el.id==this.b2.id){ei=el.bc;break}}if(ei!=null){ef.zpp_inner_zn.b2=ei.zpp_inner}else{eb.push(cu.todo(this.b2.id,function(em){ef.zpp_inner_zn.b2=em.zpp_inner}))}}return ef};D.prototype.validate=function(){if(this.b1==null||this.b2==null){throw new cE("Error: PivotJoint cannot be simulated null bodies")}if(this.b1==this.b2){throw new cE("Error: PivotJoint cannot be simulated with body1 == body2 (body1=body2="+this.b1.outer.toString()+")")}if(this.b1.space!=this.space||this.b2.space!=this.space){throw new cE("Error: Constraints must have each body within the same space to which the constraint has been assigned (body1="+this.b1.outer.toString()+", body2="+this.b2.outer.toString()+")")}if(this.b1.type!=2&&this.b2.type!=2){throw new cE("Error: Constraints cannot have both bodies non-dynamic (body1="+this.b1.outer.toString()+", body2="+this.b2.outer.toString()+")")}};D.prototype.wake_connected=function(){if(this.b1!=null&&this.b1.type==2){this.b1.wake()}if(this.b2!=null&&this.b2.type==2){this.b2.wake()}};D.prototype.forest=function(){if(this.b1.type==2){var en;if(this.b1.component==this.b1.component.parent){en=this.b1.component}else{var eo=this.b1.component;var em=null;while(eo!=eo.parent){var ei=eo.parent;eo.parent=em;em=eo;eo=ei}while(em!=null){var eh=em.parent;em.parent=eo;em=eh}en=eo}var er;if(this.component==this.component.parent){er=this.component}else{var et=this.component;var el=null;while(et!=et.parent){var eg=et.parent;et.parent=el;el=et;et=eg}while(el!=null){var ef=el.parent;el.parent=et;el=ef}er=et}if(en!=er){if(en.rank<er.rank){en.parent=er}else{if(en.rank>er.rank){er.parent=en}else{er.parent=en;en.rank++}}}}if(this.b2.type==2){var ee;if(this.b2.component==this.b2.component.parent){ee=this.b2.component}else{var es=this.b2.component;var ek=null;while(es!=es.parent){var ed=es.parent;es.parent=ek;ek=es;es=ed}while(ek!=null){var ec=ek.parent;ek.parent=es;ek=ec}ee=es}var ep;if(this.component==this.component.parent){ep=this.component}else{var eq=this.component;var ej=null;while(eq!=eq.parent){var eb=eq.parent;eq.parent=ej;ej=eq;eq=eb}while(ej!=null){var ea=ej.parent;ej.parent=eq;ej=ea}ep=eq}if(ee!=ep){if(ee.rank<ep.rank){ee.parent=ep}else{if(ee.rank>ep.rank){ep.parent=ee}else{ep.parent=ee;ee.rank++}}}}};D.prototype.pair_exists=function(eb,ea){if(!(this.b1.id==eb&&this.b2.id==ea)){if(this.b1.id==ea){return this.b2.id==eb}else{return false}}else{return true}};D.prototype.clearcache=function(){this.jAccx=0;this.jAccy=0;this.pre_dt=-1};D.prototype.preStep=function(el){if(this.pre_dt==-1){this.pre_dt=el}var en=el/this.pre_dt;this.pre_dt=el;this.stepped=true;this.a1relx=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;this.a1rely=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;this.a2relx=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;this.a2rely=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var eo=this.b1.smass+this.b2.smass;this.kMassa=eo;this.kMassb=0;this.kMassc=eo;if(this.b1.sinertia!=0){var ec=this.a1relx*this.b1.sinertia;var eb=this.a1rely*this.b1.sinertia;this.kMassa+=eb*this.a1rely;this.kMassb+=-eb*this.a1relx;this.kMassc+=ec*this.a1relx}if(this.b2.sinertia!=0){var er=this.a2relx*this.b2.sinertia;var ee=this.a2rely*this.b2.sinertia;this.kMassa+=ee*this.a2rely;this.kMassb+=-ee*this.a2relx;this.kMassc+=er*this.a2relx}var ed=this.kMassa*this.kMassc-this.kMassb*this.kMassb;var eq;if(ed!=ed){this.kMassa=this.kMassb=this.kMassc=0;eq=3}else{if(ed==0){var ep=0;if(this.kMassa!=0){this.kMassa=1/this.kMassa}else{this.kMassa=0;ep=1}if(this.kMassc!=0){this.kMassc=1/this.kMassc}else{this.kMassc=0;ep|=2}this.kMassb=0;eq=ep}else{ed=1/ed;var ej=this.kMassc*ed;this.kMassc=this.kMassa*ed;this.kMassa=ej;this.kMassb*=-ed;eq=0}}if((eq&1)!=0){this.jAccx=0}if((eq&2)!=0){this.jAccy=0}if(!this.stiff){var ea;var em=2*Math.PI*this.frequency;this.gamma=1/(el*em*(2*this.damping+em*el));var ek=1/(1+this.gamma);ea=el*em*em*this.gamma;this.gamma*=ek;this.kMassa*=ek;this.kMassb*=ek;this.kMassc*=ek;this.biasx=this.b2.posx+this.a2relx-(this.b1.posx+this.a1relx);this.biasy=this.b2.posy+this.a2rely-(this.b1.posy+this.a1rely);if(this.breakUnderError&&this.biasx*this.biasx+this.biasy*this.biasy>this.maxError*this.maxError){return true}var ei=-ea;this.biasx*=ei;this.biasy*=ei;var eh=this.maxError;var ef=this.biasx*this.biasx+this.biasy*this.biasy;if(ef>eh*eh){var eg=eh*(1/Math.sqrt(ef));this.biasx*=eg;this.biasy*=eg}}else{this.biasx=0;this.biasy=0;this.gamma=0}this.jAccx*=en;this.jAccy*=en;this.jMax=this.maxForce*el;return false};D.prototype.warmStart=function(){var ea=this.b1.imass;this.b1.velx-=this.jAccx*ea;this.b1.vely-=this.jAccy*ea;var eb=this.b2.imass;this.b2.velx+=this.jAccx*eb;this.b2.vely+=this.jAccy*eb;this.b1.angvel-=(this.jAccy*this.a1relx-this.jAccx*this.a1rely)*this.b1.iinertia;this.b2.angvel+=(this.jAccy*this.a2relx-this.jAccx*this.a2rely)*this.b2.iinertia};D.prototype.applyImpulseVel=function(){var ek=0;var ej=0;ek=this.b2.velx+this.b2.kinvelx-this.a2rely*(this.b2.angvel+this.b2.kinangvel)-(this.b1.velx+this.b1.kinvelx-this.a1rely*(this.b1.angvel+this.b1.kinangvel));ej=this.b2.vely+this.b2.kinvely+this.a2relx*(this.b2.angvel+this.b2.kinangvel)-(this.b1.vely+this.b1.kinvely+this.a1relx*(this.b1.angvel+this.b1.kinangvel));var ea=0;var em=0;ea=this.biasx-ek;em=this.biasy-ej;var el=this.kMassa*ea+this.kMassb*em;em=this.kMassb*ea+this.kMassc*em;ea=el;var eg=this.gamma;ea-=this.jAccx*eg;em-=this.jAccy*eg;var ei=0;var eh=0;ei=this.jAccx;eh=this.jAccy;this.jAccx+=ea;this.jAccy+=em;if(this.breakUnderForce){if(this.jAccx*this.jAccx+this.jAccy*this.jAccy>this.jMax*this.jMax){return true}}else{if(!this.stiff){var ef=this.jMax;var ee=this.jAccx*this.jAccx+this.jAccy*this.jAccy;if(ee>ef*ef){var ed=ef*(1/Math.sqrt(ee));this.jAccx*=ed;this.jAccy*=ed}}}ea=this.jAccx-ei;em=this.jAccy-eh;var ec=this.b1.imass;this.b1.velx-=ea*ec;this.b1.vely-=em*ec;var eb=this.b2.imass;this.b2.velx+=ea*eb;this.b2.vely+=em*eb;this.b1.angvel-=(em*this.a1relx-ea*this.a1rely)*this.b1.iinertia;this.b2.angvel+=(em*this.a2relx-ea*this.a2rely)*this.b2.iinertia;return false};D.prototype.applyImpulsePos=function(){var eq=0;var eo=0;eq=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;eo=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;var eh=0;var ef=0;eh=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;ef=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var eg=0;var ee=0;eg=this.b2.posx+eh-(this.b1.posx+eq);ee=this.b2.posy+ef-(this.b1.posy+eo);if(this.breakUnderError&&eg*eg+ee*ee>this.maxError*this.maxError){return true}if(eg*eg+ee*ee<P.constraintLinearSlop*P.constraintLinearSlop){return false}eg*=0.5;ee*=0.5;var ev=0;var er=0;if(eg*eg+ee*ee>6){var eJ=this.b1.smass+this.b2.smass;if(eJ>P.epsilon){eJ=0.75/eJ;ev=-eg*eJ;er=-ee*eJ;var ep=ev*ev+er*er;if(ep>400){var eE=20*(1/Math.sqrt(ep));ev*=eE;er*=eE}var eA=this.b1.imass;this.b1.posx-=ev*eA;this.b1.posy-=er*eA;var ez=this.b2.imass;this.b2.posx+=ev*ez;this.b2.posy+=er*ez;eg=this.b2.posx+eh-(this.b1.posx+eq);ee=this.b2.posy+ef-(this.b1.posy+eo);eg*=0.5;ee*=0.5}}var en=0;var em=0;var el=0;var eI=this.b1.smass+this.b2.smass;en=eI;em=0;el=eI;if(this.b1.sinertia!=0){var eb=eq*this.b1.sinertia;var ea=eo*this.b1.sinertia;en=eI+ea*eo;em+=-ea*eq;el=eI+eb*eq}if(this.b2.sinertia!=0){var eC=eh*this.b2.sinertia;var ej=ef*this.b2.sinertia;en+=ej*ef;em+=-ej*eh;el+=eC*eh}ev=-eg;er=-ee;var ek=ev*ev+er*er;if(ek>36){var ey=6*(1/Math.sqrt(ek));ev*=ey;er*=ey}var ei=en*el-em*em;if(ei!=ei){er=0;ev=er}else{if(ei==0){if(en!=0){ev/=en}else{ev=0}if(el!=0){er/=el}else{er=0}}else{ei=1/ei;var ex=ei*(el*ev-em*er);er=ei*(en*er-em*ev);ev=ex}}var ew=this.b1.imass;this.b1.posx-=ev*ew;this.b1.posy-=er*ew;var es=this.b2.imass;this.b2.posx+=ev*es;this.b2.posy+=er*es;var ec=this.b1;var ed=-(er*eq-ev*eo)*this.b1.iinertia;ec.rot+=ed;if(ed*ed>0.0001){ec.axisx=Math.sin(ec.rot);ec.axisy=Math.cos(ec.rot)}else{var eG=ed*ed;var eF=1-0.5*eG;var eL=1-eG*eG/8;var eH=(eF*ec.axisx+ed*ec.axisy)*eL;ec.axisy=(eF*ec.axisy-ed*ec.axisx)*eL;ec.axisx=eH}var eD=this.b2;var eB=(er*eh-ev*ef)*this.b2.iinertia;eD.rot+=eB;if(eB*eB>0.0001){eD.axisx=Math.sin(eD.rot);eD.axisy=Math.cos(eD.rot)}else{var eu=eB*eB;var eM=1-0.5*eu;var eK=1-eu*eu/8;var et=(eM*eD.axisx+eB*eD.axisy)*eK;eD.axisy=(eM*eD.axisy-eB*eD.axisx)*eK;eD.axisx=et}return false};D.prototype.draw=function(ea){};D.prototype.__class__=D;var N=zpp_nape.constraint.ZPP_PulleyJoint=function(){this.stepped=false;this.bias=0;this.gamma=0;this.jMax=0;this.jAcc=0;this.kMass=0;this.wrap_a4=null;this.a4rely=0;this.a4relx=0;this.a4localy=0;this.a4localx=0;this.b4=null;this.wrap_a3=null;this.a3rely=0;this.a3relx=0;this.a3localy=0;this.a3localx=0;this.b3=null;this.wrap_a2=null;this.a2rely=0;this.a2relx=0;this.a2localy=0;this.a2localx=0;this.b2=null;this.wrap_a1=null;this.a1rely=0;this.a1relx=0;this.a1localy=0;this.a1localx=0;this.b1=null;this.cx4=0;this.cx3=0;this.cx2=0;this.cx1=0;this.n34y=0;this.n34x=0;this.n12y=0;this.n12x=0;this.equal=false;this.slack=false;this.jointMax=0;this.jointMin=0;this.ratio=1;this.outer_zn=null;b1.call(this);this.a1localx=0;this.a1localy=0;this.a1relx=0;this.a1rely=0;this.a2localx=0;this.a2localy=0;this.a2relx=0;this.a2rely=0;this.a3localx=0;this.a3localy=0;this.a3relx=0;this.a3rely=0;this.a4localx=0;this.a4localy=0;this.a4relx=0;this.a4rely=0;this.n12x=1;this.n12y=0;this.n34x=1;this.n34y=0;this.jAcc=0;this.jMax=Infinity;this.stepped=false;this.cx1=this.cx2=this.cx3=this.cx4=0};N.__name__=["zpp_nape","constraint","ZPP_PulleyJoint"];N.__super__=b1;N.prototype=Object.create(b1.prototype);N.prototype.outer_zn=null;N.prototype.ratio=null;N.prototype.jointMin=null;N.prototype.jointMax=null;N.prototype.slack=null;N.prototype.equal=null;N.prototype.is_slack=function(){var ec;this.a1relx=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;this.a1rely=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;this.a2relx=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;this.a2rely=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;this.a3relx=this.b3.axisy*this.a3localx-this.b3.axisx*this.a3localy;this.a3rely=this.a3localx*this.b3.axisx+this.a3localy*this.b3.axisy;this.a4relx=this.b4.axisy*this.a4localx-this.b4.axisx*this.a4localy;this.a4rely=this.a4localx*this.b4.axisx+this.a4localy*this.b4.axisy;var ef=0;var ee=0;var ed=0;var eb=0;ef=this.b2.posx+this.a2relx-(this.b1.posx+this.a1relx);ee=this.b2.posy+this.a2rely-(this.b1.posy+this.a1rely);ed=this.b4.posx+this.a4relx-(this.b3.posx+this.a3relx);eb=this.b4.posy+this.a4rely-(this.b3.posy+this.a3rely);var eh=Math.sqrt(ef*ef+ee*ee);var ea=Math.sqrt(ed*ed+eb*eb);if(ea==0){Math.sqrt(0)}var eg=eh+this.ratio*ea;if(this.equal){ec=false}else{if(eg<this.jointMin){ec=false}else{if(eg>this.jointMax){eg-=this.jointMax;ec=false}else{eg=0;ec=true}}}return ec};N.prototype.n12x=null;N.prototype.n12y=null;N.prototype.n34x=null;N.prototype.n34y=null;N.prototype.cx1=null;N.prototype.cx2=null;N.prototype.cx3=null;N.prototype.cx4=null;N.prototype.bodyImpulse=function(ex){if(this.stepped){var ey=q.get();if(ex==this.b1){var ep=ey.zpp_inner;if(ep._validate!=null){ep._validate()}ey.zpp_inner.x=ey.zpp_inner.x-this.jAcc*this.n12x;var ew=ey.zpp_inner;if(ew._validate!=null){ew._validate()}var ev=ey.zpp_inner;if(ev._validate!=null){ev._validate()}ey.zpp_inner.y=ey.zpp_inner.y-this.jAcc*this.n12y;var eu=ey.zpp_inner;if(eu._validate!=null){eu._validate()}var et=ey.zpp_inner;if(et._validate!=null){et._validate()}ey.zpp_inner.z=ey.zpp_inner.z-this.cx1*this.jAcc;var es=ey.zpp_inner;if(es._validate!=null){es._validate()}}if(ex==this.b2){var er=ey.zpp_inner;if(er._validate!=null){er._validate()}ey.zpp_inner.x=ey.zpp_inner.x+this.jAcc*this.n12x;var eo=ey.zpp_inner;if(eo._validate!=null){eo._validate()}var em=ey.zpp_inner;if(em._validate!=null){em._validate()}ey.zpp_inner.y=ey.zpp_inner.y+this.jAcc*this.n12y;var ek=ey.zpp_inner;if(ek._validate!=null){ek._validate()}var eq=ey.zpp_inner;if(eq._validate!=null){eq._validate()}ey.zpp_inner.z=ey.zpp_inner.z+this.cx2*this.jAcc;var en=ey.zpp_inner;if(en._validate!=null){en._validate()}}if(ex==this.b3){var el=ey.zpp_inner;if(el._validate!=null){el._validate()}ey.zpp_inner.x=ey.zpp_inner.x-this.jAcc*this.n34x;var ej=ey.zpp_inner;if(ej._validate!=null){ej._validate()}var ei=ey.zpp_inner;if(ei._validate!=null){ei._validate()}ey.zpp_inner.y=ey.zpp_inner.y-this.jAcc*this.n34y;var eh=ey.zpp_inner;if(eh._validate!=null){eh._validate()}var eg=ey.zpp_inner;if(eg._validate!=null){eg._validate()}ey.zpp_inner.z=ey.zpp_inner.z-this.cx3*this.jAcc;var ef=ey.zpp_inner;if(ef._validate!=null){ef._validate()}}if(ex==this.b4){var ee=ey.zpp_inner;if(ee._validate!=null){ee._validate()}ey.zpp_inner.x=ey.zpp_inner.x+this.jAcc*this.n34x;var ed=ey.zpp_inner;if(ed._validate!=null){ed._validate()}var ec=ey.zpp_inner;if(ec._validate!=null){ec._validate()}ey.zpp_inner.y=ey.zpp_inner.y+this.jAcc*this.n34y;var eb=ey.zpp_inner;if(eb._validate!=null){eb._validate()}var ea=ey.zpp_inner;if(ea._validate!=null){ea._validate()}ey.zpp_inner.z=ey.zpp_inner.z+this.cx4*this.jAcc;var ez=ey.zpp_inner;if(ez._validate!=null){ez._validate()}}return ey}else{return q.get(0,0,0)}};N.prototype.activeBodies=function(){if(this.b1!=null){this.b1.constraints.add(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.add(this)}}if(this.b3!=this.b1&&this.b3!=this.b2){if(this.b3!=null){this.b3.constraints.add(this)}}if(this.b4!=this.b1&&this.b4!=this.b2&&this.b4!=this.b3){if(this.b4!=null){this.b4.constraints.add(this)}}};N.prototype.inactiveBodies=function(){if(this.b1!=null){this.b1.constraints.remove(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.remove(this)}}if(this.b3!=this.b1&&this.b3!=this.b2){if(this.b3!=null){this.b3.constraints.remove(this)}}if(this.b4!=this.b1&&this.b4!=this.b2&&this.b4!=this.b3){if(this.b4!=null){this.b4.constraints.remove(this)}}};N.prototype.b1=null;N.prototype.a1localx=null;N.prototype.a1localy=null;N.prototype.a1relx=null;N.prototype.a1rely=null;N.prototype.validate_a1=function(){this.wrap_a1.zpp_inner.x=this.a1localx;this.wrap_a1.zpp_inner.y=this.a1localy};N.prototype.invalidate_a1=function(ea){this.immutable_midstep("Constraint::a1");this.a1localx=ea.x;this.a1localy=ea.y;this.wake()};N.prototype.setup_a1=function(){var ea=this.a1localx;var eh=this.a1localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a1=eb;this.wrap_a1.zpp_inner._inuse=true;this.wrap_a1.zpp_inner._validate=dX(this,this.validate_a1);this.wrap_a1.zpp_inner._invalidate=dX(this,this.invalidate_a1)};N.prototype.wrap_a1=null;N.prototype.b2=null;N.prototype.a2localx=null;N.prototype.a2localy=null;N.prototype.a2relx=null;N.prototype.a2rely=null;N.prototype.validate_a2=function(){this.wrap_a2.zpp_inner.x=this.a2localx;this.wrap_a2.zpp_inner.y=this.a2localy};N.prototype.invalidate_a2=function(ea){this.immutable_midstep("Constraint::a2");this.a2localx=ea.x;this.a2localy=ea.y;this.wake()};N.prototype.setup_a2=function(){var ea=this.a2localx;var eh=this.a2localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a2=eb;this.wrap_a2.zpp_inner._inuse=true;this.wrap_a2.zpp_inner._validate=dX(this,this.validate_a2);this.wrap_a2.zpp_inner._invalidate=dX(this,this.invalidate_a2)};N.prototype.wrap_a2=null;N.prototype.b3=null;N.prototype.a3localx=null;N.prototype.a3localy=null;N.prototype.a3relx=null;N.prototype.a3rely=null;N.prototype.validate_a3=function(){this.wrap_a3.zpp_inner.x=this.a3localx;this.wrap_a3.zpp_inner.y=this.a3localy};N.prototype.invalidate_a3=function(ea){this.immutable_midstep("Constraint::a3");this.a3localx=ea.x;this.a3localy=ea.y;this.wake()};N.prototype.setup_a3=function(){var ea=this.a3localx;var eh=this.a3localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a3=eb;this.wrap_a3.zpp_inner._inuse=true;this.wrap_a3.zpp_inner._validate=dX(this,this.validate_a3);this.wrap_a3.zpp_inner._invalidate=dX(this,this.invalidate_a3)};N.prototype.wrap_a3=null;N.prototype.b4=null;N.prototype.a4localx=null;N.prototype.a4localy=null;N.prototype.a4relx=null;N.prototype.a4rely=null;N.prototype.validate_a4=function(){this.wrap_a4.zpp_inner.x=this.a4localx;this.wrap_a4.zpp_inner.y=this.a4localy};N.prototype.invalidate_a4=function(ea){this.immutable_midstep("Constraint::a4");this.a4localx=ea.x;this.a4localy=ea.y;this.wake()};N.prototype.setup_a4=function(){var ea=this.a4localx;var eh=this.a4localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a4=eb;this.wrap_a4.zpp_inner._inuse=true;this.wrap_a4.zpp_inner._validate=dX(this,this.validate_a4);this.wrap_a4.zpp_inner._invalidate=dX(this,this.invalidate_a4)};N.prototype.wrap_a4=null;N.prototype.kMass=null;N.prototype.jAcc=null;N.prototype.jMax=null;N.prototype.gamma=null;N.prototype.bias=null;N.prototype.stepped=null;N.prototype.copy=function(ed,eg){var ep=this.outer_zn;if(ep.zpp_inner_zn.wrap_a1==null){ep.zpp_inner_zn.setup_a1()}var et=ep.zpp_inner_zn.wrap_a1;var es=this.outer_zn;if(es.zpp_inner_zn.wrap_a2==null){es.zpp_inner_zn.setup_a2()}var eo=es.zpp_inner_zn.wrap_a2;var er=this.outer_zn;if(er.zpp_inner_zn.wrap_a3==null){er.zpp_inner_zn.setup_a3()}var en=er.zpp_inner_zn.wrap_a3;var eq=this.outer_zn;if(eq.zpp_inner_zn.wrap_a4==null){eq.zpp_inner_zn.setup_a4()}var ev=new dy(null,null,null,null,et,eo,en,eq.zpp_inner_zn.wrap_a4,this.jointMin,this.jointMax,this.ratio);this.copyto(ev);if(ed!=null&&this.b1!=null){var eu=null;var eb=0;while(eb<ed.length){var ea=ed[eb];++eb;if(ea.id==this.b1.id){eu=ea.bc;break}}if(eu!=null){ev.zpp_inner_zn.b1=eu.zpp_inner}else{eg.push(cu.todo(this.b1.id,function(ew){ev.zpp_inner_zn.b1=ew.zpp_inner}))}}if(ed!=null&&this.b2!=null){var ef=null;var ek=0;while(ek<ed.length){var em=ed[ek];++ek;if(em.id==this.b2.id){ef=em.bc;break}}if(ef!=null){ev.zpp_inner_zn.b2=ef.zpp_inner}else{eg.push(cu.todo(this.b2.id,function(ew){ev.zpp_inner_zn.b2=ew.zpp_inner}))}}if(ed!=null&&this.b3!=null){var ee=null;var ei=0;while(ei<ed.length){var el=ed[ei];++ei;if(el.id==this.b3.id){ee=el.bc;break}}if(ee!=null){ev.zpp_inner_zn.b3=ee.zpp_inner}else{eg.push(cu.todo(this.b3.id,function(ew){ev.zpp_inner_zn.b3=ew.zpp_inner}))}}if(ed!=null&&this.b4!=null){var ec=null;var eh=0;while(eh<ed.length){var ej=ed[eh];++eh;if(ej.id==this.b4.id){ec=ej.bc;break}}if(ec!=null){ev.zpp_inner_zn.b4=ec.zpp_inner}else{eg.push(cu.todo(this.b4.id,function(ew){ev.zpp_inner_zn.b4=ew.zpp_inner}))}}return ev};N.prototype.validate=function(){if(this.b1==null||this.b2==null||this.b3==null||this.b4==null){throw new cE("Error: PulleyJoint cannot be simulated with null bodies")}if(this.b1==this.b2||this.b3==this.b4){throw new cE("Error: PulleyJoint cannot have body1==body2 or body3==body4")}if(this.b1.space!=this.space||this.b2.space!=this.space||this.b3.space!=this.space||this.b4.space!=this.space){throw new cE("Error: Constraints must have each body within the same space to which the constraint has been assigned")}if(this.jointMin>this.jointMax){throw new cE("Error: PulleyJoint must have jointMin <= jointMax")}if(this.b1.type!=2&&this.b2.type!=2){throw new cE("Error: PulleyJoint cannot have both bodies in a linked pair non-dynamic")}if(this.b3.type!=2&&this.b4.type!=2){throw new cE("Error: PulleyJoint cannot have both bodies in a linked pair non-dynamic")}};N.prototype.wake_connected=function(){if(this.b1!=null&&this.b1.type==2){this.b1.wake()}if(this.b2!=null&&this.b2.type==2){this.b2.wake()}if(this.b3!=null&&this.b3.type==2){this.b3.wake()}if(this.b4!=null&&this.b4.type==2){this.b4.wake()}};N.prototype.forest=function(){if(this.b1.type==2){var eD;if(this.b1.component==this.b1.component.parent){eD=this.b1.component}else{var eb=this.b1.component;var ex=null;while(eb!=eb.parent){var eL=eb.parent;eb.parent=ex;ex=eb;eb=eL}while(ex!=null){var eN=ex.parent;ex.parent=eb;ex=eN}eD=eb}var er;if(this.component==this.component.parent){er=this.component}else{var eh=this.component;var eC=null;while(eh!=eh.parent){var eM=eh.parent;eh.parent=eC;eC=eh;eh=eM}while(eC!=null){var eK=eC.parent;eC.parent=eh;eC=eK}er=eh}if(eD!=er){if(eD.rank<er.rank){eD.parent=er}else{if(eD.rank>er.rank){er.parent=eD}else{er.parent=eD;eD.rank++}}}}if(this.b2.type==2){var eu;if(this.b2.component==this.b2.component.parent){eu=this.b2.component}else{var eg=this.b2.component;var eB=null;while(eg!=eg.parent){var eJ=eg.parent;eg.parent=eB;eB=eg;eg=eJ}while(eB!=null){var eI=eB.parent;eB.parent=eg;eB=eI}eu=eg}var eq;if(this.component==this.component.parent){eq=this.component}else{var ef=this.component;var eA=null;while(ef!=ef.parent){var eH=ef.parent;ef.parent=eA;eA=ef;ef=eH}while(eA!=null){var eG=eA.parent;eA.parent=ef;eA=eG}eq=ef}if(eu!=eq){if(eu.rank<eq.rank){eu.parent=eq}else{if(eu.rank>eq.rank){eq.parent=eu}else{eq.parent=eu;eu.rank++}}}}if(this.b3.type==2){var et;if(this.b3.component==this.b3.component.parent){et=this.b3.component}else{var ee=this.b3.component;var ez=null;while(ee!=ee.parent){var eF=ee.parent;ee.parent=ez;ez=ee;ee=eF}while(ez!=null){var eE=ez.parent;ez.parent=ee;ez=eE}et=ee}var ep;if(this.component==this.component.parent){ep=this.component}else{var ed=this.component;var ey=null;while(ed!=ed.parent){var en=ed.parent;ed.parent=ey;ey=ed;ed=en}while(ey!=null){var em=ey.parent;ey.parent=ed;ey=em}ep=ed}if(et!=ep){if(et.rank<ep.rank){et.parent=ep}else{if(et.rank>ep.rank){ep.parent=et}else{ep.parent=et;et.rank++}}}}if(this.b4.type==2){var es;if(this.b4.component==this.b4.component.parent){es=this.b4.component}else{var ec=this.b4.component;var ew=null;while(ec!=ec.parent){var el=ec.parent;ec.parent=ew;ew=ec;ec=el}while(ew!=null){var ek=ew.parent;ew.parent=ec;ew=ek}es=ec}var eo;if(this.component==this.component.parent){eo=this.component}else{var ea=this.component;var ev=null;while(ea!=ea.parent){var ej=ea.parent;ea.parent=ev;ev=ea;ea=ej}while(ev!=null){var ei=ev.parent;ev.parent=ea;ev=ei}eo=ea}if(es!=eo){if(es.rank<eo.rank){es.parent=eo}else{if(es.rank>eo.rank){eo.parent=es}else{eo.parent=es;es.rank++}}}}};N.prototype.pair_exists=function(eb,ea){if(!(this.b1.id==eb&&(this.b2.id==ea||this.b3.id==ea||this.b4.id==ea)||this.b2.id==eb&&(this.b3.id==ea||this.b4.id==ea||this.b1.id==ea)||this.b3.id==eb&&(this.b4.id==ea||this.b1.id==ea||this.b2.id==ea))){if(this.b4.id==eb){if(!(this.b1.id==ea||this.b2.id==ea)){return this.b3.id==ea}else{return true}}else{return false}}else{return true}};N.prototype.clearcache=function(){this.jAcc=0;this.pre_dt=-1};N.prototype.preStep=function(ei){if(this.pre_dt==-1){this.pre_dt=ei}var en=ei/this.pre_dt;this.pre_dt=ei;this.stepped=true;this.equal=this.jointMin==this.jointMax;this.a1relx=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;this.a1rely=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;this.a2relx=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;this.a2rely=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;this.a3relx=this.b3.axisy*this.a3localx-this.b3.axisx*this.a3localy;this.a3rely=this.a3localx*this.b3.axisx+this.a3localy*this.b3.axisy;this.a4relx=this.b4.axisy*this.a4localx-this.b4.axisx*this.a4localy;this.a4rely=this.a4localx*this.b4.axisx+this.a4localy*this.b4.axisy;var er=0;var eq=0;var em=0;var el=0;er=this.b2.posx+this.a2relx-(this.b1.posx+this.a1relx);eq=this.b2.posy+this.a2rely-(this.b1.posy+this.a1rely);em=this.b4.posx+this.a4relx-(this.b3.posx+this.a3relx);el=this.b4.posy+this.a4rely-(this.b3.posy+this.a3rely);var eo=Math.sqrt(er*er+eq*eq);var eb=Math.sqrt(em*em+el*el);if(eo!=0){var eg=1/eo;this.n12x=er*eg;this.n12y=eq*eg}if(eb!=0){var ef=1/eb;this.n34x=em*ef;this.n34y=el*ef;var ee=this.ratio;this.n34x*=ee;this.n34y*=ee}else{var ed=this.ratio/Math.sqrt(this.n34x*this.n34x+this.n34y*this.n34y);this.n34x*=ed;this.n34y*=ed}var ej=eo+this.ratio*eb;if(this.equal){ej-=this.jointMax;this.slack=false}else{if(ej<this.jointMin){ej=this.jointMin-ej;this.n12x=-this.n12x;this.n12y=-this.n12y;this.n34x=-this.n34x;this.n34y=-this.n34y;this.slack=false}else{if(ej>this.jointMax){ej-=this.jointMax;this.slack=false}else{this.n12x=0;this.n12y=0;this.n34x=0;this.n34y=0;ej=0;this.slack=true}}}var ep=ej;if(!this.slack){this.cx1=this.n12y*this.a1relx-this.n12x*this.a1rely;this.cx2=this.n12y*this.a2relx-this.n12x*this.a2rely;this.cx3=this.n34y*this.a3relx-this.n34x*this.a3rely;this.cx4=this.n34y*this.a4relx-this.n34x*this.a4rely;var ec=this.b1.smass+this.b2.smass+this.ratio*this.ratio*(this.b3.smass+this.b4.smass)+this.b1.sinertia*this.cx1*this.cx1+this.b2.sinertia*this.cx2*this.cx2+this.b3.sinertia*this.cx3*this.cx3+this.b4.sinertia*this.cx4*this.cx4;if(this.b1==this.b4){ec-=2*((this.n12x*this.n34x+this.n12y*this.n34y)*this.b1.smass+this.cx1*this.cx4*this.b1.sinertia)}if(this.b1==this.b3){ec+=2*((this.n12x*this.n34x+this.n12y*this.n34y)*this.b1.smass+this.cx1*this.cx3*this.b1.sinertia)}if(this.b2==this.b3){ec-=2*((this.n12x*this.n34x+this.n12y*this.n34y)*this.b2.smass+this.cx2*this.cx3*this.b2.sinertia)}if(this.b2==this.b4){ec+=2*((this.n12x*this.n34x+this.n12y*this.n34y)*this.b2.smass+this.cx2*this.cx4*this.b2.sinertia)}this.kMass=ec;if(this.kMass!=0){this.kMass=1/this.kMass}else{this.jAcc=0}if(!this.stiff){if(this.breakUnderError&&ep*ep>this.maxError*this.maxError){return true}var ea;var ek=2*Math.PI*this.frequency;this.gamma=1/(ei*ek*(2*this.damping+ek*ei));var eh=1/(1+this.gamma);ea=ei*ek*ek*this.gamma;this.gamma*=eh;this.kMass*=eh;this.bias=-ep*ea;if(this.bias<-this.maxError){this.bias=-this.maxError}else{if(this.bias>this.maxError){this.bias=this.maxError}}}else{this.bias=0;this.gamma=0}this.jAcc*=en;this.jMax=this.maxForce*ei}return false};N.prototype.warmStart=function(){if(!this.slack){var eb=this.b1.imass*this.jAcc;this.b1.velx-=this.n12x*eb;this.b1.vely-=this.n12y*eb;var ed=this.b2.imass*this.jAcc;this.b2.velx+=this.n12x*ed;this.b2.vely+=this.n12y*ed;var ec=this.b3.imass*this.jAcc;this.b3.velx-=this.n34x*ec;this.b3.vely-=this.n34y*ec;var ea=this.b4.imass*this.jAcc;this.b4.velx+=this.n34x*ea;this.b4.vely+=this.n34y*ea;this.b1.angvel-=this.cx1*this.b1.iinertia*this.jAcc;this.b2.angvel+=this.cx2*this.b2.iinertia*this.jAcc;this.b3.angvel-=this.cx3*this.b3.iinertia*this.jAcc;this.b4.angvel+=this.cx4*this.b4.iinertia*this.jAcc}};N.prototype.applyImpulseVel=function(){if(this.slack){return false}var ea=this.kMass*(this.bias-(this.n12x*(this.b2.velx+this.b2.kinvelx-this.b1.velx-this.b1.kinvelx)+this.n12y*(this.b2.vely+this.b2.kinvely-this.b1.vely-this.b1.kinvely)+this.n34x*(this.b4.velx+this.b4.kinvelx-this.b3.velx-this.b3.kinvelx)+this.n34y*(this.b4.vely+this.b4.kinvely-this.b3.vely-this.b3.kinvely)+(this.b2.angvel+this.b2.kinangvel)*this.cx2-(this.b1.angvel+this.b1.kinangvel)*this.cx1+(this.b4.angvel+this.b4.kinangvel)*this.cx4-(this.b3.angvel+this.b3.kinangvel)*this.cx3))-this.jAcc*this.gamma;var ef=this.jAcc;this.jAcc+=ea;if(!this.equal&&this.jAcc>0){this.jAcc=0}if(this.breakUnderForce&&this.jAcc<-this.jMax){return true}if(!this.stiff){if(this.jAcc<-this.jMax){this.jAcc=-this.jMax}}ea=this.jAcc-ef;var ec=this.b1.imass*ea;this.b1.velx-=this.n12x*ec;this.b1.vely-=this.n12y*ec;var ee=this.b2.imass*ea;this.b2.velx+=this.n12x*ee;this.b2.vely+=this.n12y*ee;var ed=this.b3.imass*ea;this.b3.velx-=this.n34x*ed;this.b3.vely-=this.n34y*ed;var eb=this.b4.imass*ea;this.b4.velx+=this.n34x*eb;this.b4.vely+=this.n34y*eb;this.b1.angvel-=this.cx1*this.b1.iinertia*ea;this.b2.angvel+=this.cx2*this.b2.iinertia*ea;this.b3.angvel-=this.cx3*this.b3.iinertia*ea;this.b4.angvel+=this.cx4*this.b4.iinertia*ea;return false};N.prototype.applyImpulsePos=function(){var eZ;var eI;var fa=0;var e9=0;fa=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;e9=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;var e2=0;var e1=0;e2=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;e1=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var eR=0;var eP=0;eR=this.b3.axisy*this.a3localx-this.b3.axisx*this.a3localy;eP=this.a3localx*this.b3.axisx+this.a3localy*this.b3.axisy;var ey=0;var ew=0;ey=this.b4.axisy*this.a4localx-this.b4.axisx*this.a4localy;ew=this.a4localx*this.b4.axisx+this.a4localy*this.b4.axisy;var eM;var eX=0;var eW=0;var eu=0;var et=0;eX=this.n12x;eW=this.n12y;eu=this.n34x;et=this.n34y;var e5=0;var e4=0;var eA=0;var ez=0;e5=this.b2.posx+e2-(this.b1.posx+fa);e4=this.b2.posy+e1-(this.b1.posy+e9);eA=this.b4.posx+ey-(this.b3.posx+eR);ez=this.b4.posy+ew-(this.b3.posy+eP);var e3=Math.sqrt(e5*e5+e4*e4);var ex=Math.sqrt(eA*eA+ez*ez);if(e3!=0){var eC=1/e3;eX=e5*eC;eW=e4*eC}if(ex!=0){var fl=1/ex;eu=eA*fl;et=ez*fl;var fk=this.ratio;eu*=fk;et*=fk}else{var fj=this.ratio/Math.sqrt(eu*eu+et*et);eu*=fj;et*=fj}var e0=e3+this.ratio*ex;if(this.equal){e0-=this.jointMax;eM=false}else{if(e0<this.jointMin){e0=this.jointMin-e0;eX=-eX;eW=-eW;eu=-eu;et=-et;eM=false}else{if(e0>this.jointMax){e0-=this.jointMax;eM=false}else{eX=0;eW=0;eu=0;et=0;e0=0;eM=true}}}eZ=e0;if(!eM){if(this.breakUnderError&&eZ*eZ>this.maxError*this.maxError){return true}if(eZ*eZ<P.constraintLinearSlop*P.constraintLinearSlop){return false}eZ*=0.5;if(eZ*eZ>6){var eG=this.b1.smass+this.b2.smass;if(eG>P.epsilon){eG=0.75/eG;eI=-eZ*eG;if(this.equal||eI<0){var fi=eI*this.b1.imass;this.b1.posx-=eX*fi;this.b1.posy-=eW*fi;var fh=eI*this.b2.imass;this.b2.posx+=eX*fh;this.b2.posy+=eW*fh;var fg=eI*this.b3.imass;this.b3.posx-=eu*fg;this.b3.posy-=et*fg;var ff=eI*this.b4.imass;this.b4.posx+=eu*ff;this.b4.posy+=et*ff;var eh=0;var fn=0;var eg=0;var fm=0;eh=this.b2.posx+e2-(this.b1.posx+fa);fn=this.b2.posy+e1-(this.b1.posy+e9);eg=this.b4.posx+ey-(this.b3.posx+eR);fm=this.b4.posy+ew-(this.b3.posy+eP);var fb=Math.sqrt(eh*eh+fn*fn);var eK=Math.sqrt(eg*eg+fm*fm);if(fb!=0){var fe=1/fb;eX=eh*fe;eW=fn*fe}if(eK!=0){var fd=1/eK;eu=eg*fd;et=fm*fd;var eq=this.ratio;eu*=eq;et*=eq}else{var eo=this.ratio/Math.sqrt(eu*eu+et*et);eu*=eo;et*=eo}var fc=fb+this.ratio*eK;if(this.equal){fc-=this.jointMax}else{if(fc<this.jointMin){fc=this.jointMin-fc;eX=-eX;eW=-eW;eu=-eu;et=-et}else{if(fc>this.jointMax){fc-=this.jointMax}else{eX=0;eW=0;eu=0;et=0;fc=0}}}eZ=fc;eZ*=0.5}}}var er;var ep;var en;var el;er=eW*fa-eX*e9;ep=eW*e2-eX*e1;en=et*eR-eu*eP;el=et*ey-eu*ew;var eY=this.b1.smass+this.b2.smass+this.ratio*this.ratio*(this.b3.smass+this.b4.smass)+this.b1.sinertia*er*er+this.b2.sinertia*ep*ep+this.b3.sinertia*en*en+this.b4.sinertia*el*el;if(this.b1==this.b4){eY-=2*((eX*eu+eW*et)*this.b1.smass+er*el*this.b1.sinertia)}if(this.b1==this.b3){eY+=2*((eX*eu+eW*et)*this.b1.smass+er*en*this.b1.sinertia)}if(this.b2==this.b3){eY-=2*((eX*eu+eW*et)*this.b2.smass+ep*en*this.b2.sinertia)}if(this.b2==this.b4){eY+=2*((eX*eu+eW*et)*this.b2.smass+ep*el*this.b2.sinertia)}var eB=eY;if(eB!=0){eB=1/eB}eI=-eZ*eB;if(this.equal||eI<0){var em=this.b1.imass*eI;this.b1.posx-=eX*em;this.b1.posy-=eW*em;var ek=this.b2.imass*eI;this.b2.posx+=eX*ek;this.b2.posy+=eW*ek;var ej=this.b3.imass*eI;this.b3.posx-=eu*ej;this.b3.posy-=et*ej;var ei=this.b4.imass*eI;this.b4.posx+=eu*ei;this.b4.posy+=et*ei;var ev=this.b1;var es=-er*this.b1.iinertia*eI;ev.rot+=es;if(es*es>0.0001){ev.axisx=Math.sin(ev.rot);ev.axisy=Math.cos(ev.rot)}else{var eQ=es*es;var eD=1-0.5*eQ;var eE=1-eQ*eQ/8;var eS=(eD*ev.axisx+es*ev.axisy)*eE;ev.axisy=(eD*ev.axisy-es*ev.axisx)*eE;ev.axisx=eS}var eJ=this.b2;var ef=ep*this.b2.iinertia*eI;eJ.rot+=ef;if(ef*ef>0.0001){eJ.axisx=Math.sin(eJ.rot);eJ.axisy=Math.cos(eJ.rot)}else{var eO=ef*ef;var eV=1-0.5*eO;var ec=1-eO*eO/8;var e8=(eV*eJ.axisx+ef*eJ.axisy)*ec;eJ.axisy=(eV*eJ.axisy-ef*eJ.axisx)*ec;eJ.axisx=e8}var eH=this.b3;var ee=-en*this.b3.iinertia*eI;eH.rot+=ee;if(ee*ee>0.0001){eH.axisx=Math.sin(eH.rot);eH.axisy=Math.cos(eH.rot)}else{var eN=ee*ee;var eU=1-0.5*eN;var eb=1-eN*eN/8;var e7=(eU*eH.axisx+ee*eH.axisy)*eb;eH.axisy=(eU*eH.axisy-ee*eH.axisx)*eb;eH.axisx=e7}var eF=this.b4;var ed=el*this.b4.iinertia*eI;eF.rot+=ed;if(ed*ed>0.0001){eF.axisx=Math.sin(eF.rot);eF.axisy=Math.cos(eF.rot)}else{var eL=ed*ed;var eT=1-0.5*eL;var ea=1-eL*eL/8;var e6=(eT*eF.axisx+ed*eF.axisy)*ea;eF.axisy=(eT*eF.axisy-ed*eF.axisx)*ea;eF.axisx=e6}}}return false};N.prototype.draw=function(ea){};N.prototype.__class__=N;var b4=zpp_nape.constraint.ZPP_UserConstraint=function(ee,ec){this.jOld=null;this.J=null;this.vec3=null;this.Keff=null;this.jMax=0;this.velonly=false;this.gamma=0;this.soft=0;this.y=null;this.L=null;this.stepped=false;this.bias=null;this.jAcc=null;this.dim=0;this.bodies=null;this.outer_zn=null;b1.call(this);this.bodies=[];this.dim=ee;this.velonly=ec;this.jAcc=[];this.bias=[];this.L=[];this.J=[];this.jOld=[];this.y=[];this.Keff=[];this.vec3=q.get(0,0,0);var ed=0;while(ed<ee){var ea=ed++;this.J[ea]=this.jOld[ea]=this.y[ea]=0;this.bias[ea]=0;this.jAcc[ea]=0;var eb=0;while(eb<ee){this.L[ea*ee+eb++]=0}}this.stepped=false};b4.__name__=["zpp_nape","constraint","ZPP_UserConstraint"];b4.__super__=b1;b4.prototype=Object.create(b1.prototype);b4.prototype.outer_zn=null;b4.prototype.bindVec2_invalidate=function(ea){this.outer_zn.__invalidate()};b4.prototype.bodies=null;b4.prototype.dim=null;b4.prototype.jAcc=null;b4.prototype.bias=null;b4.prototype.addBody=function(eb){var ec=null;var ee=0;var ed=this.bodies;while(ee<ed.length){var ea=ed[ee];++ee;if(ea.body==eb){ec=ea;break}}if(ec==null){this.bodies.push(new l(1,eb));if(this.active&&this.space!=null){if(eb!=null){eb.constraints.add(this)}}}else{ec.cnt++}};b4.prototype.remBody=function(eb){var ec=null;var ee=this.bodies.length|0;var ed=0;while(ed<ee){var ea=this.bodies[ed];if(ea.body==eb){ea.cnt--;if(ea.cnt==0){if(ee>0){this.bodies[ed]=this.bodies[ee-1]}this.bodies.pop();if(this.active&&this.space!=null){if(eb!=null){eb.constraints.remove(this)}}}ec=ea;break}++ed}return ec!=null};b4.prototype.bodyImpulse=function(ea){var ed=0;var ee=this.dim;while(ed<ee){var ec=ed++;this.J[ec]=this.jAcc[ec]}var eb=q.get(0,0,0);if(this.stepped){this.outer_zn.__impulse(this.J,ea.outer,eb)}return eb};b4.prototype.activeBodies=function(){var ec=0;var eb=this.bodies;while(ec<eb.length){var ea=eb[ec];++ec;if(ea.body!=null){ea.body.constraints.add(this)}}};b4.prototype.inactiveBodies=function(){var ec=0;var eb=this.bodies;while(ec<eb.length){var ea=eb[ec];++ec;if(ea.body!=null){ea.body.constraints.remove(this)}}};b4.prototype.stepped=null;b4.prototype.copy=function(eb,ea){this.copyto(this.outer_zn.__copy());throw new cE("not done yet")};b4.prototype.validate=function(){var ec=0;var eb=this.bodies;while(ec<eb.length){var ea=eb[ec];++ec;if(ea.body.space!=this.space){throw new cE("Error: Constraints must have each body within the same sapce to which the constraint has been assigned")}}this.outer_zn.__validate()};b4.prototype.wake_connected=function(){var ec=0;var eb=this.bodies;while(ec<eb.length){var ea=eb[ec];++ec;if(ea.body.type==2){ea.body.wake()}}};b4.prototype.forest=function(){var ef=0;var eg=this.bodies;while(ef<eg.length){var eh=eg[ef];++ef;if(eh.body.type==2){var ec;if(eh.body.component==eh.body.component.parent){ec=eh.body.component}else{var ee=eh.body.component;var ei=null;while(ee!=ee.parent){var eb=ee.parent;ee.parent=ei;ei=ee;ee=eb}while(ei!=null){var el=ei.parent;ei.parent=ee;ei=el}ec=ee}var em;if(this.component==this.component.parent){em=this.component}else{var ed=this.component;var ea=null;while(ed!=ed.parent){var ek=ed.parent;ed.parent=ea;ea=ed;ed=ek}while(ea!=null){var ej=ea.parent;ea.parent=ed;ea=ej}em=ed}if(ec!=em){if(ec.rank<em.rank){ec.parent=em}else{if(ec.rank>em.rank){em.parent=ec}else{em.parent=ec;ec.rank++}}}}}};b4.prototype.pair_exists=function(ea,ef){var ee=false;var eb=this.bodies.length|0;var eh=0;while(eh<eb){var ec=eh++;var ei=this.bodies[ec].body;var ed=ec+1;while(ed<eb){var eg=this.bodies[ed++].body;if(ei.id==ea&&eg.id==ef||ei.id==ef&&eg.id==ea){ee=true;break}}if(ee){break}}return ee};b4.prototype.broken=function(){this.outer_zn.__broken()};b4.prototype.clearcache=function(){var ea=0;var eb=this.dim;while(ea<eb){this.jAcc[ea++]=0}this.pre_dt=-1};b4.prototype.lsq=function(ea){var ec=0;var ed=0;var ee=this.dim;while(ed<ee){var eb=ed++;ec+=ea[eb]*ea[eb]}return ec};b4.prototype._clamp=function(ec,eb){var ea=this.lsq(ec);if(ea>eb*eb){var ef=eb/Math.sqrt(ea);var ed=0;var ee=this.dim;while(ed<ee){ec[ed++]*=ef}}};b4.prototype.L=null;b4.prototype.solve=function(eo){var eg=0;var en=0;var ed=this.dim;while(en<ed){var eq=en++;var ec=0;var el=0;var em=eq-1;while(el<em){var ep=el++;ec+=this.L[eq*this.dim+ep]*this.L[eq*this.dim+ep]}var ee=Math.sqrt(eo[eg++]-ec);this.L[eq*this.dim+eq]=ee;if(ee!=0){ee=1/ee;var ei=eq+1;var eb=this.dim;while(ei<eb){var er=ei++;var es=0;var ej=0;var ek=eq-1;while(ej<ek){var ef=ej++;es+=this.L[er*this.dim+ef]*this.L[eq*this.dim+ef]}this.L[er*this.dim+eq]=ee*(eo[eg++]-es)}}else{var eh=eq+1;var ea=this.dim;while(eh<ea){this.L[eh++*this.dim+eq]=0}eg+=this.dim-eq-1}}return this.L};b4.prototype.y=null;b4.prototype.transform=function(en,ep){var em=0;var eh=this.dim;while(em<eh){var eg=em++;var ei=ep[eg];var ee=en[eg*this.dim+eg];if(ee!=0){var ej=0;while(ej<eg){var ec=ej++;ei-=en[eg*this.dim+ec]*this.y[ec]}this.y[eg]=ei/ee}else{this.y[eg]=0}}var ef=0;var el=this.dim;while(ef<el){var eb=this.dim-1-ef++;var eq=en[eb*this.dim+eb];if(eq!=0){var ed=this.y[eb];var eo=eb+1;var ea=this.dim;while(eo<ea){var ek=eo++;ed-=en[ek*this.dim+eb]*ep[ek]}ep[eb]=ed/eq}else{ep[eb]=0}}};b4.prototype.soft=null;b4.prototype.gamma=null;b4.prototype.velonly=null;b4.prototype.jMax=null;b4.prototype.Keff=null;b4.prototype.preStep=function(ea){this.outer_zn.__validate();if(this.pre_dt==-1){this.pre_dt=ea}var ed=ea/this.pre_dt;this.pre_dt=ea;this.stepped=true;this.outer_zn.__prepare();this.outer_zn.__eff_mass(this.Keff);this.L=this.solve(this.Keff);if(!this.stiff&&!this.velonly){var eb;var ej=2*Math.PI*this.frequency;this.gamma=1/(ea*ej*(2*this.damping+ej*ea));var ek=1/(1+this.gamma);eb=ea*ej*ej*this.gamma;this.gamma*=ek;this.soft=ek;this.outer_zn.__position(this.bias);if(this.breakUnderError&&this.lsq(this.bias)>this.maxError*this.maxError){return true}var ei=0;var ef=this.dim;while(ei<ef){this.bias[ei++]*=-eb}this._clamp(this.bias,this.maxError)}else{var ee=0;var eh=this.dim;while(ee<eh){this.bias[ee++]=0}this.gamma=0;this.soft=1}var ec=0;var eg=this.dim;while(ec<eg){this.jAcc[ec++]*=ed}this.jMax=this.maxForce*ea;return false};b4.prototype.vec3=null;b4.prototype.warmStart=function(){var eb=0;var eh=this.bodies;while(eb<eh.length){var ej=eh[eb];++eb;var ei=ej.body;this.outer_zn.__impulse(this.jAcc,ei.outer,this.vec3);var ek=ei.imass;var ee=this.vec3;var eg=ee.zpp_inner;if(eg._validate!=null){eg._validate()}ei.velx+=ee.zpp_inner.x*ek;var ef=this.vec3;var ed=ef.zpp_inner;if(ed._validate!=null){ed._validate()}ei.vely+=ef.zpp_inner.y*ek;var ec=this.vec3;var ea=ec.zpp_inner;if(ea._validate!=null){ea._validate()}ei.angvel+=ec.zpp_inner.z*ei.iinertia}};b4.prototype.J=null;b4.prototype.jOld=null;b4.prototype.applyImpulseVel=function(){this.outer_zn.__velocity(this.J);var ef=0;var ea=this.dim;while(ef<ea){var eo=ef++;this.J[eo]=this.bias[eo]-this.J[eo]}this.transform(this.L,this.J);var en=0;var ee=this.dim;while(en<ee){var eh=en++;this.jOld[eh]=this.jAcc[eh];this.jAcc[eh]+=this.J[eh]=this.J[eh]*this.soft-this.jAcc[eh]*this.gamma}this.outer_zn.__clamp(this.jAcc);if((this.breakUnderForce||!this.stiff)&&this.lsq(this.jAcc)>this.jMax*this.jMax){if(this.breakUnderForce){return true}else{if(!this.stiff){this._clamp(this.jAcc,this.jMax)}}}var el=0;var ed=this.dim;while(el<ed){var eg=el++;this.J[eg]=this.jAcc[eg]-this.jOld[eg]}var eb=0;var ej=this.bodies;while(eb<ej.length){var es=ej[eb];++eb;var et=es.body;this.outer_zn.__impulse(this.J,et.outer,this.vec3);var ec=et.imass;var ei=this.vec3;var er=ei.zpp_inner;if(er._validate!=null){er._validate()}et.velx+=ei.zpp_inner.x*ec;var eq=this.vec3;var ep=eq.zpp_inner;if(ep._validate!=null){ep._validate()}et.vely+=eq.zpp_inner.y*ec;var em=this.vec3;var ek=em.zpp_inner;if(ek._validate!=null){ek._validate()}et.angvel+=em.zpp_inner.z*et.iinertia}return false};b4.prototype.applyImpulsePos=function(){if(this.velonly){return false}this.outer_zn.__prepare();this.outer_zn.__position(this.J);var eb=this.lsq(this.J);if(this.breakUnderError&&eb>this.maxError*this.maxError){return true}else{if(eb<P.constraintLinearSlop*P.constraintLinearSlop){return false}}var ee=0;var ea=this.dim;while(ee<ea){this.J[ee++]*=-1}this.outer_zn.__eff_mass(this.Keff);this.transform(this.solve(this.Keff),this.J);this.outer_zn.__clamp(this.J);var ed=0;var el=this.bodies;while(ed<el.length){var eq=el[ed];++ed;var er=eq.body;this.outer_zn.__impulse(this.J,er.outer,this.vec3);var ec=er.imass;var ei=this.vec3;var eo=ei.zpp_inner;if(eo._validate!=null){eo._validate()}er.posx+=ei.zpp_inner.x*ec;var en=this.vec3;var em=en.zpp_inner;if(em._validate!=null){em._validate()}er.posy+=en.zpp_inner.y*ec;var ek=this.vec3;var ej=ek.zpp_inner;if(ej._validate!=null){ej._validate()}var ef=ek.zpp_inner.z*er.iinertia;er.rot+=ef;if(ef*ef>0.0001){er.axisx=Math.sin(er.rot);er.axisy=Math.cos(er.rot)}else{var es=ef*ef;var eg=1-0.5*es;var eh=1-es*es/8;var ep=(eg*er.axisx+ef*er.axisy)*eh;er.axisy=(eg*er.axisy-ef*er.axisx)*eh;er.axisx=ep}}return false};b4.prototype.draw=function(ea){this.outer_zn.__draw(ea)};b4.prototype.__class__=b4;var l=zpp_nape.constraint.ZPP_UserBody=function(eb,ea){this.body=null;this.cnt=0;this.cnt=eb;this.body=ea};l.__name__=["zpp_nape","constraint","ZPP_UserBody"];l.prototype.cnt=null;l.prototype.body=null;l.prototype.__class__=l;var aC=zpp_nape.constraint.ZPP_WeldJoint=function(){this.stepped=false;this.biasz=0;this.biasy=0;this.biasx=0;this.gamma=0;this.jMax=0;this.jAccz=0;this.jAccy=0;this.jAccx=0;this.kMassf=0;this.kMasse=0;this.kMassc=0;this.kMassd=0;this.kMassb=0;this.kMassa=0;this.phase=0;this.wrap_a2=null;this.a2rely=0;this.a2relx=0;this.a2localy=0;this.a2localx=0;this.b2=null;this.wrap_a1=null;this.a1rely=0;this.a1relx=0;this.a1localy=0;this.a1localx=0;this.b1=null;this.outer_zn=null;b1.call(this);this.phase=0;this.jAccx=0;this.jAccy=0;this.jAccz=0;this.jMax=Infinity;this.stepped=false;this.a1localx=0;this.a1localy=0;this.a1relx=0;this.a1rely=0;this.a2localx=0;this.a2localy=0;this.a2relx=0;this.a2rely=0};aC.__name__=["zpp_nape","constraint","ZPP_WeldJoint"];aC.__super__=b1;aC.prototype=Object.create(b1.prototype);aC.prototype.outer_zn=null;aC.prototype.bodyImpulse=function(ea){if(this.stepped){if(ea==this.b1){return q.get(-this.jAccx,-this.jAccy,-(this.jAccy*this.a1relx-this.jAccx*this.a1rely+this.jAccz))}else{return q.get(this.jAccx,this.jAccy,this.jAccy*this.a2relx-this.jAccx*this.a2rely+this.jAccz)}}else{return q.get(0,0,0)}};aC.prototype.activeBodies=function(){if(this.b1!=null){this.b1.constraints.add(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.add(this)}}};aC.prototype.inactiveBodies=function(){if(this.b1!=null){this.b1.constraints.remove(this)}if(this.b2!=this.b1){if(this.b2!=null){this.b2.constraints.remove(this)}}};aC.prototype.b1=null;aC.prototype.a1localx=null;aC.prototype.a1localy=null;aC.prototype.a1relx=null;aC.prototype.a1rely=null;aC.prototype.validate_a1=function(){this.wrap_a1.zpp_inner.x=this.a1localx;this.wrap_a1.zpp_inner.y=this.a1localy};aC.prototype.invalidate_a1=function(ea){this.immutable_midstep("Constraint::a1");this.a1localx=ea.x;this.a1localy=ea.y;this.wake()};aC.prototype.setup_a1=function(){var ea=this.a1localx;var eh=this.a1localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a1=eb;this.wrap_a1.zpp_inner._inuse=true;this.wrap_a1.zpp_inner._validate=dX(this,this.validate_a1);this.wrap_a1.zpp_inner._invalidate=dX(this,this.invalidate_a1)};aC.prototype.wrap_a1=null;aC.prototype.b2=null;aC.prototype.a2localx=null;aC.prototype.a2localy=null;aC.prototype.a2relx=null;aC.prototype.a2rely=null;aC.prototype.validate_a2=function(){this.wrap_a2.zpp_inner.x=this.a2localx;this.wrap_a2.zpp_inner.y=this.a2localy};aC.prototype.invalidate_a2=function(ea){this.immutable_midstep("Constraint::a2");this.a2localx=ea.x;this.a2localy=ea.y;this.wake()};aC.prototype.setup_a2=function(){var ea=this.a2localx;var eh=this.a2localy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_a2=eb;this.wrap_a2.zpp_inner._inuse=true;this.wrap_a2.zpp_inner._validate=dX(this,this.validate_a2);this.wrap_a2.zpp_inner._invalidate=dX(this,this.invalidate_a2)};aC.prototype.wrap_a2=null;aC.prototype.phase=null;aC.prototype.kMassa=null;aC.prototype.kMassb=null;aC.prototype.kMassd=null;aC.prototype.kMassc=null;aC.prototype.kMasse=null;aC.prototype.kMassf=null;aC.prototype.jAccx=null;aC.prototype.jAccy=null;aC.prototype.jAccz=null;aC.prototype.jMax=null;aC.prototype.gamma=null;aC.prototype.biasx=null;aC.prototype.biasy=null;aC.prototype.biasz=null;aC.prototype.stepped=null;aC.prototype.copy=function(ea,eb){var ee=this.outer_zn;if(ee.zpp_inner_zn.wrap_a1==null){ee.zpp_inner_zn.setup_a1()}var ec=ee.zpp_inner_zn.wrap_a1;var eg=this.outer_zn;if(eg.zpp_inner_zn.wrap_a2==null){eg.zpp_inner_zn.setup_a2()}var ef=new cX(null,null,ec,eg.zpp_inner_zn.wrap_a2);this.copyto(ef);if(ea!=null&&this.b1!=null){var ek=null;var ed=0;while(ed<ea.length){var ej=ea[ed];++ed;if(ej.id==this.b1.id){ek=ej.bc;break}}if(ek!=null){ef.zpp_inner_zn.b1=ek.zpp_inner}else{eb.push(cu.todo(this.b1.id,function(em){ef.zpp_inner_zn.b1=em.zpp_inner}))}}if(ea!=null&&this.b2!=null){var ei=null;var eh=0;while(eh<ea.length){var el=ea[eh];++eh;if(el.id==this.b2.id){ei=el.bc;break}}if(ei!=null){ef.zpp_inner_zn.b2=ei.zpp_inner}else{eb.push(cu.todo(this.b2.id,function(em){ef.zpp_inner_zn.b2=em.zpp_inner}))}}return ef};aC.prototype.validate=function(){if(this.b1==null||this.b2==null){throw new cE("Error: AngleJoint cannot be simulated null bodies")}if(this.b1==this.b2){throw new cE("Error: WeldJoint cannot be simulated with body1 == body2")}if(this.b1.space!=this.space||this.b2.space!=this.space){throw new cE("Error: Constraints must have each body within the same space to which the constraint has been assigned")}if(this.b1.type!=2&&this.b2.type!=2){throw new cE("Error: Constraints cannot have both bodies non-dynamic")}};aC.prototype.wake_connected=function(){if(this.b1!=null&&this.b1.type==2){this.b1.wake()}if(this.b2!=null&&this.b2.type==2){this.b2.wake()}};aC.prototype.forest=function(){if(this.b1.type==2){var en;if(this.b1.component==this.b1.component.parent){en=this.b1.component}else{var eo=this.b1.component;var em=null;while(eo!=eo.parent){var ei=eo.parent;eo.parent=em;em=eo;eo=ei}while(em!=null){var eh=em.parent;em.parent=eo;em=eh}en=eo}var er;if(this.component==this.component.parent){er=this.component}else{var et=this.component;var el=null;while(et!=et.parent){var eg=et.parent;et.parent=el;el=et;et=eg}while(el!=null){var ef=el.parent;el.parent=et;el=ef}er=et}if(en!=er){if(en.rank<er.rank){en.parent=er}else{if(en.rank>er.rank){er.parent=en}else{er.parent=en;en.rank++}}}}if(this.b2.type==2){var ee;if(this.b2.component==this.b2.component.parent){ee=this.b2.component}else{var es=this.b2.component;var ek=null;while(es!=es.parent){var ed=es.parent;es.parent=ek;ek=es;es=ed}while(ek!=null){var ec=ek.parent;ek.parent=es;ek=ec}ee=es}var ep;if(this.component==this.component.parent){ep=this.component}else{var eq=this.component;var ej=null;while(eq!=eq.parent){var eb=eq.parent;eq.parent=ej;ej=eq;eq=eb}while(ej!=null){var ea=ej.parent;ej.parent=eq;ej=ea}ep=eq}if(ee!=ep){if(ee.rank<ep.rank){ee.parent=ep}else{if(ee.rank>ep.rank){ep.parent=ee}else{ep.parent=ee;ee.rank++}}}}};aC.prototype.pair_exists=function(eb,ea){if(!(this.b1.id==eb&&this.b2.id==ea)){if(this.b1.id==ea){return this.b2.id==eb}else{return false}}else{return true}};aC.prototype.clearcache=function(){this.jAccx=0;this.jAccy=0;this.jAccz=0;this.pre_dt=-1};aC.prototype.preStep=function(em){if(this.pre_dt==-1){this.pre_dt=em}var er=em/this.pre_dt;this.pre_dt=em;this.stepped=true;this.a1relx=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;this.a1rely=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;this.a2relx=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;this.a2rely=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var es=this.b1.smass+this.b2.smass;this.kMassa=es;this.kMassb=0;this.kMassd=es;this.kMassc=0;this.kMasse=0;this.kMassf=0;if(this.b1.sinertia!=0){var ec=this.a1relx*this.b1.sinertia;var eb=this.a1rely*this.b1.sinertia;this.kMassa+=eb*this.a1rely;this.kMassb+=-eb*this.a1relx;this.kMassd+=ec*this.a1relx;this.kMassc+=-eb;this.kMasse+=ec;this.kMassf+=this.b1.sinertia}if(this.b2.sinertia!=0){var ew=this.a2relx*this.b2.sinertia;var ee=this.a2rely*this.b2.sinertia;this.kMassa+=ee*this.a2rely;this.kMassb+=-ee*this.a2relx;this.kMassd+=ew*this.a2relx;this.kMassc+=-ee;this.kMasse+=ew;this.kMassf+=this.b2.sinertia}var ed=this.kMassa*(this.kMassd*this.kMassf-this.kMasse*this.kMasse)+this.kMassb*(this.kMassc*this.kMasse-this.kMassb*this.kMassf)+this.kMassc*(this.kMassb*this.kMasse-this.kMassc*this.kMassd);var eu;if(ed!=ed){this.kMassa=0;this.kMassb=0;this.kMassd=0;this.kMassc=0;this.kMasse=0;this.kMassf=0;eu=7}else{if(ed==0){var et=0;if(this.kMassa!=0){this.kMassa=1/this.kMassa}else{this.kMassa=0;et=1}if(this.kMassd!=0){this.kMassd=1/this.kMassd}else{this.kMassd=0;et|=2}if(this.kMassf!=0){this.kMassf=1/this.kMassf}else{this.kMassf=0;et|=4}this.kMassb=this.kMassc=this.kMasse=0;eu=et}else{ed=1/ed;var eq=ed*(this.kMassd*this.kMassf-this.kMasse*this.kMasse);var ep=ed*(this.kMasse*this.kMassc-this.kMassb*this.kMassf);var el=ed*(this.kMassa*this.kMassf-this.kMassc*this.kMassc);var en=ed*(this.kMassb*this.kMasse-this.kMassc*this.kMassd);var ej=ed*(this.kMassb*this.kMassc-this.kMassa*this.kMasse);var ev=this.kMassa*this.kMassd-this.kMassb*this.kMassb;this.kMassa=eq;this.kMassb=ep;this.kMassd=el;this.kMassc=en;this.kMasse=ej;this.kMassf=ed*ev;eu=0}}if((eu&1)!=0){this.jAccx=0}if((eu&2)!=0){this.jAccy=0}if((eu&4)!=0){this.jAccz=0}if(!this.stiff){var ea;var eo=2*Math.PI*this.frequency;this.gamma=1/(em*eo*(2*this.damping+eo*em));var ek=1/(1+this.gamma);ea=em*eo*eo*this.gamma;this.gamma*=ek;this.kMassa*=ek;this.kMassb*=ek;this.kMassd*=ek;this.kMassc*=ek;this.kMasse*=ek;this.kMassf*=ek;this.biasx=this.b2.posx+this.a2relx-(this.b1.posx+this.a1relx);this.biasy=this.b2.posy+this.a2rely-(this.b1.posy+this.a1rely);this.biasz=this.b2.rot-this.b1.rot-this.phase;if(this.breakUnderError&&this.biasx*this.biasx+this.biasy*this.biasy+this.biasz*this.biasz>this.maxError*this.maxError){return true}var ei=-ea;this.biasx*=ei;this.biasy*=ei;this.biasz*=ei;var eh=this.maxError;var ef=this.biasx*this.biasx+this.biasy*this.biasy+this.biasz*this.biasz;if(ef>eh*eh){var eg=eh*(1/Math.sqrt(ef));this.biasx*=eg;this.biasy*=eg;this.biasz*=eg}}else{this.biasx=0;this.biasy=0;this.biasz=0;this.gamma=0}this.jAccx*=er;this.jAccy*=er;this.jAccz*=er;this.jMax=this.maxForce*em;return false};aC.prototype.warmStart=function(){var ea=this.b1.imass;this.b1.velx-=this.jAccx*ea;this.b1.vely-=this.jAccy*ea;var eb=this.b2.imass;this.b2.velx+=this.jAccx*eb;this.b2.vely+=this.jAccy*eb;this.b1.angvel-=(this.jAccy*this.a1relx-this.jAccx*this.a1rely+this.jAccz)*this.b1.iinertia;this.b2.angvel+=(this.jAccy*this.a2relx-this.jAccx*this.a2rely+this.jAccz)*this.b2.iinertia};aC.prototype.applyImpulseVel=function(){var en=0;var em=0;var el=0;en=this.b2.velx+this.b2.kinvelx-this.a2rely*(this.b2.angvel+this.b2.kinangvel)-(this.b1.velx+this.b1.kinvelx-this.a1rely*(this.b1.angvel+this.b1.kinangvel));em=this.b2.vely+this.b2.kinvely+this.a2relx*(this.b2.angvel+this.b2.kinangvel)-(this.b1.vely+this.b1.kinvely+this.a1relx*(this.b1.angvel+this.b1.kinangvel));el=this.b2.angvel+this.b2.kinangvel-this.b1.angvel-this.b1.kinangvel;var ea=0;var eq=0;var ep=0;ea=this.biasx-en;eq=this.biasy-em;ep=this.biasz-el;var ec=this.kMassa*ea+this.kMassb*eq+this.kMassc*ep;var eb=this.kMassb*ea+this.kMassd*eq+this.kMasse*ep;ep=this.kMassc*ea+this.kMasse*eq+this.kMassf*ep;ea=ec;eq=eb;var eo=this.gamma;ea-=this.jAccx*eo;eq-=this.jAccy*eo;ep-=this.jAccz*eo;var ek=0;var ej=0;var ei=0;ek=this.jAccx;ej=this.jAccy;ei=this.jAccz;this.jAccx+=ea;this.jAccy+=eq;this.jAccz+=ep;if(this.breakUnderForce){if(this.jAccx*this.jAccx+this.jAccy*this.jAccy+this.jAccz*this.jAccz>this.jMax*this.jMax){return true}}else{if(!this.stiff){var eh=this.jMax;var ef=this.jAccx*this.jAccx+this.jAccy*this.jAccy+this.jAccz*this.jAccz;if(ef>eh*eh){var eg=eh*(1/Math.sqrt(ef));this.jAccx*=eg;this.jAccy*=eg;this.jAccz*=eg}}}ea=this.jAccx-ek;eq=this.jAccy-ej;ep=this.jAccz-ei;var ee=this.b1.imass;this.b1.velx-=ea*ee;this.b1.vely-=eq*ee;var ed=this.b2.imass;this.b2.velx+=ea*ed;this.b2.vely+=eq*ed;this.b1.angvel-=(eq*this.a1relx-ea*this.a1rely+ep)*this.b1.iinertia;this.b2.angvel+=(eq*this.a2relx-ea*this.a2rely+ep)*this.b2.iinertia;return false};aC.prototype.applyImpulsePos=function(){var ey=0;var ew=0;ey=this.b1.axisy*this.a1localx-this.b1.axisx*this.a1localy;ew=this.a1localx*this.b1.axisx+this.a1localy*this.b1.axisy;var ei=0;var eg=0;ei=this.b2.axisy*this.a2localx-this.b2.axisx*this.a2localy;eg=this.a2localx*this.b2.axisx+this.a2localy*this.b2.axisy;var eh=0;var ef=0;var ee=0;eh=this.b2.posx+ei-(this.b1.posx+ey);ef=this.b2.posy+eg-(this.b1.posy+ew);ee=this.b2.rot-this.b1.rot-this.phase;var eE=0;var eA=0;var ez=0;if(this.breakUnderError&&eh*eh+ef*ef+ee*ee>this.maxError*this.maxError){return true}var eJ=true;if(eh*eh+ef*ef<P.constraintLinearSlop*P.constraintLinearSlop){eJ=false;eh=0;ef=0}var eR=ee*ee;var eL=P.constraintAngularSlop;if(eR<eL*eL){if(!eJ){return false}else{ee=0}}eh*=0.5;ef*=0.5;ee*=0.5;if(eh*eh+ef*ef>6){var eV=this.b1.smass+this.b2.smass;if(eV>P.epsilon){eV=0.75/eV;eE=-eh*eV;eA=-ef*eV;var ex=eE*eE+eA*eA;if(ex>400){var eP=20*(1/Math.sqrt(ex));eE*=eP;eA*=eP}var eI=this.b1.imass;this.b1.posx-=eE*eI;this.b1.posy-=eA*eI;var eH=this.b2.imass;this.b2.posx+=eE*eH;this.b2.posy+=eA*eH;eh=this.b2.posx+ei-(this.b1.posx+ey);ef=this.b2.posy+eg-(this.b1.posy+ew);ee=this.b2.rot-this.b1.rot-this.phase;eh*=0.5;ef*=0.5;ee*=0.5}}var ev=0;var eu=0;var es=0;var et=0;var er=0;var eq=0;var eU=this.b1.smass+this.b2.smass;ev=eU;eu=0;es=eU;et=0;er=0;eq=0;if(this.b1.sinertia!=0){var eb=ey*this.b1.sinertia;var ea=ew*this.b1.sinertia;ev=eU+ea*ew;eu+=-ea*ey;es=eU+eb*ey;et+=-ea;er+=eb;eq+=this.b1.sinertia}if(this.b2.sinertia!=0){var eN=ei*this.b2.sinertia;var eo=eg*this.b2.sinertia;ev+=eo*eg;eu+=-eo*ei;es+=eN*ei;et+=-eo;er+=eN;eq+=this.b2.sinertia}eE=-eh;eA=-ef;ez=-ee;var ep=eE*eE+eA*eA;if(ep>36){var eG=6*(1/Math.sqrt(ep));eE*=eG;eA*=eG}var ej=ev*(es*eq-er*er)+eu*(et*er-eu*eq)+et*(eu*er-et*es);if(ej!=ej){ez=0;eA=ez;eE=eA}else{if(ej==0){if(ev!=0){eE/=ev}else{eE=0}if(es!=0){eA/=es}else{eA=0}if(eq!=0){ez/=eq}else{ez=0}}else{ej=1/ej;var em=er*et-eu*eq;var el=eu*er-et*es;var ek=eu*et-ev*er;var eM=ej*(eE*(es*eq-er*er)+eA*em+ez*el);var en=ej*(eE*em+eA*(ev*eq-et*et)+ez*ek);ez=ej*(eE*el+eA*ek+ez*(ev*es-eu*eu));eE=eM;eA=en}}var eF=this.b1.imass;this.b1.posx-=eE*eF;this.b1.posy-=eA*eF;var eD=this.b2.imass;this.b2.posx+=eE*eD;this.b2.posy+=eA*eD;var ec=this.b1;var ed=-(eA*ey-eE*ew+ez)*this.b1.iinertia;ec.rot+=ed;if(ed*ed>0.0001){ec.axisx=Math.sin(ec.rot);ec.axisy=Math.cos(ec.rot)}else{var eT=ed*ed;var eQ=1-0.5*eT;var eX=1-eT*eT/8;var eS=(eQ*ec.axisx+ed*ec.axisy)*eX;ec.axisy=(eQ*ec.axisy-ed*ec.axisx)*eX;ec.axisx=eS}var eO=this.b2;var eK=(eA*ei-eE*eg+ez)*this.b2.iinertia;eO.rot+=eK;if(eK*eK>0.0001){eO.axisx=Math.sin(eO.rot);eO.axisy=Math.cos(eO.rot)}else{var eC=eK*eK;var eY=1-0.5*eC;var eW=1-eC*eC/8;var eB=(eY*eO.axisx+eK*eO.axisy)*eW;eO.axisy=(eY*eO.axisy-eK*eO.axisx)*eW;eO.axisx=eB}return false};aC.prototype.draw=function(ea){};aC.prototype.__class__=aC;var j=zpp_nape.dynamics.ZPP_Arbiter=function(){this.sensorarb=null;this.fluidarb=null;this.colarb=null;this.type=0;this.pair=null;this.ws2=null;this.ws1=null;this.b2=null;this.b1=null;this.invalidated=false;this.immState=0;this.fresh=false;this.continuous=false;this.presentable=false;this.intchange=false;this.present=0;this.sleeping=false;this.cleared=false;this.active=false;this.endGenerated=0;this.sleep_stamp=0;this.up_stamp=0;this.stamp=0;this.di=0;this.id=0;this.hnext=null;this.outer=null};j.__name__=["zpp_nape","dynamics","ZPP_Arbiter"];j.prototype.outer=null;j.prototype.wrapper=function(){if(this.outer==null){j.internal=true;if(this.type==j.COL){this.colarb.outer_zn=new ak();this.outer=this.colarb.outer_zn}else{if(this.type==j.FLUID){this.fluidarb.outer_zn=new ab();this.outer=this.fluidarb.outer_zn}else{this.outer=new aD()}}this.outer.zpp_inner=this;j.internal=false}return this.outer};j.prototype.inactiveme=function(){return !this.active};j.prototype.hnext=null;j.prototype.id=null;j.prototype.di=null;j.prototype.stamp=null;j.prototype.up_stamp=null;j.prototype.sleep_stamp=null;j.prototype.endGenerated=null;j.prototype.active=null;j.prototype.cleared=null;j.prototype.sleeping=null;j.prototype.present=null;j.prototype.intchange=null;j.prototype.presentable=null;j.prototype.continuous=null;j.prototype.fresh=null;j.prototype.immState=null;j.prototype.acting=function(){if(this.active){return(this.immState&1)!=0}else{return false}};j.prototype.invalidated=null;j.prototype.b1=null;j.prototype.b2=null;j.prototype.ws1=null;j.prototype.ws2=null;j.prototype.pair=null;j.prototype.swap_features=function(){var ea=this.b1;this.b1=this.b2;this.b2=ea;var ec=this.ws1;this.ws1=this.ws2;this.ws2=ec;var eb=this.colarb.s1;this.colarb.s1=this.colarb.s2;this.colarb.s2=eb};j.prototype.type=null;j.prototype.colarb=null;j.prototype.fluidarb=null;j.prototype.sensorarb=null;j.prototype.lazyRetire=function(en,ek){this.cleared=true;if(ek==null||this.b2==ek){var ef=this.b1.arbiters;var ee=null;var em=ef.head;while(em!=null){if(em.elt==this){var eb;var eh;if(ee==null){eb=ef.head;eh=eb.next;ef.head=eh;if(ef.head==null){ef.pushmod=true}}else{eb=ee.next;eh=eb.next;ee.next=eh;if(eh==null){ef.pushmod=true}}var ea=eb;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;ef.modified=true;ef.length--;ef.pushmod=true;break}ee=em;em=em.next}}if(ek==null||this.b1==ek){var ei=this.b2.arbiters;var ed=null;var el=ei.head;while(el!=null){if(el.elt==this){var eg;var ej;if(ed==null){eg=ei.head;ej=eg.next;ei.head=ej;if(ei.head==null){ei.pushmod=true}}else{eg=ed.next;ej=eg.next;ed.next=ej;if(ej==null){ei.pushmod=true}}var ec=eg;ec.elt=null;ec.next=dL.zpp_pool;dL.zpp_pool=ec;ei.modified=true;ei.length--;ei.pushmod=true;break}ed=el;el=el.next}}if(this.pair!=null){this.pair.arb=null;this.pair=null}this.active=false;en.f_arbiters.modified=true};j.prototype.sup_assign=function(ei,eh,ea,ef){this.b1=ei.body;this.ws1=ei;this.b2=eh.body;this.ws2=eh;this.id=ea;this.di=ef;var ec=this.b1.arbiters;var ed;if(dL.zpp_pool==null){ed=new dL()}else{ed=dL.zpp_pool;dL.zpp_pool=ed.next;ed.next=null}ed.elt=this;var ej=ed;ej.next=ec.head;ec.head=ej;ec.modified=true;ec.length++;var ee=this.b2.arbiters;var eg;if(dL.zpp_pool==null){eg=new dL()}else{eg=dL.zpp_pool;dL.zpp_pool=eg.next;eg.next=null}eg.elt=this;var eb=eg;eb.next=ee.head;ee.head=eb;ee.modified=true;ee.length++;this.active=true;this.present=0;this.cleared=false;this.sleeping=false;this.fresh=false;this.presentable=false};j.prototype.sup_retire=function(){if(!this.cleared){var ef=this.b1.arbiters;var ee=null;var el=ef.head;while(el!=null){if(el.elt==this){var eb;var eh;if(ee==null){eb=ef.head;eh=eb.next;ef.head=eh;if(ef.head==null){ef.pushmod=true}}else{eb=ee.next;eh=eb.next;ee.next=eh;if(eh==null){ef.pushmod=true}}var ea=eb;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;ef.modified=true;ef.length--;ef.pushmod=true;break}ee=el;el=el.next}var ei=this.b2.arbiters;var ed=null;var ek=ei.head;while(ek!=null){if(ek.elt==this){var eg;var ej;if(ed==null){eg=ei.head;ej=eg.next;ei.head=ej;if(ei.head==null){ei.pushmod=true}}else{eg=ed.next;ej=eg.next;ed.next=ej;if(ej==null){ei.pushmod=true}}var ec=eg;ec.elt=null;ec.next=dL.zpp_pool;dL.zpp_pool=ec;ei.modified=true;ei.length--;ei.pushmod=true;break}ed=ek;ek=ek.next}if(this.pair!=null){this.pair.arb=null;this.pair=null}}this.b1=this.b2=null;this.active=false;this.intchange=false};j.prototype.__class__=j;var A=zpp_nape.dynamics.ZPP_SensorArbiter=function(){this.next=null;j.call(this);this.type=j.SENSOR;this.sensorarb=this};A.__name__=["zpp_nape","dynamics","ZPP_SensorArbiter"];A.__super__=j;A.prototype=Object.create(j.prototype);A.prototype.next=null;A.prototype.alloc=function(){};A.prototype.free=function(){};A.prototype.assign=function(ei,eh,ea,ef){this.b1=ei.body;this.ws1=ei;this.b2=eh.body;this.ws2=eh;this.id=ea;this.di=ef;var ec=this.b1.arbiters;var ed;if(dL.zpp_pool==null){ed=new dL()}else{ed=dL.zpp_pool;dL.zpp_pool=ed.next;ed.next=null}ed.elt=this;var ej=ed;ej.next=ec.head;ec.head=ej;ec.modified=true;ec.length++;var ee=this.b2.arbiters;var eg;if(dL.zpp_pool==null){eg=new dL()}else{eg=dL.zpp_pool;dL.zpp_pool=eg.next;eg.next=null}eg.elt=this;var eb=eg;eb.next=ee.head;ee.head=eb;ee.modified=true;ee.length++;this.active=true;this.present=0;this.cleared=false;this.sleeping=false;this.fresh=false;this.presentable=false};A.prototype.retire=function(){if(!this.cleared){var eg=this.b1.arbiters;var ef=null;var em=eg.head;while(em!=null){if(em.elt==this){var ec;var ei;if(ef==null){ec=eg.head;ei=ec.next;eg.head=ei;if(eg.head==null){eg.pushmod=true}}else{ec=ef.next;ei=ec.next;ef.next=ei;if(ei==null){eg.pushmod=true}}var ea=ec;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;eg.modified=true;eg.length--;eg.pushmod=true;break}ef=em;em=em.next}var ej=this.b2.arbiters;var ee=null;var el=ej.head;while(el!=null){if(el.elt==this){var eh;var ek;if(ee==null){eh=ej.head;ek=eh.next;ej.head=ek;if(ej.head==null){ej.pushmod=true}}else{eh=ee.next;ek=eh.next;ee.next=ek;if(ek==null){ej.pushmod=true}}var ed=eh;ed.elt=null;ed.next=dL.zpp_pool;dL.zpp_pool=ed;ej.modified=true;ej.length--;ej.pushmod=true;break}ee=el;el=el.next}if(this.pair!=null){this.pair.arb=null;this.pair=null}}this.b1=this.b2=null;this.active=false;this.intchange=false;var eb=this;eb.next=A.zpp_pool;A.zpp_pool=eb};A.prototype.makemutable=function(){};A.prototype.makeimmutable=function(){};A.prototype.__class__=A;var dK=zpp_nape.dynamics.ZPP_FluidArbiter=function(){this.pre_dt=0;this.mutable=false;this.wrap_position=null;this.buoyy=0;this.buoyx=0;this.ny=0;this.nx=0;this.lgamma=0;this.dampy=0;this.dampx=0;this.vMassc=0;this.vMassb=0;this.vMassa=0;this.agamma=0;this.adamp=0;this.wMass=0;this.nodrag=false;this.r2y=0;this.r2x=0;this.r1y=0;this.r1x=0;this.overlap=0;this.centroidy=0;this.centroidx=0;this.next=null;this.outer_zn=null;j.call(this);this.type=j.FLUID;this.fluidarb=this;this.buoyx=0;this.buoyy=0;this.pre_dt=-1};dK.__name__=["zpp_nape","dynamics","ZPP_FluidArbiter"];dK.__super__=j;dK.prototype=Object.create(j.prototype);dK.prototype.outer_zn=null;dK.prototype.next=null;dK.prototype.alloc=function(){};dK.prototype.free=function(){};dK.prototype.centroidx=null;dK.prototype.centroidy=null;dK.prototype.overlap=null;dK.prototype.r1x=null;dK.prototype.r1y=null;dK.prototype.r2x=null;dK.prototype.r2y=null;dK.prototype.nodrag=null;dK.prototype.wMass=null;dK.prototype.adamp=null;dK.prototype.agamma=null;dK.prototype.vMassa=null;dK.prototype.vMassb=null;dK.prototype.vMassc=null;dK.prototype.dampx=null;dK.prototype.dampy=null;dK.prototype.lgamma=null;dK.prototype.nx=null;dK.prototype.ny=null;dK.prototype.buoyx=null;dK.prototype.buoyy=null;dK.prototype.position_validate=function(){this.wrap_position.zpp_inner.x=this.centroidx;this.wrap_position.zpp_inner.y=this.centroidy};dK.prototype.position_invalidate=function(ea){this.centroidx=ea.x;this.centroidy=ea.y};dK.prototype.wrap_position=null;dK.prototype.getposition=function(){var ea;if(au.poolVec2==null){ea=new r()}else{ea=au.poolVec2;au.poolVec2=ea.zpp_pool;ea.zpp_pool=null}if(ea.zpp_inner==null){var ee;if(bB.zpp_pool==null){ee=new bB()}else{ee=bB.zpp_pool;bB.zpp_pool=ee.next;ee.next=null}ee.weak=false;ee._immutable=false;ee.x=0;ee.y=0;ea.zpp_inner=ee;ea.zpp_inner.outer=ea}else{var eb;var ef=ea.zpp_inner;if(ef._validate!=null){ef._validate()}if(ea.zpp_inner.x==0){var ed=ea.zpp_inner;if(ed._validate!=null){ed._validate()}eb=ea.zpp_inner.y==0}else{eb=false}if(!eb){ea.zpp_inner.x=0;ea.zpp_inner.y=0;var ec=ea.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}}ea.zpp_inner.weak=false;this.wrap_position=ea;this.wrap_position.zpp_inner._inuse=true;this.wrap_position.zpp_inner._immutable=!this.mutable;this.wrap_position.zpp_inner._validate=dX(this,this.position_validate);this.wrap_position.zpp_inner._invalidate=dX(this,this.position_invalidate)};dK.prototype.assign=function(ei,eh,ea,ef){this.b1=ei.body;this.ws1=ei;this.b2=eh.body;this.ws2=eh;this.id=ea;this.di=ef;var ec=this.b1.arbiters;var ed;if(dL.zpp_pool==null){ed=new dL()}else{ed=dL.zpp_pool;dL.zpp_pool=ed.next;ed.next=null}ed.elt=this;var ej=ed;ej.next=ec.head;ec.head=ej;ec.modified=true;ec.length++;var ee=this.b2.arbiters;var eg;if(dL.zpp_pool==null){eg=new dL()}else{eg=dL.zpp_pool;dL.zpp_pool=eg.next;eg.next=null}eg.elt=this;var eb=eg;eb.next=ee.head;ee.head=eb;ee.modified=true;ee.length++;this.active=true;this.present=0;this.cleared=false;this.sleeping=false;this.fresh=false;this.presentable=false;this.nx=0;this.ny=1;this.dampx=0;this.dampy=0;this.adamp=0};dK.prototype.retire=function(){if(!this.cleared){var eg=this.b1.arbiters;var ef=null;var em=eg.head;while(em!=null){if(em.elt==this){var ec;var ei;if(ef==null){ec=eg.head;ei=ec.next;eg.head=ei;if(eg.head==null){eg.pushmod=true}}else{ec=ef.next;ei=ec.next;ef.next=ei;if(ei==null){eg.pushmod=true}}var ea=ec;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;eg.modified=true;eg.length--;eg.pushmod=true;break}ef=em;em=em.next}var ej=this.b2.arbiters;var ee=null;var el=ej.head;while(el!=null){if(el.elt==this){var eh;var ek;if(ee==null){eh=ej.head;ek=eh.next;ej.head=ek;if(ej.head==null){ej.pushmod=true}}else{eh=ee.next;ek=eh.next;ee.next=ek;if(ek==null){ej.pushmod=true}}var ed=eh;ed.elt=null;ed.next=dL.zpp_pool;dL.zpp_pool=ed;ej.modified=true;ej.length--;ej.pushmod=true;break}ee=el;el=el.next}if(this.pair!=null){this.pair.arb=null;this.pair=null}}this.b1=this.b2=null;this.active=false;this.intchange=false;var eb=this;eb.next=dK.zpp_pool;dK.zpp_pool=eb;this.pre_dt=-1};dK.prototype.mutable=null;dK.prototype.makemutable=function(){this.mutable=true;if(this.wrap_position!=null){this.wrap_position.zpp_inner._immutable=false}};dK.prototype.makeimmutable=function(){this.mutable=false;if(this.wrap_position!=null){this.wrap_position.zpp_inner._immutable=true}};dK.prototype.inject=function(eb,ea,ec){this.overlap=eb;this.centroidx=ea;this.centroidy=ec};dK.prototype.pre_dt=null;dK.prototype.preStep=function(eV,ek){if(this.pre_dt==-1){this.pre_dt=ek}var e0=ek/this.pre_dt;this.pre_dt=ek;this.r1x=this.centroidx-this.b1.posx;this.r1y=this.centroidy-this.b1.posy;this.r2x=this.centroidx-this.b2.posx;this.r2y=this.centroidy-this.b2.posy;var eY=0;var eW=0;if(this.ws1.fluidEnabled&&this.ws1.fluidProperties.wrap_gravity!=null){eY=this.ws1.fluidProperties.gravityx;eW=this.ws1.fluidProperties.gravityy}else{eY=eV.gravityx;eW=eV.gravityy}var ey=0;var ev=0;if(this.ws2.fluidEnabled&&this.ws2.fluidProperties.wrap_gravity!=null){ey=this.ws2.fluidProperties.gravityx;ev=this.ws2.fluidProperties.gravityy}else{ey=eV.gravityx;ev=eV.gravityy}var eF=0;var eD=0;if(this.ws1.fluidEnabled&&this.ws2.fluidEnabled){var eN=this.overlap*this.ws1.fluidProperties.density;var eK=this.overlap*this.ws2.fluidProperties.density;if(eN>eK){var eU=eN+eK;eF-=eY*eU;eD-=eW*eU}else{if(eN<eK){var eM=eN+eK;eF+=ey*eM;eD+=ev*eM}else{var ej=0;var eh=0;ej=eY+ey;eh=eW+ev;ej*=0.5;eh*=0.5;if(this.ws1.worldCOMx*ej+this.ws1.worldCOMy*eh>this.ws2.worldCOMx*ej+this.ws2.worldCOMy*eh){var eJ=eN+eK;eF-=ej*eJ;eD-=eh*eJ}else{var eG=eN+eK;eF+=ej*eG;eD+=eh*eG}}}}else{if(this.ws1.fluidEnabled){var eT=this.overlap*this.ws1.fluidProperties.density;eF-=eY*eT;eD-=eW*eT}else{if(this.ws2.fluidEnabled){var eH=this.overlap*this.ws2.fluidProperties.density;eF+=ey*eH;eD+=ev*eH}}}eF*=ek;eD*=ek;this.buoyx=eF;this.buoyy=eD;if(this.b1.type==2){var eE=this.b1.imass;this.b1.velx-=eF*eE;this.b1.vely-=eD*eE;this.b1.angvel-=(eD*this.r1x-eF*this.r1y)*this.b1.iinertia}if(this.b2.type==2){var eC=this.b2.imass;this.b2.velx+=eF*eC;this.b2.vely+=eD*eC;this.b2.angvel+=(eD*this.r2x-eF*this.r2y)*this.b2.iinertia}if((!this.ws1.fluidEnabled||this.ws1.fluidProperties.viscosity==0)&&(!this.ws2.fluidEnabled||this.ws2.fluidProperties.viscosity==0)){this.nodrag=true;this.dampx=0;this.dampy=0;this.adamp=0}else{this.nodrag=false;var e1=0;if(this.ws1.fluidEnabled){this.ws2.validate_angDrag();e1=this.ws1.fluidProperties.viscosity*this.ws2.angDrag*this.overlap/this.ws2.area}if(this.ws2.fluidEnabled){this.ws1.validate_angDrag();e1+=this.ws2.fluidProperties.viscosity*this.ws1.angDrag*this.overlap/this.ws1.area}if(e1!=0){var el=this.b1.sinertia+this.b2.sinertia;if(el!=0){this.wMass=1/el}else{this.wMass=0}e1*=0.0004;var ea=2*Math.PI*e1;this.agamma=1/(ek*ea*(2+ea*ek));var eO=1/(1+this.agamma);this.agamma*=eO;this.wMass*=eO}else{this.wMass=0;this.agamma=0}var ef=this.b2.velx+this.b2.kinvelx-this.r2y*(this.b2.angvel+this.b2.kinangvel)-(this.b1.velx+this.b1.kinvelx-this.r1y*(this.b2.angvel+this.b2.kinangvel));var ee=this.b2.vely+this.b2.kinvely+this.r2x*(this.b2.angvel+this.b2.kinangvel)-(this.b1.vely+this.b1.kinvely+this.r1x*(this.b1.angvel+this.b1.kinangvel));if(!(ef*ef+ee*ee<P.epsilon*P.epsilon)){var eQ=1/Math.sqrt(ef*ef+ee*ee);ef*=eQ;ee*=eQ;this.nx=ef;this.ny=ee}var e3=0;if(this.ws1.fluidEnabled){var e2=-this.ws1.fluidProperties.viscosity*this.overlap/this.ws2.area;if(this.ws2.type==0){e3=0-e2*this.ws2.circle.radius*P.fluidLinearDrag/(2*this.ws2.circle.radius*Math.PI)}else{var eI=this.ws2.polygon;var ei=0;var es=0;var em=eI.edges.head;while(em!=null){var eS=em.elt;ei+=eS.length;var eg=e2*eS.length*(eS.gnormx*this.nx+eS.gnormy*this.ny);if(eg>0){eg*=-P.fluidVacuumDrag;eg=eg}es-=eg*0.5*P.fluidLinearDrag;em=em.next}e3=es/ei}}if(this.ws2.fluidEnabled){var en=-this.ws2.fluidProperties.viscosity*this.overlap/this.ws1.area;if(this.ws1.type==0){e3-=en*this.ws1.circle.radius*P.fluidLinearDrag/(2*this.ws1.circle.radius*Math.PI)}else{var er=this.ws1.polygon;var eq=0;var eA=0;var ep=er.edges.head;while(ep!=null){var eL=ep.elt;eq+=eL.length;var ed=en*eL.length*(eL.gnormx*this.nx+eL.gnormy*this.ny);if(ed>0){ed*=-P.fluidVacuumDrag;ed=ed}eA-=ed*0.5*P.fluidLinearDrag;ep=ep.next}e3+=eA/eq}}if(e3!=0){var eZ=this.b1.smass+this.b2.smass;var ez=0;var ew=0;var eu=0;ez=eZ;ew=0;eu=eZ;if(this.b1.sinertia!=0){var ec=this.r1x*this.b1.sinertia;var eb=this.r1y*this.b1.sinertia;ez=eZ+eb*this.r1y;ew+=-eb*this.r1x;eu=eZ+ec*this.r1x}if(this.b2.sinertia!=0){var eR=this.r2x*this.b2.sinertia;var et=this.r2y*this.b2.sinertia;ez+=et*this.r2y;ew+=-et*this.r2x;eu+=eR*this.r2x}var eo=ez*eu-ew*ew;if(eo!=eo){eu=0;ew=eu;ez=ew}else{if(eo==0){if(ez!=0){ez=1/ez}else{ez=0}if(eu!=0){eu=1/eu}else{eu=0}ew=0}else{eo=1/eo;var eB=eu*eo;eu=ez*eo;ez=eB;ew*=-eo}}this.vMassa=ez;this.vMassb=ew;this.vMassc=eu;var eX=2*Math.PI*e3;this.lgamma=1/(ek*eX*(2+eX*ek));var eP=1/(1+this.lgamma);this.lgamma*=eP;this.vMassa*=eP;this.vMassb*=eP;this.vMassc*=eP}else{this.vMassa=0;this.vMassb=0;this.vMassc=0;this.lgamma=0}}this.dampx*=e0;this.dampy*=e0;this.adamp*=e0};dK.prototype.warmStart=function(){var ea=this.b1.imass;this.b1.velx-=this.dampx*ea;this.b1.vely-=this.dampy*ea;var eb=this.b2.imass;this.b2.velx+=this.dampx*eb;this.b2.vely+=this.dampy*eb;this.b1.angvel-=this.b1.iinertia*(this.dampy*this.r1x-this.dampx*this.r1y);this.b2.angvel+=this.b2.iinertia*(this.dampy*this.r2x-this.dampx*this.r2y);this.b1.angvel-=this.adamp*this.b1.iinertia;this.b2.angvel+=this.adamp*this.b2.iinertia};dK.prototype.applyImpulseVel=function(){if(!this.nodrag){var ee=this.b1.angvel+this.b1.kinangvel;var eb=this.b2.angvel+this.b2.kinangvel;var eh=this.b1.velx+this.b1.kinvelx-this.r1y*ee-(this.b2.velx+this.b2.kinvelx-this.r2y*eb);var eg=this.b1.vely+this.b1.kinvely+this.r1x*ee-(this.b2.vely+this.b2.kinvely+this.r2x*eb);var ei=this.vMassa*eh+this.vMassb*eg;eg=this.vMassb*eh+this.vMassc*eg;eh=ei;var ef=this.lgamma;eh-=this.dampx*ef;eg-=this.dampy*ef;this.dampx+=eh;this.dampy+=eg;var ed=this.b1.imass;this.b1.velx-=eh*ed;this.b1.vely-=eg*ed;var ea=this.b2.imass;this.b2.velx+=eh*ea;this.b2.vely+=eg*ea;this.b1.angvel-=this.b1.iinertia*(eg*this.r1x-eh*this.r1y);this.b2.angvel+=this.b2.iinertia*(eg*this.r2x-eh*this.r2y);var ec=(ee-eb)*this.wMass-this.adamp*this.agamma;this.adamp+=ec;this.b1.angvel-=ec*this.b1.iinertia;this.b2.angvel+=ec*this.b2.iinertia}};dK.prototype.__class__=dK;var d9=zpp_nape.dynamics.ZPP_ColArbiter=function(){this.pre_dt=0;this.mutable=false;this.stat=false;this.next=null;this.hpc2=false;this.hc2=false;this.oc2=null;this.c2=null;this.oc1=null;this.c1=null;this.__ref_vertex=0;this.__ref_edge2=null;this.__ref_edge1=null;this.biasCoef=0;this.rev=false;this.radius=0;this.lproj=0;this.lnormy=0;this.lnormx=0;this.surfacey=0;this.surfacex=0;this.k2y=0;this.k2x=0;this.k1y=0;this.k1x=0;this.rt2b=0;this.rn2b=0;this.rt2a=0;this.rn2a=0;this.rt1b=0;this.rn1b=0;this.rt1a=0;this.rn1a=0;this.jrAcc=0;this.rMass=0;this.Kc=0;this.Kb=0;this.Ka=0;this.kMassc=0;this.kMassb=0;this.kMassa=0;this.wrap_normal=null;this.ny=0;this.nx=0;this.innards=null;this.wrap_contacts=null;this.contacts=null;this.s2=null;this.s1=null;this.userdef_rfric=false;this.userdef_restitution=false;this.userdef_stat_fric=false;this.userdef_dyn_fric=false;this.rfric=0;this.restitution=0;this.stat_fric=0;this.dyn_fric=0;this.outer_zn=null;j.call(this);this.pre_dt=-1;this.contacts=new c2();this.innards=new I();this.type=j.COL;this.colarb=this};d9.__name__=["zpp_nape","dynamics","ZPP_ColArbiter"];d9.__super__=j;d9.prototype=Object.create(j.prototype);d9.prototype.outer_zn=null;d9.prototype.dyn_fric=null;d9.prototype.stat_fric=null;d9.prototype.restitution=null;d9.prototype.rfric=null;d9.prototype.userdef_dyn_fric=null;d9.prototype.userdef_stat_fric=null;d9.prototype.userdef_restitution=null;d9.prototype.userdef_rfric=null;d9.prototype.s1=null;d9.prototype.s2=null;d9.prototype.contacts=null;d9.prototype.wrap_contacts=null;d9.prototype.innards=null;d9.prototype.nx=null;d9.prototype.ny=null;d9.prototype.normal_validate=function(){if(this.cleared){throw new cE("Error: Arbiter not currently in use")}this.wrap_normal.zpp_inner.x=this.nx;this.wrap_normal.zpp_inner.y=this.ny;if(this.ws1.id>this.ws2.id){this.wrap_normal.zpp_inner.x=-this.wrap_normal.zpp_inner.x;this.wrap_normal.zpp_inner.y=-this.wrap_normal.zpp_inner.y}};d9.prototype.wrap_normal=null;d9.prototype.getnormal=function(){var ea;if(au.poolVec2==null){ea=new r()}else{ea=au.poolVec2;au.poolVec2=ea.zpp_pool;ea.zpp_pool=null}if(ea.zpp_inner==null){var ee;if(bB.zpp_pool==null){ee=new bB()}else{ee=bB.zpp_pool;bB.zpp_pool=ee.next;ee.next=null}ee.weak=false;ee._immutable=false;ee.x=0;ee.y=0;ea.zpp_inner=ee;ea.zpp_inner.outer=ea}else{var eb;var ef=ea.zpp_inner;if(ef._validate!=null){ef._validate()}if(ea.zpp_inner.x==0){var ed=ea.zpp_inner;if(ed._validate!=null){ed._validate()}eb=ea.zpp_inner.y==0}else{eb=false}if(!eb){ea.zpp_inner.x=0;ea.zpp_inner.y=0;var ec=ea.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}}ea.zpp_inner.weak=false;this.wrap_normal=ea;this.wrap_normal.zpp_inner._immutable=true;this.wrap_normal.zpp_inner._inuse=true;this.wrap_normal.zpp_inner._validate=dX(this,this.normal_validate)};d9.prototype.kMassa=null;d9.prototype.kMassb=null;d9.prototype.kMassc=null;d9.prototype.Ka=null;d9.prototype.Kb=null;d9.prototype.Kc=null;d9.prototype.rMass=null;d9.prototype.jrAcc=null;d9.prototype.rn1a=null;d9.prototype.rt1a=null;d9.prototype.rn1b=null;d9.prototype.rt1b=null;d9.prototype.rn2a=null;d9.prototype.rt2a=null;d9.prototype.rn2b=null;d9.prototype.rt2b=null;d9.prototype.k1x=null;d9.prototype.k1y=null;d9.prototype.k2x=null;d9.prototype.k2y=null;d9.prototype.surfacex=null;d9.prototype.surfacey=null;d9.prototype.ptype=null;d9.prototype.lnormx=null;d9.prototype.lnormy=null;d9.prototype.lproj=null;d9.prototype.radius=null;d9.prototype.rev=null;d9.prototype.biasCoef=null;d9.prototype.__ref_edge1=null;d9.prototype.__ref_edge2=null;d9.prototype.__ref_vertex=null;d9.prototype.c1=null;d9.prototype.oc1=null;d9.prototype.c2=null;d9.prototype.oc2=null;d9.prototype.hc2=null;d9.prototype.hpc2=null;d9.prototype.next=null;d9.prototype.alloc=function(){};d9.prototype.free=function(){this.userdef_dyn_fric=false;this.userdef_stat_fric=false;this.userdef_restitution=false;this.userdef_rfric=false;this.__ref_edge1=this.__ref_edge2=null};d9.prototype.stat=null;d9.prototype.injectContact=function(ej,ei,ee,ed,eh,ec,ea){if(ea==null){ea=false}var eg=null;var eb=this.contacts.next;while(eb!=null){var ek=eb;if(ec==ek.hash){eg=ek;break}eb=eb.next}if(eg==null){if(c2.zpp_pool==null){eg=new c2()}else{eg=c2.zpp_pool;c2.zpp_pool=eg.next;eg.next=null}var em=eg.inner;em.jnAcc=em.jtAcc=0;eg.hash=ec;eg.fresh=true;eg.arbiter=this;this.jrAcc=0;var ef=this.contacts;eg._inuse=true;var el=eg;el.next=ef.next;ef.next=el;ef.modified=true;ef.length++;this.innards.add(em)}else{eg.fresh=false}eg.px=ej;eg.py=ei;this.nx=ee;this.ny=ed;eg.dist=eh;eg.stamp=this.stamp;eg.posOnly=ea;return eg};d9.prototype.assign=function(ei,eh,ea,ef){this.b1=ei.body;this.ws1=ei;this.b2=eh.body;this.ws2=eh;this.id=ea;this.di=ef;var ec=this.b1.arbiters;var ed;if(dL.zpp_pool==null){ed=new dL()}else{ed=dL.zpp_pool;dL.zpp_pool=ed.next;ed.next=null}ed.elt=this;var ej=ed;ej.next=ec.head;ec.head=ej;ec.modified=true;ec.length++;var ee=this.b2.arbiters;var eg;if(dL.zpp_pool==null){eg=new dL()}else{eg=dL.zpp_pool;dL.zpp_pool=eg.next;eg.next=null}eg.elt=this;var eb=eg;eb.next=ee.head;ee.head=eb;ee.modified=true;ee.length++;this.active=true;this.present=0;this.cleared=false;this.sleeping=false;this.fresh=false;this.presentable=false;this.s1=ei;this.s2=eh;if(!this.userdef_restitution){if(this.s1.material.elasticity<=-Infinity||this.s2.material.elasticity<=-Infinity){this.restitution=0}else{if(this.s1.material.elasticity>=Infinity||this.s2.material.elasticity>=Infinity){this.restitution=1}else{this.restitution=(this.s1.material.elasticity+this.s2.material.elasticity)/2}}if(this.restitution<0){this.restitution=0}if(this.restitution>1){this.restitution=1}}if(!this.userdef_dyn_fric){this.dyn_fric=Math.sqrt(this.s1.material.dynamicFriction*this.s2.material.dynamicFriction)}if(!this.userdef_stat_fric){this.stat_fric=Math.sqrt(this.s1.material.staticFriction*this.s2.material.staticFriction)}if(!this.userdef_rfric){this.rfric=Math.sqrt(this.s1.material.rollingFriction*this.s2.material.rollingFriction)}};d9.prototype.calcProperties=function(){if(!this.userdef_restitution){if(this.s1.material.elasticity<=-Infinity||this.s2.material.elasticity<=-Infinity){this.restitution=0}else{if(this.s1.material.elasticity>=Infinity||this.s2.material.elasticity>=Infinity){this.restitution=1}else{this.restitution=(this.s1.material.elasticity+this.s2.material.elasticity)/2}}if(this.restitution<0){this.restitution=0}if(this.restitution>1){this.restitution=1}}if(!this.userdef_dyn_fric){this.dyn_fric=Math.sqrt(this.s1.material.dynamicFriction*this.s2.material.dynamicFriction)}if(!this.userdef_stat_fric){this.stat_fric=Math.sqrt(this.s1.material.staticFriction*this.s2.material.staticFriction)}if(!this.userdef_rfric){this.rfric=Math.sqrt(this.s1.material.rollingFriction*this.s2.material.rollingFriction)}};d9.prototype.validate_props=function(){if(this.invalidated){this.invalidated=false;if(!this.userdef_restitution){if(this.s1.material.elasticity<=-Infinity||this.s2.material.elasticity<=-Infinity){this.restitution=0}else{if(this.s1.material.elasticity>=Infinity||this.s2.material.elasticity>=Infinity){this.restitution=1}else{this.restitution=(this.s1.material.elasticity+this.s2.material.elasticity)/2}}if(this.restitution<0){this.restitution=0}if(this.restitution>1){this.restitution=1}}if(!this.userdef_dyn_fric){this.dyn_fric=Math.sqrt(this.s1.material.dynamicFriction*this.s2.material.dynamicFriction)}if(!this.userdef_stat_fric){this.stat_fric=Math.sqrt(this.s1.material.staticFriction*this.s2.material.staticFriction)}if(!this.userdef_rfric){this.rfric=Math.sqrt(this.s1.material.rollingFriction*this.s2.material.rollingFriction)}}};d9.prototype.retire=function(){if(!this.cleared){var eh=this.b1.arbiters;var ef=null;var eq=eh.head;while(eq!=null){if(eq.elt==this){var ec;var ek;if(ef==null){ec=eh.head;ek=ec.next;eh.head=ek;if(eh.head==null){eh.pushmod=true}}else{ec=ef.next;ek=ec.next;ef.next=ek;if(ek==null){eh.pushmod=true}}var ea=ec;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;eh.modified=true;eh.length--;eh.pushmod=true;break}ef=eq;eq=eq.next}var em=this.b2.arbiters;var ee=null;var ep=em.head;while(ep!=null){if(ep.elt==this){var ej;var eo;if(ee==null){ej=em.head;eo=ej.next;em.head=eo;if(em.head==null){em.pushmod=true}}else{ej=ee.next;eo=ej.next;ee.next=eo;if(eo==null){em.pushmod=true}}var ed=ej;ed.elt=null;ed.next=dL.zpp_pool;dL.zpp_pool=ed;em.modified=true;em.length--;em.pushmod=true;break}ee=ep;ep=ep.next}if(this.pair!=null){this.pair.arb=null;this.pair=null}}this.b1=this.b2=null;this.active=false;this.intchange=false;while(this.contacts.next!=null){var ei=this.contacts;var en=ei.next;ei.pop();en.arbiter=null;en.next=c2.zpp_pool;c2.zpp_pool=en;var eg=this.innards;var el=eg.next;eg.next=el.next;el._inuse=false;if(eg.next==null){eg.pushmod=true}eg.modified=true;eg.length--}var eb=this;eb.userdef_dyn_fric=false;eb.userdef_stat_fric=false;eb.userdef_restitution=false;eb.userdef_rfric=false;eb.__ref_edge1=eb.__ref_edge2=null;eb.next=d9.zpp_pool;d9.zpp_pool=eb;this.pre_dt=-1};d9.prototype.mutable=null;d9.prototype.makemutable=function(){this.mutable=true;if(this.wrap_normal!=null){this.wrap_normal.zpp_inner._immutable=false}if(this.wrap_contacts!=null){this.wrap_contacts.zpp_inner.immutable=false}};d9.prototype.makeimmutable=function(){this.mutable=false;if(this.wrap_normal!=null){this.wrap_normal.zpp_inner._immutable=true}if(this.wrap_contacts!=null){this.wrap_contacts.zpp_inner.immutable=true}};d9.prototype.contacts_adder=function(ea){return false};d9.prototype.contacts_subber=function(ea){var ee=null;var ed=null;var ec=this.innards.next;var eb=this.contacts.next;while(eb!=null){var ef=eb;if(ef==ea.zpp_inner){this.contacts.erase(ee);this.innards.erase(ed);ef.arbiter=null;ef.next=c2.zpp_pool;c2.zpp_pool=ef;break}ee=eb;ed=ec;ec=ec.next;eb=eb.next}};d9.prototype.setupcontacts=function(){this.wrap_contacts=aB.get(this.contacts,true);this.wrap_contacts.zpp_inner.immutable=!this.mutable;this.wrap_contacts.zpp_inner.adder=dX(this,this.contacts_adder);this.wrap_contacts.zpp_inner.dontremove=true;this.wrap_contacts.zpp_inner.subber=dX(this,this.contacts_subber)};d9.prototype.cleanupContacts=function(){var ea=true;var ee=null;var eo=null;var eg=this.innards.next;this.hc2=false;var ec=this.contacts.next;while(ec!=null){var em=ec;if(em.stamp+P.arbiterExpirationDelay<this.stamp){var ei=this.contacts;var eb;var ek;if(ee==null){eb=ei.next;ek=eb.next;ei.next=ek;if(ei.next==null){ei.pushmod=true}}else{eb=ee.next;ek=eb.next;ee.next=ek;if(ek==null){ei.pushmod=true}}eb._inuse=false;ei.modified=true;ei.length--;ei.pushmod=true;ec=ek;var el=this.innards;var ej;var en;if(eo==null){ej=el.next;en=ej.next;el.next=en;if(el.next==null){el.pushmod=true}}else{ej=eo.next;en=ej.next;eo.next=en;if(en==null){el.pushmod=true}}ej._inuse=false;el.modified=true;el.length--;el.pushmod=true;eg=en;em.arbiter=null;em.next=c2.zpp_pool;c2.zpp_pool=em;continue}var ep=em.inner;var ef=em.active;em.active=em.stamp==this.stamp;if(em.active){if(ea){ea=false;this.c1=ep;this.oc1=em}else{this.hc2=true;this.c2=ep;this.oc2=em}}if(ef!=em.active){this.contacts.modified=true}ee=ec;eo=eg;eg=eg.next;ec=ec.next}if(this.hc2){this.hpc2=true;if(this.oc1.posOnly){var eh=this.c1;this.c1=this.c2;this.c2=eh;var ed=this.oc1;this.oc1=this.oc2;this.oc2=ed;this.hc2=false}else{if(this.oc2.posOnly){this.hc2=false}}if(this.oc1.posOnly){ea=true}}else{this.hpc2=false}return ea};d9.prototype.pre_dt=null;d9.prototype.preStep=function(eq){if(this.invalidated){this.invalidated=false;if(!this.userdef_restitution){if(this.s1.material.elasticity<=-Infinity||this.s2.material.elasticity<=-Infinity){this.restitution=0}else{if(this.s1.material.elasticity>=Infinity||this.s2.material.elasticity>=Infinity){this.restitution=1}else{this.restitution=(this.s1.material.elasticity+this.s2.material.elasticity)/2}}if(this.restitution<0){this.restitution=0}if(this.restitution>1){this.restitution=1}}if(!this.userdef_dyn_fric){this.dyn_fric=Math.sqrt(this.s1.material.dynamicFriction*this.s2.material.dynamicFriction)}if(!this.userdef_stat_fric){this.stat_fric=Math.sqrt(this.s1.material.staticFriction*this.s2.material.staticFriction)}if(!this.userdef_rfric){this.rfric=Math.sqrt(this.s1.material.rollingFriction*this.s2.material.rollingFriction)}}if(this.pre_dt==-1){this.pre_dt=eq}var et=eq/this.pre_dt;this.pre_dt=eq;var em=this.b1.smass+this.b2.smass;this.hc2=false;var eb=true;this.biasCoef=this.b1.type!=2||this.b2.type!=2?this.continuous?P.contactContinuousStaticBiasCoef:P.contactStaticBiasCoef:this.continuous?P.contactContinuousBiasCoef:P.contactBiasCoef;this.continuous=false;var er=null;var eB=null;var ej=this.innards.next;var eu=this.contacts.next;while(eu!=null){var eC=eu;if(eC.stamp+P.arbiterExpirationDelay<this.stamp){var ev=this.contacts;var ea;var eG;if(er==null){ea=ev.next;eG=ea.next;ev.next=eG;if(ev.next==null){ev.pushmod=true}}else{ea=er.next;eG=ea.next;er.next=eG;if(eG==null){ev.pushmod=true}}ea._inuse=false;ev.modified=true;ev.length--;ev.pushmod=true;eu=eG;var ez=this.innards;var ef;var eg;if(eB==null){ef=ez.next;eg=ef.next;ez.next=eg;if(ez.next==null){ez.pushmod=true}}else{ef=eB.next;eg=ef.next;eB.next=eg;if(eg==null){ez.pushmod=true}}ef._inuse=false;ez.modified=true;ez.length--;ez.pushmod=true;ej=eg;eC.arbiter=null;eC.next=c2.zpp_pool;c2.zpp_pool=eC;continue}var ek=eC.inner;var ep=eC.active;eC.active=eC.stamp==this.stamp;if(eC.active){if(eb){eb=false;this.c1=ek;this.oc1=eC}else{this.hc2=true;this.c2=ek;this.oc2=eC}ek.r2x=eC.px-this.b2.posx;ek.r2y=eC.py-this.b2.posy;ek.r1x=eC.px-this.b1.posx;ek.r1y=eC.py-this.b1.posy;var ei=ek.r2x*this.nx+ek.r2y*this.ny;var eE=em+this.b2.sinertia*(ei*ei);var ey=ek.r1x*this.nx+ek.r1y*this.ny;eE+=this.b1.sinertia*(ey*ey);ek.tMass=eE<P.epsilon*P.epsilon?0:1/eE;var ex=this.ny*ek.r2x-this.nx*ek.r2y;var eF=em+this.b2.sinertia*(ex*ex);var ew=this.ny*ek.r1x-this.nx*ek.r1y;eF+=this.b1.sinertia*(ew*ew);ek.nMass=eF<P.epsilon*P.epsilon?0:1/eF;var eo=0;var el=0;var eD=this.b2.angvel+this.b2.kinangvel;eo=this.b2.velx+this.b2.kinvelx-ek.r2y*eD;el=this.b2.vely+this.b2.kinvely+ek.r2x*eD;eD=this.b1.angvel+this.b1.kinangvel;eo-=this.b1.velx+this.b1.kinvelx-ek.r1y*eD;el-=this.b1.vely+this.b1.kinvely+ek.r1x*eD;var ed=this.nx*eo+this.ny*el;eC.elasticity=this.restitution;ek.bounce=ed*eC.elasticity;if(ek.bounce>-P.elasticThreshold){ek.bounce=0}ed=el*this.nx-eo*this.ny;var ec=P.staticFrictionThreshold;if(ed*ed>ec*ec){ek.friction=this.dyn_fric}else{ek.friction=this.stat_fric}ek.jnAcc*=et;ek.jtAcc*=et}if(ep!=eC.active){this.contacts.modified=true}er=eu;eB=ej;ej=ej.next;eu=eu.next}if(this.hc2){this.hpc2=true;if(this.oc1.posOnly){var eA=this.c1;this.c1=this.c2;this.c2=eA;var es=this.oc1;this.oc1=this.oc2;this.oc2=es;this.hc2=false}else{if(this.oc2.posOnly){this.hc2=false}}if(this.oc1.posOnly){eb=true}}else{this.hpc2=false}this.jrAcc*=et;if(!eb){this.rn1a=this.ny*this.c1.r1x-this.nx*this.c1.r1y;this.rt1a=this.c1.r1x*this.nx+this.c1.r1y*this.ny;this.rn1b=this.ny*this.c1.r2x-this.nx*this.c1.r2y;this.rt1b=this.c1.r2x*this.nx+this.c1.r2y*this.ny;this.k1x=this.b2.kinvelx-this.c1.r2y*this.b2.kinangvel-(this.b1.kinvelx-this.c1.r1y*this.b1.kinangvel);this.k1y=this.b2.kinvely+this.c1.r2x*this.b2.kinangvel-(this.b1.kinvely+this.c1.r1x*this.b1.kinangvel)}if(this.hc2){this.rn2a=this.ny*this.c2.r1x-this.nx*this.c2.r1y;this.rt2a=this.c2.r1x*this.nx+this.c2.r1y*this.ny;this.rn2b=this.ny*this.c2.r2x-this.nx*this.c2.r2y;this.rt2b=this.c2.r2x*this.nx+this.c2.r2y*this.ny;this.k2x=this.b2.kinvelx-this.c2.r2y*this.b2.kinangvel-(this.b1.kinvelx-this.c2.r1y*this.b1.kinangvel);this.k2y=this.b2.kinvely+this.c2.r2x*this.b2.kinangvel-(this.b1.kinvely+this.c2.r1x*this.b1.kinangvel);this.kMassa=em+this.b1.sinertia*this.rn1a*this.rn1a+this.b2.sinertia*this.rn1b*this.rn1b;this.kMassb=em+this.b1.sinertia*this.rn1a*this.rn2a+this.b2.sinertia*this.rn1b*this.rn2b;this.kMassc=em+this.b1.sinertia*this.rn2a*this.rn2a+this.b2.sinertia*this.rn2b*this.rn2b;if(this.kMassa*this.kMassa+2*this.kMassb*this.kMassb+this.kMassc*this.kMassc<P.illConditionedThreshold*(this.kMassa*this.kMassc-this.kMassb*this.kMassb)){this.Ka=this.kMassa;this.Kb=this.kMassb;this.Kc=this.kMassc;var ee=this.kMassa*this.kMassc-this.kMassb*this.kMassb;if(ee!=ee){this.kMassa=this.kMassb=this.kMassc=0}else{if(ee==0){if(this.kMassa!=0){this.kMassa=1/this.kMassa}else{this.kMassa=0}if(this.kMassc!=0){this.kMassc=1/this.kMassc}else{this.kMassc=0}this.kMassb=0}else{ee=1/ee;var en=this.kMassc*ee;this.kMassc=this.kMassa*ee;this.kMassa=en;this.kMassb*=-ee}}}else{this.hc2=false;if(this.oc2.dist<this.oc1.dist){var eh=this.c1;this.c1=this.c2;this.c2=eh}this.oc2.active=false;this.contacts.modified=true}}this.surfacex=this.b2.svelx;this.surfacey=this.b2.svely;this.surfacex+=this.b1.svelx;this.surfacey+=this.b1.svely;this.surfacex=-this.surfacex;this.surfacey=-this.surfacey;this.rMass=this.b1.sinertia+this.b2.sinertia;if(this.rMass!=0){this.rMass=1/this.rMass}return eb};d9.prototype.warmStart=function(){var eb=this.nx*this.c1.jnAcc-this.ny*this.c1.jtAcc;var ea=this.ny*this.c1.jnAcc+this.nx*this.c1.jtAcc;var ed=this.b1.imass;this.b1.velx-=eb*ed;this.b1.vely-=ea*ed;this.b1.angvel-=this.b1.iinertia*(ea*this.c1.r1x-eb*this.c1.r1y);var ef=this.b2.imass;this.b2.velx+=eb*ef;this.b2.vely+=ea*ef;this.b2.angvel+=this.b2.iinertia*(ea*this.c1.r2x-eb*this.c1.r2y);if(this.hc2){var eg=this.nx*this.c2.jnAcc-this.ny*this.c2.jtAcc;var eh=this.ny*this.c2.jnAcc+this.nx*this.c2.jtAcc;var ee=this.b1.imass;this.b1.velx-=eg*ee;this.b1.vely-=eh*ee;this.b1.angvel-=this.b1.iinertia*(eh*this.c2.r1x-eg*this.c2.r1y);var ec=this.b2.imass;this.b2.velx+=eg*ec;this.b2.vely+=eh*ec;this.b2.angvel+=this.b2.iinertia*(eh*this.c2.r2x-eg*this.c2.r2y)}this.b2.angvel+=this.jrAcc*this.b2.iinertia;this.b1.angvel-=this.jrAcc*this.b1.iinertia};d9.prototype.applyImpulseVel=function(){var em;var el;var eg;var ed;var ek;var ee;var eh=this.k1x+this.b2.velx-this.c1.r2y*this.b2.angvel-(this.b1.velx-this.c1.r1y*this.b1.angvel);var ef=this.k1y+this.b2.vely+this.c1.r2x*this.b2.angvel-(this.b1.vely+this.c1.r1x*this.b1.angvel);eg=(ef*this.nx-eh*this.ny+this.surfacex)*this.c1.tMass;ed=this.c1.friction*this.c1.jnAcc;ek=this.c1.jtAcc;ee=ek-eg;if(ee>ed){ee=ed}else{if(ee<-ed){ee=-ed}}eg=ee-ek;this.c1.jtAcc=ee;em=-this.ny*eg;el=this.nx*eg;this.b2.velx+=em*this.b2.imass;this.b2.vely+=el*this.b2.imass;this.b1.velx-=em*this.b1.imass;this.b1.vely-=el*this.b1.imass;this.b2.angvel+=this.rt1b*eg*this.b2.iinertia;this.b1.angvel-=this.rt1a*eg*this.b1.iinertia;if(this.hc2){var ec=this.k2x+this.b2.velx-this.c2.r2y*this.b2.angvel-(this.b1.velx-this.c2.r1y*this.b1.angvel);var ep=this.k2y+this.b2.vely+this.c2.r2x*this.b2.angvel-(this.b1.vely+this.c2.r1x*this.b1.angvel);eg=(ep*this.nx-ec*this.ny+this.surfacex)*this.c2.tMass;ed=this.c2.friction*this.c2.jnAcc;ek=this.c2.jtAcc;ee=ek-eg;if(ee>ed){ee=ed}else{if(ee<-ed){ee=-ed}}eg=ee-ek;this.c2.jtAcc=ee;em=-this.ny*eg;el=this.nx*eg;this.b2.velx+=em*this.b2.imass;this.b2.vely+=el*this.b2.imass;this.b1.velx-=em*this.b1.imass;this.b1.vely-=el*this.b1.imass;this.b2.angvel+=this.rt2b*eg*this.b2.iinertia;this.b1.angvel-=this.rt2a*eg*this.b1.iinertia;eh=this.k1x+this.b2.velx-this.c1.r2y*this.b2.angvel-(this.b1.velx-this.c1.r1y*this.b1.angvel);ef=this.k1y+this.b2.vely+this.c1.r2x*this.b2.angvel-(this.b1.vely+this.c1.r1x*this.b1.angvel);ec=this.k2x+this.b2.velx-this.c2.r2y*this.b2.angvel-(this.b1.velx-this.c2.r1y*this.b1.angvel);ep=this.k2y+this.b2.vely+this.c2.r2x*this.b2.angvel-(this.b1.vely+this.c2.r1x*this.b1.angvel);var eb=this.c1.jnAcc;var eo=this.c2.jnAcc;var ej=eh*this.nx+ef*this.ny+this.surfacey+this.c1.bounce-(this.Ka*eb+this.Kb*eo);var ei=ec*this.nx+ep*this.ny+this.surfacey+this.c2.bounce-(this.Kb*eb+this.Kc*eo);var ea=-(this.kMassa*ej+this.kMassb*ei);var en=-(this.kMassb*ej+this.kMassc*ei);if(ea>=0&&en>=0){ej=ea-eb;ei=en-eo;this.c1.jnAcc=ea;this.c2.jnAcc=en}else{ea=-this.c1.nMass*ej;if(ea>=0&&this.Kb*ea+ei>=0){ej=ea-eb;ei=-eo;this.c1.jnAcc=ea;this.c2.jnAcc=0}else{en=-this.c2.nMass*ei;if(en>=0&&this.Kb*en+ej>=0){ej=-eb;ei=en-eo;this.c1.jnAcc=0;this.c2.jnAcc=en}else{if(ej>=0&&ei>=0){ej=-eb;ei=-eo;this.c1.jnAcc=this.c2.jnAcc=0}else{ej=0;ei=0}}}}eg=ej+ei;em=this.nx*eg;el=this.ny*eg;this.b2.velx+=em*this.b2.imass;this.b2.vely+=el*this.b2.imass;this.b1.velx-=em*this.b1.imass;this.b1.vely-=el*this.b1.imass;this.b2.angvel+=(this.rn1b*ej+this.rn2b*ei)*this.b2.iinertia;this.b1.angvel-=(this.rn1a*ej+this.rn2a*ei)*this.b1.iinertia}else{if(this.radius!=0){eg=(this.b2.angvel-this.b1.angvel)*this.rMass;ed=this.rfric*this.c1.jnAcc;ek=this.jrAcc;this.jrAcc-=eg;if(this.jrAcc>ed){this.jrAcc=ed}else{if(this.jrAcc<-ed){this.jrAcc=-ed}}eg=this.jrAcc-ek;this.b2.angvel+=eg*this.b2.iinertia;this.b1.angvel-=eg*this.b1.iinertia}eh=this.k1x+this.b2.velx-this.c1.r2y*this.b2.angvel-(this.b1.velx-this.c1.r1y*this.b1.angvel);ef=this.k1y+this.b2.vely+this.c1.r2x*this.b2.angvel-(this.b1.vely+this.c1.r1x*this.b1.angvel);eg=(this.c1.bounce+(this.nx*eh+this.ny*ef)+this.surfacey)*this.c1.nMass;ek=this.c1.jnAcc;ee=ek-eg;if(ee<0){ee=0}eg=ee-ek;this.c1.jnAcc=ee;em=this.nx*eg;el=this.ny*eg;this.b2.velx+=em*this.b2.imass;this.b2.vely+=el*this.b2.imass;this.b1.velx-=em*this.b1.imass;this.b1.vely-=el*this.b1.imass;this.b2.angvel+=this.rn1b*eg*this.b2.iinertia;this.b1.angvel-=this.rn1a*eg*this.b1.iinertia}};d9.prototype.applyImpulsePos=function(){if(this.ptype==2){var fo=this.c1;var fK=0;var fJ=0;fK=this.b2.axisy*fo.lr2x-this.b2.axisx*fo.lr2y;fJ=fo.lr2x*this.b2.axisx+fo.lr2y*this.b2.axisy;fK+=this.b2.posx;fJ+=this.b2.posy;var fZ=0;var fY=0;fZ=this.b1.axisy*fo.lr1x-this.b1.axisx*fo.lr1y;fY=fo.lr1x*this.b1.axisx+fo.lr1y*this.b1.axisy;fZ+=this.b1.posx;fY+=this.b1.posy;var ew=0;var ev=0;ew=fK-fZ;ev=fJ-fY;var eF=Math.sqrt(ew*ew+ev*ev);var e1=this.radius-P.collisionSlop;var fM=eF-e1;if(ew*this.nx+ev*this.ny<0){ew=-ew;ev=-ev;fM-=this.radius}if(fM<0){if(eF<P.epsilon){if(this.b1.smass!=0){this.b1.posx+=P.epsilon*10}else{this.b2.posx+=P.epsilon*10}}else{var eZ=1/eF;ew*=eZ;ev*=eZ;var eE=0.5*(fZ+fK);var eD=0.5*(fY+fJ);var ft=eF-e1;fZ=eE-this.b1.posx;fY=eD-this.b1.posy;fK=eE-this.b2.posx;fJ=eD-this.b2.posy;var eO=ev*fZ-ew*fY;var eM=ev*fK-ew*fJ;var fI=this.b2.smass+eM*eM*this.b2.sinertia+this.b1.smass+eO*eO*this.b1.sinertia;if(fI!=0){var eG=-this.biasCoef*ft/fI;var eX=0;var eW=0;eX=ew*eG;eW=ev*eG;var gd=this.b1.imass;this.b1.posx-=eX*gd;this.b1.posy-=eW*gd;var eH=this.b1;var eA=-eO*this.b1.iinertia*eG;eH.rot+=eA;if(eA*eA>0.0001){eH.axisx=Math.sin(eH.rot);eH.axisy=Math.cos(eH.rot)}else{var fs=eA*eA;var e4=1-0.5*fs;var e8=1-fs*fs/8;var fu=(e4*eH.axisx+eA*eH.axisy)*e8;eH.axisy=(e4*eH.axisy-eA*eH.axisx)*e8;eH.axisx=fu}var gc=this.b2.imass;this.b2.posx+=eX*gc;this.b2.posy+=eW*gc;var fc=this.b2;var eu=eM*this.b2.iinertia*eG;fc.rot+=eu;if(eu*eu>0.0001){fc.axisx=Math.sin(fc.rot);fc.axisy=Math.cos(fc.rot)}else{var fr=eu*eu;var fF=1-0.5*fr;var ei=1-fr*fr/8;var fX=(fF*fc.axisx+eu*fc.axisy)*ei;fc.axisy=(fF*fc.axisy-eu*fc.axisx)*ei;fc.axisx=fX}}}}}else{var eV=0;var eU=0;var eY;var fN=0;var fL=0;var fG=0;var fE=0;if(this.ptype==0){eV=this.b1.axisy*this.lnormx-this.b1.axisx*this.lnormy;eU=this.lnormx*this.b1.axisx+this.lnormy*this.b1.axisy;eY=this.lproj+(eV*this.b1.posx+eU*this.b1.posy);fN=this.b2.axisy*this.c1.lr1x-this.b2.axisx*this.c1.lr1y;fL=this.c1.lr1x*this.b2.axisx+this.c1.lr1y*this.b2.axisy;fN+=this.b2.posx;fL+=this.b2.posy;if(this.hpc2){fG=this.b2.axisy*this.c2.lr1x-this.b2.axisx*this.c2.lr1y;fE=this.c2.lr1x*this.b2.axisx+this.c2.lr1y*this.b2.axisy;fG+=this.b2.posx;fE+=this.b2.posy}}else{eV=this.b2.axisy*this.lnormx-this.b2.axisx*this.lnormy;eU=this.lnormx*this.b2.axisx+this.lnormy*this.b2.axisy;eY=this.lproj+(eV*this.b2.posx+eU*this.b2.posy);fN=this.b1.axisy*this.c1.lr1x-this.b1.axisx*this.c1.lr1y;fL=this.c1.lr1x*this.b1.axisx+this.c1.lr1y*this.b1.axisy;fN+=this.b1.posx;fL+=this.b1.posy;if(this.hpc2){fG=this.b1.axisy*this.c2.lr1x-this.b1.axisx*this.c2.lr1y;fE=this.c2.lr1x*this.b1.axisx+this.c2.lr1y*this.b1.axisy;fG+=this.b1.posx;fE+=this.b1.posy}}var eL=fN*eV+fL*eU-eY-this.radius;eL+=P.collisionSlop;var eJ=0;if(this.hpc2){eJ=fG*eV+fE*eU-eY-this.radius;eJ+=P.collisionSlop}if(eL<0||eJ<0){if(this.rev){eV=-eV;eU=-eU}var fi=0;var ff=0;fi=fN-this.b1.posx;ff=fL-this.b1.posy;var eK=0;var eI=0;eK=fN-this.b2.posx;eI=fL-this.b2.posy;var fq=0;var fn=0;var eT=0;var eR=0;if(this.hpc2){fq=fG-this.b1.posx;fn=fE-this.b1.posy;eT=fG-this.b2.posx;eR=fE-this.b2.posy;var en=eU*fi-eV*ff;var el=eU*eK-eV*eI;var ga=eU*fq-eV*fn;var f8=eU*eT-eV*eR;var et=this.b1.smass+this.b2.smass;this.kMassa=et+this.b1.sinertia*en*en+this.b2.sinertia*el*el;this.kMassb=et+this.b1.sinertia*en*ga+this.b2.sinertia*el*f8;this.kMassc=et+this.b1.sinertia*ga*ga+this.b2.sinertia*f8*f8;var eS=0;var eP=0;var eN=0;eS=this.kMassa;eP=this.kMassb;eN=this.kMassc;var fk=eL*this.biasCoef;var fh=eJ*this.biasCoef;while(true){var f7=0;var f5=0;f7=fk;f5=fh;f7=-fk;f5=-fh;var f0=this.kMassa*this.kMassc-this.kMassb*this.kMassb;if(f0!=f0){f5=0;f7=f5}else{if(f0==0){if(this.kMassa!=0){f7/=this.kMassa}else{f7=0}if(this.kMassc!=0){f5/=this.kMassc}else{f5=0}}else{f0=1/f0;var gb=f0*(this.kMassc*f7-this.kMassb*f5);f5=f0*(this.kMassa*f5-this.kMassb*f7);f7=gb}}if(f7>=0&&f5>=0){var f9=(f7+f5)*this.b1.imass;this.b1.posx-=eV*f9;this.b1.posy-=eU*f9;var fa=this.b1;var es=-this.b1.iinertia*(en*f7+ga*f5);fa.rot+=es;if(es*es>0.0001){fa.axisx=Math.sin(fa.rot);fa.axisy=Math.cos(fa.rot)}else{var fp=es*es;var fD=1-0.5*fp;var eh=1-fp*fp/8;var fW=(fD*fa.axisx+es*fa.axisy)*eh;fa.axisy=(fD*fa.axisy-es*fa.axisx)*eh;fa.axisx=fW}var f6=(f7+f5)*this.b2.imass;this.b2.posx+=eV*f6;this.b2.posy+=eU*f6;var e9=this.b2;var er=this.b2.iinertia*(el*f7+f8*f5);e9.rot+=er;if(er*er>0.0001){e9.axisx=Math.sin(e9.rot);e9.axisy=Math.cos(e9.rot)}else{var fm=er*er;var fB=1-0.5*fm;var eg=1-fm*fm/8;var fV=(fB*e9.axisx+er*e9.axisy)*eg;e9.axisy=(fB*e9.axisy-er*e9.axisx)*eg;e9.axisx=fV}break}f7=-fk/eS;f5=0;var eB=eP*f7+fh;if(f7>=0&&eB>=0){var f4=(f7+f5)*this.b1.imass;this.b1.posx-=eV*f4;this.b1.posy-=eU*f4;var e7=this.b1;var eq=-this.b1.iinertia*(en*f7+ga*f5);e7.rot+=eq;if(eq*eq>0.0001){e7.axisx=Math.sin(e7.rot);e7.axisy=Math.cos(e7.rot)}else{var fl=eq*eq;var fA=1-0.5*fl;var ef=1-fl*fl/8;var fU=(fA*e7.axisx+eq*e7.axisy)*ef;e7.axisy=(fA*e7.axisy-eq*e7.axisx)*ef;e7.axisx=fU}var f3=(f7+f5)*this.b2.imass;this.b2.posx+=eV*f3;this.b2.posy+=eU*f3;var e6=this.b2;var ep=this.b2.iinertia*(el*f7+f8*f5);e6.rot+=ep;if(ep*ep>0.0001){e6.axisx=Math.sin(e6.rot);e6.axisy=Math.cos(e6.rot)}else{var fj=ep*ep;var fz=1-0.5*fj;var ee=1-fj*fj/8;var fT=(fz*e6.axisx+ep*e6.axisy)*ee;e6.axisy=(fz*e6.axisy-ep*e6.axisx)*ee;e6.axisx=fT}break}f7=0;f5=-fh/eN;var eC=eP*f5+fk;if(f5>=0&&eC>=0){var f2=(f7+f5)*this.b1.imass;this.b1.posx-=eV*f2;this.b1.posy-=eU*f2;var e5=this.b1;var eo=-this.b1.iinertia*(en*f7+ga*f5);e5.rot+=eo;if(eo*eo>0.0001){e5.axisx=Math.sin(e5.rot);e5.axisy=Math.cos(e5.rot)}else{var fg=eo*eo;var fy=1-0.5*fg;var ed=1-fg*fg/8;var fS=(fy*e5.axisx+eo*e5.axisy)*ed;e5.axisy=(fy*e5.axisy-eo*e5.axisx)*ed;e5.axisx=fS}var f1=(f7+f5)*this.b2.imass;this.b2.posx+=eV*f1;this.b2.posy+=eU*f1;var e3=this.b2;var em=this.b2.iinertia*(el*f7+f8*f5);e3.rot+=em;if(em*em>0.0001){e3.axisx=Math.sin(e3.rot);e3.axisy=Math.cos(e3.rot)}else{var fe=em*em;var fx=1-0.5*fe;var ec=1-fe*fe/8;var fR=(fx*e3.axisx+em*e3.axisy)*ec;e3.axisy=(fx*e3.axisy-em*e3.axisx)*ec;e3.axisx=fR}break}break}}else{var eQ=eU*fi-eV*ff;var ez=eU*eK-eV*eI;var fH=this.b2.smass+ez*ez*this.b2.sinertia+this.b1.smass+eQ*eQ*this.b1.sinertia;if(fH!=0){var fC=-this.biasCoef*eL/fH;var ge=0;var fQ=0;ge=eV*fC;fQ=eU*fC;var ey=this.b1.imass;this.b1.posx-=ge*ey;this.b1.posy-=fQ*ey;var e2=this.b1;var ek=-eQ*this.b1.iinertia*fC;e2.rot+=ek;if(ek*ek>0.0001){e2.axisx=Math.sin(e2.rot);e2.axisy=Math.cos(e2.rot)}else{var fd=ek*ek;var fw=1-0.5*fd;var eb=1-fd*fd/8;var fP=(fw*e2.axisx+ek*e2.axisy)*eb;e2.axisy=(fw*e2.axisy-ek*e2.axisx)*eb;e2.axisx=fP}var ex=this.b2.imass;this.b2.posx+=ge*ex;this.b2.posy+=fQ*ex;var e0=this.b2;var ej=ez*this.b2.iinertia*fC;e0.rot+=ej;if(ej*ej>0.0001){e0.axisx=Math.sin(e0.rot);e0.axisy=Math.cos(e0.rot)}else{var fb=ej*ej;var fv=1-0.5*fb;var ea=1-fb*fb/8;var fO=(fv*e0.axisx+ej*e0.axisy)*ea;e0.axisy=(fv*e0.axisy-ej*e0.axisx)*ea;e0.axisx=fO}}}}}};d9.prototype.__class__=d9;var c2=zpp_nape.dynamics.ZPP_Contact=function(){this.length=0;this.pushmod=false;this.modified=false;this._inuse=false;this.next=null;this.elasticity=0;this.dist=0;this.fresh=false;this.hash=0;this.stamp=0;this.posOnly=false;this.active=false;this.inner=null;this.arbiter=null;this.wrap_position=null;this.py=0;this.px=0;this.outer=null;this.inner=new I()};c2.__name__=["zpp_nape","dynamics","ZPP_Contact"];c2.prototype.outer=null;c2.prototype.wrapper=function(){if(this.outer==null){c2.internal=true;this.outer=new d8();c2.internal=false;this.outer.zpp_inner=this}return this.outer};c2.prototype.px=null;c2.prototype.py=null;c2.prototype.position_validate=function(){this.wrap_position.zpp_inner.x=this.px;this.wrap_position.zpp_inner.y=this.py};c2.prototype.wrap_position=null;c2.prototype.getposition=function(){var ea;if(au.poolVec2==null){ea=new r()}else{ea=au.poolVec2;au.poolVec2=ea.zpp_pool;ea.zpp_pool=null}if(ea.zpp_inner==null){var ee;if(bB.zpp_pool==null){ee=new bB()}else{ee=bB.zpp_pool;bB.zpp_pool=ee.next;ee.next=null}ee.weak=false;ee._immutable=false;ee.x=0;ee.y=0;ea.zpp_inner=ee;ea.zpp_inner.outer=ea}else{var eb;var ef=ea.zpp_inner;if(ef._validate!=null){ef._validate()}if(ea.zpp_inner.x==0){var ed=ea.zpp_inner;if(ed._validate!=null){ed._validate()}eb=ea.zpp_inner.y==0}else{eb=false}if(!eb){ea.zpp_inner.x=0;ea.zpp_inner.y=0;var ec=ea.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}}ea.zpp_inner.weak=false;this.wrap_position=ea;this.wrap_position.zpp_inner._inuse=true;this.wrap_position.zpp_inner._immutable=true;this.wrap_position.zpp_inner._validate=dX(this,this.position_validate)};c2.prototype.inactiveme=function(){return !(this.active&&this.arbiter!=null&&!(!this.arbiter.active))};c2.prototype.arbiter=null;c2.prototype.inner=null;c2.prototype.active=null;c2.prototype.posOnly=null;c2.prototype.stamp=null;c2.prototype.hash=null;c2.prototype.fresh=null;c2.prototype.dist=null;c2.prototype.elasticity=null;c2.prototype.free=function(){this.arbiter=null};c2.prototype.alloc=function(){};c2.prototype.next=null;c2.prototype.elem=function(){return this};c2.prototype.begin=function(){return this.next};c2.prototype._inuse=null;c2.prototype.modified=null;c2.prototype.pushmod=null;c2.prototype.length=null;c2.prototype.setbegin=function(ea){this.next=ea;this.modified=true;this.pushmod=true};c2.prototype.add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};c2.prototype.inlined_add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};c2.prototype.addAll=function(ea){var eb=ea.next;while(eb!=null){this.add(eb);eb=eb.next}};c2.prototype.insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};c2.prototype.inlined_insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};c2.prototype.pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};c2.prototype.inlined_pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};c2.prototype.pop_unsafe=function(){var ea=this.next;this.pop();return ea};c2.prototype.inlined_pop_unsafe=function(){var ea=this.next;this.pop();return ea};c2.prototype.remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};c2.prototype.try_remove=function(ec){var eb=null;var ed=this.next;var ea=false;while(ed!=null){if(ed==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};c2.prototype.inlined_remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};c2.prototype.inlined_try_remove=function(ee){var ed=null;var ef=this.next;var eb=false;while(ef!=null){if(ef==ee){var ea;var ec;if(ed==null){ea=this.next;ec=ea.next;this.next=ec;if(this.next==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=ef;ef=ef.next}return eb};c2.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};c2.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};c2.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};c2.prototype.clear=function(){};c2.prototype.inlined_clear=function(){};c2.prototype.reverse=function(){var ec=this.next;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.next=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};c2.prototype.empty=function(){return this.next==null};c2.prototype.size=function(){return this.length};c2.prototype.has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};c2.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};c2.prototype.front=function(){return this.next};c2.prototype.back=function(){var ea=this.next;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea};c2.prototype.iterator_at=function(eb){var ea=this.next;while(eb-->0&&ea!=null){ea=ea.next}return ea};c2.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea}else{return null}};c2.prototype.__class__=c2;var I=zpp_nape.dynamics.ZPP_IContact=function(){this.length=0;this.pushmod=false;this.modified=false;this._inuse=false;this.next=null;this.lr2y=0;this.lr2x=0;this.lr1y=0;this.lr1x=0;this.jtAcc=0;this.jnAcc=0;this.friction=0;this.bounce=0;this.tMass=0;this.nMass=0;this.r2y=0;this.r2x=0;this.r1y=0;this.r1x=0};I.__name__=["zpp_nape","dynamics","ZPP_IContact"];I.prototype.r1x=null;I.prototype.r1y=null;I.prototype.r2x=null;I.prototype.r2y=null;I.prototype.nMass=null;I.prototype.tMass=null;I.prototype.bounce=null;I.prototype.friction=null;I.prototype.jnAcc=null;I.prototype.jtAcc=null;I.prototype.lr1x=null;I.prototype.lr1y=null;I.prototype.lr2x=null;I.prototype.lr2y=null;I.prototype.next=null;I.prototype.elem=function(){return this};I.prototype.begin=function(){return this.next};I.prototype._inuse=null;I.prototype.modified=null;I.prototype.pushmod=null;I.prototype.length=null;I.prototype.setbegin=function(ea){this.next=ea;this.modified=true;this.pushmod=true};I.prototype.add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};I.prototype.inlined_add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};I.prototype.addAll=function(ea){var eb=ea.next;while(eb!=null){this.add(eb);eb=eb.next}};I.prototype.insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};I.prototype.inlined_insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};I.prototype.pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};I.prototype.inlined_pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};I.prototype.pop_unsafe=function(){var ea=this.next;this.pop();return ea};I.prototype.inlined_pop_unsafe=function(){var ea=this.next;this.pop();return ea};I.prototype.remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};I.prototype.try_remove=function(ec){var eb=null;var ed=this.next;var ea=false;while(ed!=null){if(ed==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};I.prototype.inlined_remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};I.prototype.inlined_try_remove=function(ee){var ed=null;var ef=this.next;var eb=false;while(ef!=null){if(ef==ee){var ea;var ec;if(ed==null){ea=this.next;ec=ea.next;this.next=ec;if(this.next==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=ef;ef=ef.next}return eb};I.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};I.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};I.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};I.prototype.clear=function(){};I.prototype.inlined_clear=function(){};I.prototype.reverse=function(){var ec=this.next;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.next=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};I.prototype.empty=function(){return this.next==null};I.prototype.size=function(){return this.length};I.prototype.has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};I.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};I.prototype.front=function(){return this.next};I.prototype.back=function(){var ea=this.next;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea};I.prototype.iterator_at=function(eb){var ea=this.next;while(eb-->0&&ea!=null){ea=ea.next}return ea};I.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea}else{return null}};I.prototype.__class__=I;var cA=zpp_nape.dynamics.ZPP_InteractionFilter=function(){this.fluidMask=0;this.fluidGroup=0;this.sensorMask=0;this.sensorGroup=0;this.collisionMask=0;this.collisionGroup=0;this.wrap_shapes=null;this.shapes=null;this.outer=null;this.userData=null;this.next=null;this.shapes=new s();this.collisionGroup=this.sensorGroup=this.fluidGroup=1;this.collisionMask=this.sensorMask=this.fluidMask=-1};cA.__name__=["zpp_nape","dynamics","ZPP_InteractionFilter"];cA.prototype.next=null;cA.prototype.userData=null;cA.prototype.outer=null;cA.prototype.wrapper=function(){if(this.outer==null){this.outer=new G();var ea=this.outer.zpp_inner;ea.outer=null;ea.next=cA.zpp_pool;cA.zpp_pool=ea;this.outer.zpp_inner=this}return this.outer};cA.prototype.free=function(){this.outer=null};cA.prototype.alloc=function(){};cA.prototype.shapes=null;cA.prototype.wrap_shapes=null;cA.prototype.feature_cons=function(){this.shapes=new s()};cA.prototype.addShape=function(ea){this.shapes.add(ea)};cA.prototype.remShape=function(ea){this.shapes.remove(ea)};cA.prototype.copy=function(){var ea;if(cA.zpp_pool==null){ea=new cA()}else{ea=cA.zpp_pool;cA.zpp_pool=ea.next;ea.next=null}ea.collisionGroup=this.collisionGroup;ea.collisionMask=this.collisionMask;ea.sensorGroup=this.sensorGroup;ea.sensorMask=this.sensorMask;ea.fluidGroup=this.fluidGroup;ea.fluidMask=this.fluidMask;return ea};cA.prototype.collisionGroup=null;cA.prototype.collisionMask=null;cA.prototype.shouldCollide=function(ea){if((this.collisionMask&ea.collisionGroup)!=0){return(ea.collisionMask&this.collisionGroup)!=0}else{return false}};cA.prototype.sensorGroup=null;cA.prototype.sensorMask=null;cA.prototype.shouldSense=function(ea){if((this.sensorMask&ea.sensorGroup)!=0){return(ea.sensorMask&this.sensorGroup)!=0}else{return false}};cA.prototype.fluidGroup=null;cA.prototype.fluidMask=null;cA.prototype.shouldFlow=function(ea){if((this.fluidMask&ea.fluidGroup)!=0){return(ea.fluidMask&this.fluidGroup)!=0}else{return false}};cA.prototype.invalidate=function(){var ea=this.shapes.head;while(ea!=null){ea.elt.invalidate_filter();ea=ea.next}};cA.prototype.__class__=cA;var ax=zpp_nape.dynamics.ZPP_InteractionGroup=function(){this.depth=0;this.wrap_interactors=null;this.interactors=null;this.wrap_groups=null;this.groups=null;this.group=null;this.ignore=false;this.outer=null;this.depth=0;this.groups=new da();this.interactors=new bn()};ax.__name__=["zpp_nape","dynamics","ZPP_InteractionGroup"];ax.prototype.outer=null;ax.prototype.ignore=null;ax.prototype.group=null;ax.prototype.setGroup=function(ea){if(this.group!=ea){if(this.group!=null){this.group.groups.remove(this);this.depth=0;this.group.invalidate(true)}this.group=ea;if(ea!=null){ea.groups.add(this);this.depth=ea.depth+1;ea.invalidate(true)}else{this.invalidate(true)}}};ax.prototype.groups=null;ax.prototype.wrap_groups=null;ax.prototype.interactors=null;ax.prototype.wrap_interactors=null;ax.prototype.depth=null;ax.prototype.invalidate=function(ed){if(ed==null){ed=false}if(!(ed||this.ignore)){return}var eb=this.interactors.head;while(eb!=null){var ea=eb.elt;if(ea.ibody!=null){ea.ibody.wake()}else{if(ea.ishape!=null){ea.ishape.body.wake()}else{ea.icompound.wake()}}eb=eb.next}var ec=this.groups.head;while(ec!=null){ec.elt.invalidate(ed);ec=ec.next}};ax.prototype.addGroup=function(ea){this.groups.add(ea);ea.depth=this.depth+1};ax.prototype.remGroup=function(ea){this.groups.remove(ea);ea.depth=0};ax.prototype.addInteractor=function(ea){this.interactors.add(ea)};ax.prototype.remInteractor=function(eb,ea){if(ea==null){ea=-1}this.interactors.remove(eb)};ax.prototype.__class__=ax;var aP=zpp_nape.dynamics.ZPP_SpaceArbiterList=function(){this.at_index_3=0;this.at_index_2=0;this.at_index_1=0;this.at_index_0=0;this.ite_3=null;this.ite_2=null;this.ite_1=null;this.ite_0=null;this.lengths=null;this.zip_length=false;this._length=0;this.space=null;dD.call(this);this.at_index_0=0;this.at_index_1=0;this.at_index_2=0;this.at_index_3=0;this.zip_length=true;this._length=0;this.lengths=[];var ea=0;while(ea<4){++ea;this.lengths.push(0)}};aP.__name__=["zpp_nape","dynamics","ZPP_SpaceArbiterList"];aP.__super__=dD;aP.prototype=Object.create(dD.prototype);aP.prototype.space=null;aP.prototype._length=null;aP.prototype.zip_length=null;aP.prototype.zpp_gl=function(){this.zpp_vm();if(this.zip_length){this._length=0;var ea=0;var ef=this.space.c_arbiters_true.head;while(ef!=null){if(ef.elt.active){++ea}ef=ef.next}this.lengths[0]=ea;this._length+=ea;var ed=0;var eh=this.space.c_arbiters_false.head;while(eh!=null){if(eh.elt.active){++ed}eh=eh.next}this.lengths[1]=ed;this._length+=ed;var ec=0;var eg=this.space.f_arbiters.head;while(eg!=null){if(eg.elt.active){++ec}eg=eg.next}this.lengths[2]=ec;this._length+=ec;var eb=0;var ee=this.space.s_arbiters.head;while(ee!=null){if(ee.elt.active){++eb}ee=ee.next}this.lengths[3]=eb;this._length+=eb;this.zip_length=false}return this._length};aP.prototype.lengths=null;aP.prototype.ite_0=null;aP.prototype.ite_1=null;aP.prototype.ite_2=null;aP.prototype.ite_3=null;aP.prototype.at_index_0=null;aP.prototype.at_index_1=null;aP.prototype.at_index_2=null;aP.prototype.at_index_3=null;aP.prototype.zpp_vm=function(){var ea=false;if(this.space.c_arbiters_true.modified){ea=true;this.space.c_arbiters_true.modified=false}if(this.space.c_arbiters_false.modified){ea=true;this.space.c_arbiters_false.modified=false}if(this.space.f_arbiters.modified){ea=true;this.space.f_arbiters.modified=false}if(this.space.s_arbiters.modified){ea=true;this.space.s_arbiters.modified=false}if(ea){this.zip_length=true;this._length=0;this.ite_0=null;this.ite_1=null;this.ite_2=null;this.ite_3=null}};aP.prototype.push=function(ea){return false};aP.prototype.pop=function(){return null};aP.prototype.unshift=function(ea){return false};aP.prototype.shift=function(){return null};aP.prototype.remove=function(ea){return false};aP.prototype.clear=function(){};aP.prototype.at=function(eb){this.zpp_vm();var ea=null;var ef=0;if(ea==null){if(eb<this.lengths[0]){var eg=eb;if(eg<this.at_index_0||this.ite_0==null){this.at_index_0=0;this.ite_0=this.space.c_arbiters_true.head;while(!this.ite_0.elt.active){this.ite_0=this.ite_0.next}}while(this.at_index_0!=eg){this.at_index_0++;this.ite_0=this.ite_0.next;while(!this.ite_0.elt.active){this.ite_0=this.ite_0.next}}ea=this.ite_0.elt.wrapper()}else{ef=this.lengths[0]}}if(ea==null){if(eb<ef+this.lengths[1]){var ee=eb-ef;if(ee<this.at_index_1||this.ite_1==null){this.at_index_1=0;this.ite_1=this.space.c_arbiters_false.head;while(!this.ite_1.elt.active){this.ite_1=this.ite_1.next}}while(this.at_index_1!=ee){this.at_index_1++;this.ite_1=this.ite_1.next;while(!this.ite_1.elt.active){this.ite_1=this.ite_1.next}}ea=this.ite_1.elt.wrapper()}else{ef+=this.lengths[1]}}if(ea==null){if(eb<ef+this.lengths[2]){var ed=eb-ef;if(ed<this.at_index_2||this.ite_2==null){this.at_index_2=0;this.ite_2=this.space.f_arbiters.head;while(!this.ite_2.elt.active){this.ite_2=this.ite_2.next}}while(this.at_index_2!=ed){this.at_index_2++;this.ite_2=this.ite_2.next;while(!this.ite_2.elt.active){this.ite_2=this.ite_2.next}}ea=this.ite_2.elt.wrapper()}else{ef+=this.lengths[2]}}if(ea==null){if(eb<ef+this.lengths[3]){var ec=eb-ef;if(ec<this.at_index_3||this.ite_3==null){this.at_index_3=0;this.ite_3=this.space.s_arbiters.head;while(!this.ite_3.elt.active){this.ite_3=this.ite_3.next}}while(this.at_index_3!=ec){this.at_index_3++;this.ite_3=this.ite_3.next;while(!this.ite_3.elt.active){this.ite_3=this.ite_3.next}}ea=this.ite_3.elt.wrapper()}else{ef+=this.lengths[3]}}return ea};aP.prototype.__class__=aP;var bT=zpp_nape.geom.ZPP_AABB=function(){this.wrap_max=null;this.maxy=0;this.maxx=0;this.wrap_min=null;this.miny=0;this.minx=0;this.next=null;this.outer=null;this._immutable=false;this._validate=null;this._invalidate=null};bT.__name__=["zpp_nape","geom","ZPP_AABB"];bT.get=function(eb,ea,ee,ed){var ec;if(bT.zpp_pool==null){ec=new bT()}else{ec=bT.zpp_pool;bT.zpp_pool=ec.next;ec.next=null}ec.minx=eb;ec.miny=ea;ec.maxx=ee;ec.maxy=ed;return ec};bT.prototype._invalidate=null;bT.prototype._validate=null;bT.prototype._immutable=null;bT.prototype.validate=function(){if(this._validate!=null){this._validate()}};bT.prototype.invalidate=function(){if(this._invalidate!=null){this._invalidate(this)}};bT.prototype.outer=null;bT.prototype.wrapper=function(){if(this.outer==null){this.outer=new S();var ea=this.outer.zpp_inner;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea.wrap_min=ea.wrap_max=null;ea._invalidate=null;ea._validate=null;ea.next=bT.zpp_pool;bT.zpp_pool=ea;this.outer.zpp_inner=this}return this.outer};bT.prototype.next=null;bT.prototype.alloc=function(){};bT.prototype.free=function(){if(this.outer!=null){this.outer.zpp_inner=null;this.outer=null}this.wrap_min=this.wrap_max=null;this._invalidate=null;this._validate=null};bT.prototype.copy=function(){var eb=this.minx;var ea=this.miny;var ee=this.maxx;var ed=this.maxy;var ec;if(bT.zpp_pool==null){ec=new bT()}else{ec=bT.zpp_pool;bT.zpp_pool=ec.next;ec.next=null}ec.minx=eb;ec.miny=ea;ec.maxx=ee;ec.maxy=ed;return ec};bT.prototype.width=function(){return this.maxx-this.minx};bT.prototype.height=function(){return this.maxy-this.miny};bT.prototype.perimeter=function(){return(this.maxx-this.minx+(this.maxy-this.miny))*2};bT.prototype.minx=null;bT.prototype.miny=null;bT.prototype.wrap_min=null;bT.prototype.getmin=function(){if(this.wrap_min==null){var ea=this.minx;var eh=this.miny;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_min=eb;this.wrap_min.zpp_inner._inuse=true;if(this._immutable){this.wrap_min.zpp_inner._immutable=true}else{this.wrap_min.zpp_inner._invalidate=dX(this,this.mod_min)}this.wrap_min.zpp_inner._validate=dX(this,this.dom_min)}return this.wrap_min};bT.prototype.dom_min=function(){if(this._validate!=null){this._validate()}this.wrap_min.zpp_inner.x=this.minx;this.wrap_min.zpp_inner.y=this.miny};bT.prototype.mod_min=function(ea){if(ea.x!=this.minx||ea.y!=this.miny){this.minx=ea.x;this.miny=ea.y;if(this._invalidate!=null){this._invalidate(this)}}};bT.prototype.maxx=null;bT.prototype.maxy=null;bT.prototype.wrap_max=null;bT.prototype.getmax=function(){if(this.wrap_max==null){var ea=this.maxx;var eh=this.maxy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_max=eb;this.wrap_max.zpp_inner._inuse=true;if(this._immutable){this.wrap_max.zpp_inner._immutable=true}else{this.wrap_max.zpp_inner._invalidate=dX(this,this.mod_max)}this.wrap_max.zpp_inner._validate=dX(this,this.dom_max)}return this.wrap_max};bT.prototype.dom_max=function(){if(this._validate!=null){this._validate()}this.wrap_max.zpp_inner.x=this.maxx;this.wrap_max.zpp_inner.y=this.maxy};bT.prototype.mod_max=function(ea){if(ea.x!=this.maxx||ea.y!=this.maxy){this.maxx=ea.x;this.maxy=ea.y;if(this._invalidate!=null){this._invalidate(this)}}};bT.prototype.intersectX=function(ea){return !(ea.minx>this.maxx||this.minx>ea.maxx)};bT.prototype.intersectY=function(ea){return !(ea.miny>this.maxy||this.miny>ea.maxy)};bT.prototype.intersect=function(ea){if(ea.miny<=this.maxy&&this.miny<=ea.maxy&&ea.minx<=this.maxx){return this.minx<=ea.maxx}else{return false}};bT.prototype.combine=function(ea){if(ea.minx<this.minx){this.minx=ea.minx}if(ea.maxx>this.maxx){this.maxx=ea.maxx}if(ea.miny<this.miny){this.miny=ea.miny}if(ea.maxy>this.maxy){this.maxy=ea.maxy}};bT.prototype.contains=function(ea){if(ea.minx>=this.minx&&ea.miny>=this.miny&&ea.maxx<=this.maxx){return ea.maxy<=this.maxy}else{return false}};bT.prototype.containsPoint=function(ea){if(ea.x>=this.minx&&ea.x<=this.maxx&&ea.y>=this.miny){return ea.y<=this.maxy}else{return false}};bT.prototype.setCombine=function(eb,ea){this.minx=eb.minx<ea.minx?eb.minx:ea.minx;this.miny=eb.miny<ea.miny?eb.miny:ea.miny;this.maxx=eb.maxx>ea.maxx?eb.maxx:ea.maxx;this.maxy=eb.maxy>ea.maxy?eb.maxy:ea.maxy};bT.prototype.setExpand=function(ea,eb){this.minx=ea.minx-eb;this.miny=ea.miny-eb;this.maxx=ea.maxx+eb;this.maxy=ea.maxy+eb};bT.prototype.setExpandPoint=function(ea,eb){if(ea<this.minx){this.minx=ea}if(ea>this.maxx){this.maxx=ea}if(eb<this.miny){this.miny=eb}if(eb>this.maxy){this.maxy=eb}};bT.prototype.toString=function(){return"{ x: "+this.minx+" y: "+this.miny+" w: "+(this.maxx-this.minx)+" h: "+(this.maxy-this.miny)+" }"};bT.prototype.__class__=bT;var aG=zpp_nape.util.ZNPList_ZPP_Vec2=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};aG.__name__=["zpp_nape","util","ZNPList_ZPP_Vec2"];aG.prototype.head=null;aG.prototype.begin=function(){return this.head};aG.prototype.modified=null;aG.prototype.pushmod=null;aG.prototype.length=null;aG.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};aG.prototype.add=function(ec){var eb;if(aV.zpp_pool==null){eb=new aV()}else{eb=aV.zpp_pool;aV.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};aG.prototype.inlined_add=function(ec){var eb;if(aV.zpp_pool==null){eb=new aV()}else{eb=aV.zpp_pool;aV.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};aG.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};aG.prototype.insert=function(ed,ec){var eb;if(aV.zpp_pool==null){eb=new aV()}else{eb=aV.zpp_pool;aV.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};aG.prototype.inlined_insert=function(ed,ec){var eb;if(aV.zpp_pool==null){eb=new aV()}else{eb=aV.zpp_pool;aV.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};aG.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aV.zpp_pool;aV.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};aG.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aV.zpp_pool;aV.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};aG.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};aG.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};aG.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=aV.zpp_pool;aV.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};aG.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};aG.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=aV.zpp_pool;aV.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};aG.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=aV.zpp_pool;aV.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};aG.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=aV.zpp_pool;aV.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};aG.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=aV.zpp_pool;aV.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};aG.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};aG.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aV.zpp_pool;aV.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};aG.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=aV.zpp_pool;aV.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};aG.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};aG.prototype.empty=function(){return this.head==null};aG.prototype.size=function(){return this.length};aG.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};aG.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};aG.prototype.front=function(){return this.head.elt};aG.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};aG.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};aG.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};aG.prototype.__class__=aG;var b7=zpp_nape.geom.ZPP_Collide=function(){};b7.__name__=["zpp_nape","geom","ZPP_Collide"];b7.circleContains=function(ed,ec){var eb=0;var ea=0;eb=ec.x-ed.worldCOMx;ea=ec.y-ed.worldCOMy;return eb*eb+ea*ea<ed.radius*ed.radius};b7.polyContains=function(ec,ee){var ed;ed=true;var eb=ec.edges.head;while(eb!=null){var ea=eb.elt;if(ea.gnormx*ee.x+ea.gnormy*ee.y<=ea.gprojection){eb=eb.next;continue}else{ed=false;break}}return ed};b7.shapeContains=function(ea,eb){if(ea.type==0){return b7.circleContains(ea.circle,eb)}else{return b7.polyContains(ea.polygon,eb)}};b7.bodyContains=function(ea,ed){var ec;ec=false;var eb=ea.shapes.head;while(eb!=null){if(b7.shapeContains(eb.elt,ed)){ec=true;break}eb=eb.next}return ec};b7.containTest=function(ee,ed){var es=ee.aabb;var eh=ed.aabb;if(eh.minx>=es.minx&&eh.miny>=es.miny&&eh.maxx<=es.maxx&&eh.maxy<=es.maxy){if(ee.type==0){if(ed.type==0){var ec=ee.circle.radius+-ed.circle.radius;var el=0;var ek=0;el=ed.circle.worldCOMx-ee.circle.worldCOMx;ek=ed.circle.worldCOMy-ee.circle.worldCOMy;return el*el+ek*ek<=ec*ec}else{var ei;ei=true;var eq=ed.polygon.gverts.next;while(eq!=null){var eo=eq;var eg=ee.circle.radius;var eu=0;var ef=0;eu=eo.x-ee.circle.worldCOMx;ef=eo.y-ee.circle.worldCOMy;if(eu*eu+ef*ef<=eg*eg){eq=eq.next;continue}else{ei=false;break}}return ei}}else{if(ed.type==0){var eb;eb=true;var ep=ee.polygon.edges.head;while(ep!=null){var ev=ep.elt;if(ev.gnormx*ed.circle.worldCOMx+ev.gnormy*ed.circle.worldCOMy+ed.circle.radius<=ev.gprojection){ep=ep.next;continue}else{eb=false;break}}return eb}else{var ea;ea=true;var en=ee.polygon.edges.head;while(en!=null){var ew=en.elt;var et=-1e+100;var em=ed.polygon.gverts.next;while(em!=null){var ej=em;var er=ew.gnormx*ej.x+ew.gnormy*ej.y;if(er>et){et=er}em=em.next}if(et<=ew.gprojection){en=en.next;continue}else{ea=false;break}}return ea}}}else{return false}};b7.contactCollide=function(gd,ga,eD,fz){if(ga.type==1){if(gd.type==1){var gF=true;var fe=-1e+100;var eT=-1;var gJ=null;var gI=null;var eK=gd.polygon.edges.head;while(eK!=null){var gT=eK.elt;var gC=1e+100;var e5=ga.polygon.gverts.next;while(e5!=null){var gu=e5;var gD=gT.gnormx*gu.x+gT.gnormy*gu.y;if(gD<gC){gC=gD}if(gC-gT.gprojection<=fe){break}e5=e5.next}gC-=gT.gprojection;if(gC>=0){gF=false;break}if(gC>fe){fe=gC;gJ=gT;eT=1}eK=eK.next}if(gF){var e4=ga.polygon.edges.head;while(e4!=null){var gL=e4.elt;var eF=1e+100;var e3=gd.polygon.gverts.next;while(e3!=null){var fb=e3;var eQ=gL.gnormx*fb.x+gL.gnormy*fb.y;if(eQ<eF){eF=eQ}if(eF-gL.gprojection<=fe){break}e3=e3.next}eF-=gL.gprojection;if(eF>=0){gF=false;break}if(eF>fe){fe=eF;gI=gL;eT=2}e4=e4.next}if(!gF){return false}else{var gE;var gK;var gs;if(eT==1){gE=ga.polygon;gK=gJ;gs=1}else{gE=gd.polygon;gK=gI;gs=-1}var gS=null;var eC=1e+100;var e2=gE.edges.head;while(e2!=null){var eA=e2.elt;var eP=gK.gnormx*eA.gnormx+gK.gnormy*eA.gnormy;if(eP<eC){eC=eP;gS=eA}e2=e2.next}var fo=0;var fl=0;fo=gS.gp0.x;fl=gS.gp0.y;var fa=0;var e9=0;fa=gS.gp1.x;e9=gS.gp1.y;var eS=0;var eR=0;eS=fa-fo;eR=e9-fl;var gN=gK.gnormy*fo-gK.gnormx*fl;var gM=gK.gnormy*fa-gK.gnormx*e9;var gr=1/(gM-gN);var gv=(-gK.tp1-gN)*gr;if(gv>P.epsilon){fo+=eS*gv;fl+=eR*gv}var fG=(-gK.tp0-gM)*gr;if(fG<-P.epsilon){fa+=eS*fG;e9+=eR*fG}var gP=0;var gO=0;var fD=gs;gP=gK.gnormx*fD;gO=gK.gnormy*fD;eD.lnormx=gK.lnormx;eD.lnormy=gK.lnormy;eD.lproj=gK.lprojection;eD.radius=0;eD.rev=fz!=(gs==-1);eD.ptype=eD.rev?1:0;var ft=fo*gK.gnormx+fl*gK.gnormy-gK.gprojection;var ff=fa*gK.gnormx+e9*gK.gnormy-gK.gprojection;if(ft>0&&ff>0){return false}else{if(fz){gP=-gP;gO=-gO}var gq=fo-gK.gnormx*ft*0.5;var gp=fl-gK.gnormy*ft*0.5;var gh=eD.rev?1:0;var gG=null;var e1=eD.contacts.next;while(e1!=null){var gQ=e1;if(gh==gQ.hash){gG=gQ;break}e1=e1.next}if(gG==null){if(c2.zpp_pool==null){gG=new c2()}else{gG=c2.zpp_pool;c2.zpp_pool=gG.next;gG.next=null}var gB=gG.inner;gB.jnAcc=gB.jtAcc=0;gG.hash=gh;gG.fresh=true;gG.arbiter=eD;eD.jrAcc=0;var gl=eD.contacts;gG._inuse=true;var gk=gG;gk.next=gl.next;gl.next=gk;gl.modified=true;gl.length++;eD.innards.add(gB)}else{gG.fresh=false}gG.px=gq;gG.py=gp;eD.nx=gP;eD.ny=gO;gG.dist=ft;gG.stamp=eD.stamp;gG.posOnly=ft>0;var fd=gG;fo-=gE.body.posx;fl-=gE.body.posy;fd.inner.lr1x=fo*gE.body.axisy+fl*gE.body.axisx;fd.inner.lr1y=fl*gE.body.axisy-fo*gE.body.axisx;var eI=fa-gK.gnormx*ff*0.5;var el=e9-gK.gnormy*ff*0.5;var gj=eD.rev?0:1;var g3=null;var e0=eD.contacts.next;while(e0!=null){var fY=e0;if(gj==fY.hash){g3=fY;break}e0=e0.next}if(g3==null){if(c2.zpp_pool==null){g3=new c2()}else{g3=c2.zpp_pool;c2.zpp_pool=g3.next;g3.next=null}var hm=g3.inner;hm.jnAcc=hm.jtAcc=0;g3.hash=gj;g3.fresh=true;g3.arbiter=eD;eD.jrAcc=0;var fr=eD.contacts;g3._inuse=true;var fL=g3;fL.next=fr.next;fr.next=fL;fr.modified=true;fr.length++;eD.innards.add(hm)}else{g3.fresh=false}g3.px=eI;g3.py=el;eD.nx=gP;eD.ny=gO;g3.dist=ff;g3.stamp=eD.stamp;g3.posOnly=ff>0;fd=g3;fa-=gE.body.posx;e9-=gE.body.posy;fd.inner.lr1x=fa*gE.body.axisy+e9*gE.body.axisx;fd.inner.lr1y=e9*gE.body.axisy-fa*gE.body.axisx;if(eT==1){eD.__ref_edge1=gK;eD.__ref_edge2=gS}else{eD.__ref_edge2=gK;eD.__ref_edge1=gS}return true}}}else{return false}}else{var fn=-1e+100;var go=true;var ec=null;var eO=null;var fu=ga.polygon.gverts.next;var eZ=ga.polygon.edges.head;while(eZ!=null){var gH=eZ.elt;var gm=gH.gnormx*gd.circle.worldCOMx+gH.gnormy*gd.circle.worldCOMy-gH.gprojection-gd.circle.radius;if(gm>0){go=false;break}if(gm>fn){fn=gm;ec=gH;eO=fu}fu=fu.next;eZ=eZ.next}if(go){var fc=eO;var gR=eO.next==null?ga.polygon.gverts.next:eO.next;var gn=gd.circle.worldCOMy*ec.gnormx-gd.circle.worldCOMx*ec.gnormy;if(gn<=fc.y*ec.gnormx-fc.x*ec.gnormy){var eU=gd.circle.radius;var eG=0;var ek=0;eG=fc.x-gd.circle.worldCOMx;ek=fc.y-gd.circle.worldCOMy;var gU=eG*eG+ek*ek;var gw;if(gU>eU*eU){gw=null}else{if(gU<P.epsilon*P.epsilon){var eE=gd.circle.worldCOMx;var ej=gd.circle.worldCOMy;var g2=null;var eY=eD.contacts.next;while(eY!=null){var fX=eY;if(0==fX.hash){g2=fX;break}eY=eY.next}if(g2==null){if(c2.zpp_pool==null){g2=new c2()}else{g2=c2.zpp_pool;c2.zpp_pool=g2.next;g2.next=null}var hl=g2.inner;hl.jnAcc=hl.jtAcc=0;g2.hash=0;g2.fresh=true;g2.arbiter=eD;eD.jrAcc=0;var fq=eD.contacts;g2._inuse=true;var fJ=g2;fJ.next=fq.next;fq.next=fJ;fq.modified=true;fq.length++;eD.innards.add(hl)}else{g2.fresh=false}g2.px=eE;g2.py=ej;eD.nx=1;eD.ny=0;g2.dist=-eU;g2.stamp=eD.stamp;g2.posOnly=false;gw=g2}else{var fs=1/Math.sqrt(gU);var fM=fs<P.epsilon?1e+100:1/fs;var gt=0.5+(gd.circle.radius-0.5*eU)*fs;if(fz){var eB=gd.circle.worldCOMx+eG*gt;var ei=gd.circle.worldCOMy+ek*gt;var g1=null;var eX=eD.contacts.next;while(eX!=null){var fW=eX;if(0==fW.hash){g1=fW;break}eX=eX.next}if(g1==null){if(c2.zpp_pool==null){g1=new c2()}else{g1=c2.zpp_pool;c2.zpp_pool=g1.next;g1.next=null}var hk=g1.inner;hk.jnAcc=hk.jtAcc=0;g1.hash=0;g1.fresh=true;g1.arbiter=eD;eD.jrAcc=0;var fp=eD.contacts;g1._inuse=true;var fH=g1;fH.next=fp.next;fp.next=fH;fp.modified=true;fp.length++;eD.innards.add(hk)}else{g1.fresh=false}g1.px=eB;g1.py=ei;eD.nx=-eG*fs;eD.ny=-ek*fs;g1.dist=fM-eU;g1.stamp=eD.stamp;g1.posOnly=false;gw=g1}else{var ez=gd.circle.worldCOMx+eG*gt;var eh=gd.circle.worldCOMy+ek*gt;var g0=null;var f7=eD.contacts.next;while(f7!=null){var fV=f7;if(0==fV.hash){g0=fV;break}f7=f7.next}if(g0==null){if(c2.zpp_pool==null){g0=new c2()}else{g0=c2.zpp_pool;c2.zpp_pool=g0.next;g0.next=null}var hj=g0.inner;hj.jnAcc=hj.jtAcc=0;g0.hash=0;g0.fresh=true;g0.arbiter=eD;eD.jrAcc=0;var fm=eD.contacts;g0._inuse=true;var fE=g0;fE.next=fm.next;fm.next=fE;fm.modified=true;fm.length++;eD.innards.add(hj)}else{g0.fresh=false}g0.px=ez;g0.py=eh;eD.nx=eG*fs;eD.ny=ek*fs;g0.dist=fM-eU;g0.stamp=eD.stamp;g0.posOnly=false;gw=g0}}}if(gw!=null){var ha=gw.inner;eD.ptype=2;var eJ=0;var eH=0;eJ=fc.x-ga.polygon.body.posx;eH=fc.y-ga.polygon.body.posy;eD.__ref_edge1=ec;eD.__ref_vertex=-1;if(fz){ha.lr1x=eJ*ga.polygon.body.axisy+eH*ga.polygon.body.axisx;ha.lr1y=eH*ga.polygon.body.axisy-eJ*ga.polygon.body.axisx;ha.lr2x=gd.circle.localCOMx;ha.lr2y=gd.circle.localCOMy}else{ha.lr2x=eJ*ga.polygon.body.axisy+eH*ga.polygon.body.axisx;ha.lr2y=eH*ga.polygon.body.axisy-eJ*ga.polygon.body.axisx;ha.lr1x=gd.circle.localCOMx;ha.lr1y=gd.circle.localCOMy}eD.radius=gd.circle.radius}return gw!=null}else{if(gn>=gR.y*ec.gnormx-gR.x*ec.gnormy){var eW=gd.circle.radius;var ey=0;var eg=0;ey=gR.x-gd.circle.worldCOMx;eg=gR.y-gd.circle.worldCOMy;var gA=ey*ey+eg*eg;var fI;if(gA>eW*eW){fI=null}else{if(gA<P.epsilon*P.epsilon){var ex=gd.circle.worldCOMx;var ef=gd.circle.worldCOMy;var gZ=null;var f6=eD.contacts.next;while(f6!=null){var fU=f6;if(0==fU.hash){gZ=fU;break}f6=f6.next}if(gZ==null){if(c2.zpp_pool==null){gZ=new c2()}else{gZ=c2.zpp_pool;c2.zpp_pool=gZ.next;gZ.next=null}var hi=gZ.inner;hi.jnAcc=hi.jtAcc=0;gZ.hash=0;gZ.fresh=true;gZ.arbiter=eD;eD.jrAcc=0;var fk=eD.contacts;gZ._inuse=true;var fB=gZ;fB.next=fk.next;fk.next=fB;fk.modified=true;fk.length++;eD.innards.add(hi)}else{gZ.fresh=false}gZ.px=ex;gZ.py=ef;eD.nx=1;eD.ny=0;gZ.dist=-eW;gZ.stamp=eD.stamp;gZ.posOnly=false;fI=gZ}else{var eb=1/Math.sqrt(gA);var fK=eb<P.epsilon?1e+100:1/eb;var gz=0.5+(gd.circle.radius-0.5*eW)*eb;if(fz){var ew=gd.circle.worldCOMx+ey*gz;var ee=gd.circle.worldCOMy+eg*gz;var gY=null;var f5=eD.contacts.next;while(f5!=null){var fT=f5;if(0==fT.hash){gY=fT;break}f5=f5.next}if(gY==null){if(c2.zpp_pool==null){gY=new c2()}else{gY=c2.zpp_pool;c2.zpp_pool=gY.next;gY.next=null}var hh=gY.inner;hh.jnAcc=hh.jtAcc=0;gY.hash=0;gY.fresh=true;gY.arbiter=eD;eD.jrAcc=0;var fj=eD.contacts;gY._inuse=true;var fy=gY;fy.next=fj.next;fj.next=fy;fj.modified=true;fj.length++;eD.innards.add(hh)}else{gY.fresh=false}gY.px=ew;gY.py=ee;eD.nx=-ey*eb;eD.ny=-eg*eb;gY.dist=fK-eW;gY.stamp=eD.stamp;gY.posOnly=false;fI=gY}else{var ev=gd.circle.worldCOMx+ey*gz;var ed=gd.circle.worldCOMy+eg*gz;var gX=null;var f4=eD.contacts.next;while(f4!=null){var fS=f4;if(0==fS.hash){gX=fS;break}f4=f4.next}if(gX==null){if(c2.zpp_pool==null){gX=new c2()}else{gX=c2.zpp_pool;c2.zpp_pool=gX.next;gX.next=null}var hg=gX.inner;hg.jnAcc=hg.jtAcc=0;gX.hash=0;gX.fresh=true;gX.arbiter=eD;eD.jrAcc=0;var fi=eD.contacts;gX._inuse=true;var fx=gX;fx.next=fi.next;fi.next=fx;fi.modified=true;fi.length++;eD.innards.add(hg)}else{gX.fresh=false}gX.px=ev;gX.py=ed;eD.nx=ey*eb;eD.ny=eg*eb;gX.dist=fK-eW;gX.stamp=eD.stamp;gX.posOnly=false;fI=gX}}}if(fI!=null){var g9=fI.inner;eD.ptype=2;var et=0;var hn=0;et=gR.x-ga.polygon.body.posx;hn=gR.y-ga.polygon.body.posy;eD.__ref_edge1=ec;eD.__ref_vertex=1;if(fz){g9.lr1x=et*ga.polygon.body.axisy+hn*ga.polygon.body.axisx;g9.lr1y=hn*ga.polygon.body.axisy-et*ga.polygon.body.axisx;g9.lr2x=gd.circle.localCOMx;g9.lr2y=gd.circle.localCOMy}else{g9.lr2x=et*ga.polygon.body.axisy+hn*ga.polygon.body.axisx;g9.lr2y=hn*ga.polygon.body.axisy-et*ga.polygon.body.axisx;g9.lr1x=gd.circle.localCOMx;g9.lr1y=gd.circle.localCOMy}eD.radius=gd.circle.radius}return fI!=null}else{var eN=0;var ep=0;var fA=gd.circle.radius+fn*0.5;eN=ec.gnormx*fA;ep=ec.gnormy*fA;var eu=0;var gi=0;eu=gd.circle.worldCOMx-eN;gi=gd.circle.worldCOMy-ep;var g8;if(fz){var eM=ec.gnormx;var en=ec.gnormy;var gW=null;var f3=eD.contacts.next;while(f3!=null){var fR=f3;if(0==fR.hash){gW=fR;break}f3=f3.next}if(gW==null){if(c2.zpp_pool==null){gW=new c2()}else{gW=c2.zpp_pool;c2.zpp_pool=gW.next;gW.next=null}var hf=gW.inner;hf.jnAcc=hf.jtAcc=0;gW.hash=0;gW.fresh=true;gW.arbiter=eD;eD.jrAcc=0;var fh=eD.contacts;gW._inuse=true;var fw=gW;fw.next=fh.next;fh.next=fw;fh.modified=true;fh.length++;eD.innards.add(hf)}else{gW.fresh=false}gW.px=eu;gW.py=gi;eD.nx=eM;eD.ny=en;gW.dist=fn;gW.stamp=eD.stamp;gW.posOnly=false;g8=gW}else{var eL=-ec.gnormx;var em=-ec.gnormy;var gV=null;var f2=eD.contacts.next;while(f2!=null){var fQ=f2;if(0==fQ.hash){gV=fQ;break}f2=f2.next}if(gV==null){if(c2.zpp_pool==null){gV=new c2()}else{gV=c2.zpp_pool;c2.zpp_pool=gV.next;gV.next=null}var he=gV.inner;he.jnAcc=he.jtAcc=0;gV.hash=0;gV.fresh=true;gV.arbiter=eD;eD.jrAcc=0;var fg=eD.contacts;gV._inuse=true;var fv=gV;fv.next=fg.next;fg.next=fv;fg.modified=true;fg.length++;eD.innards.add(he)}else{gV.fresh=false}gV.px=eu;gV.py=gi;eD.nx=eL;eD.ny=em;gV.dist=fn;gV.stamp=eD.stamp;gV.posOnly=false;g8=gV}eD.ptype=fz?0:1;eD.lnormx=ec.lnormx;eD.lnormy=ec.lnormy;eD.rev=!fz;eD.lproj=ec.lprojection;eD.radius=gd.circle.radius;g8.inner.lr1x=gd.circle.localCOMx;g8.inner.lr1y=gd.circle.localCOMy;eD.__ref_edge1=ec;eD.__ref_vertex=0;return true}}}else{return false}}}else{var eV=gd.circle.radius+ga.circle.radius;var es=0;var gg=0;es=ga.circle.worldCOMx-gd.circle.worldCOMx;gg=ga.circle.worldCOMy-gd.circle.worldCOMy;var gy=es*es+gg*gg;var fC;if(gy>eV*eV){fC=null}else{if(gy<P.epsilon*P.epsilon){var er=gd.circle.worldCOMx;var gf=gd.circle.worldCOMy;var fP=null;var f1=eD.contacts.next;while(f1!=null){var e8=f1;if(0==e8.hash){fP=e8;break}f1=f1.next}if(fP==null){if(c2.zpp_pool==null){fP=new c2()}else{fP=c2.zpp_pool;c2.zpp_pool=fP.next;fP.next=null}var g7=fP.inner;g7.jnAcc=g7.jtAcc=0;fP.hash=0;fP.fresh=true;fP.arbiter=eD;eD.jrAcc=0;var gc=eD.contacts;fP._inuse=true;var hd=fP;hd.next=gc.next;gc.next=hd;gc.modified=true;gc.length++;eD.innards.add(g7)}else{fP.fresh=false}fP.px=er;fP.py=gf;eD.nx=1;eD.ny=0;fP.dist=-eV;fP.stamp=eD.stamp;fP.posOnly=false;fC=fP}else{var ea=1/Math.sqrt(gy);var fF=ea<P.epsilon?1e+100:1/ea;var gx=0.5+(gd.circle.radius-0.5*eV)*ea;if(fz){var eq=gd.circle.worldCOMx+es*gx;var ge=gd.circle.worldCOMy+gg*gx;var fO=null;var f0=eD.contacts.next;while(f0!=null){var e7=f0;if(0==e7.hash){fO=e7;break}f0=f0.next}if(fO==null){if(c2.zpp_pool==null){fO=new c2()}else{fO=c2.zpp_pool;c2.zpp_pool=fO.next;fO.next=null}var g6=fO.inner;g6.jnAcc=g6.jtAcc=0;fO.hash=0;fO.fresh=true;fO.arbiter=eD;eD.jrAcc=0;var f9=eD.contacts;fO._inuse=true;var hc=fO;hc.next=f9.next;f9.next=hc;f9.modified=true;f9.length++;eD.innards.add(g6)}else{fO.fresh=false}fO.px=eq;fO.py=ge;eD.nx=-es*ea;eD.ny=-gg*ea;fO.dist=fF-eV;fO.stamp=eD.stamp;fO.posOnly=false;fC=fO}else{var eo=gd.circle.worldCOMx+es*gx;var gb=gd.circle.worldCOMy+gg*gx;var fN=null;var fZ=eD.contacts.next;while(fZ!=null){var e6=fZ;if(0==e6.hash){fN=e6;break}fZ=fZ.next}if(fN==null){if(c2.zpp_pool==null){fN=new c2()}else{fN=c2.zpp_pool;c2.zpp_pool=fN.next;fN.next=null}var g4=fN.inner;g4.jnAcc=g4.jtAcc=0;fN.hash=0;fN.fresh=true;fN.arbiter=eD;eD.jrAcc=0;var f8=eD.contacts;fN._inuse=true;var hb=fN;hb.next=f8.next;f8.next=hb;f8.modified=true;f8.length++;eD.innards.add(g4)}else{fN.fresh=false}fN.px=eo;fN.py=gb;eD.nx=es*ea;eD.ny=gg*ea;fN.dist=fF-eV;fN.stamp=eD.stamp;fN.posOnly=false;fC=fN}}}if(fC!=null){var g5=fC.inner;if(fz){g5.lr1x=ga.circle.localCOMx;g5.lr1y=ga.circle.localCOMy;g5.lr2x=gd.circle.localCOMx;g5.lr2y=gd.circle.localCOMy}else{g5.lr1x=gd.circle.localCOMx;g5.lr1y=gd.circle.localCOMy;g5.lr2x=ga.circle.localCOMx;g5.lr2y=ga.circle.localCOMy}eD.radius=gd.circle.radius+ga.circle.radius;eD.ptype=2;return true}else{return false}}};b7.testCollide_safe=function(ec,ea){if(ea.type==0){var eb=ec;ec=ea;ea=eb}return b7.testCollide(ec,ea)};b7.testCollide=function(ee,ec){if(ec.type==1){if(ee.type==1){var ef=true;var ex=ee.polygon.edges.head;while(ex!=null){var em=ex.elt;var ew=1e+100;var eu=ec.polygon.gverts.next;while(eu!=null){var en=eu;var ez=em.gnormx*en.x+em.gnormy*en.y;if(ez<ew){ew=ez}eu=eu.next}ew-=em.gprojection;if(ew>0){ef=false;break}ex=ex.next}if(ef){var et=ec.polygon.edges.head;while(et!=null){var el=et.elt;var ey=1e+100;var es=ee.polygon.gverts.next;while(es!=null){var eg=es;var ek=el.gnormx*eg.x+el.gnormy*eg.y;if(ek<ey){ey=ek}es=es.next}ey-=el.gprojection;if(ey>0){ef=false;break}et=et.next}return ef}else{return false}}else{var eI=null;var eG=null;var eE=true;var eC=-1e+100;var eH=ec.polygon.gverts.next;var er=ec.polygon.edges.head;while(er!=null){var eF=er.elt;var ev=eF.gnormx*ee.circle.worldCOMx+eF.gnormy*ee.circle.worldCOMy-eF.gprojection-ee.circle.radius;if(ev>0){eE=false;break}if(ev>eC){eC=ev;eI=eF;eG=eH}eH=eH.next;er=er.next}if(eE){var eh=eG;var eD=eG.next==null?ec.polygon.gverts.next:eG.next;var eq=ee.circle.worldCOMy*eI.gnormx-ee.circle.worldCOMx*eI.gnormy;if(eq<=eh.y*eI.gnormx-eh.x*eI.gnormy){var eb=ee.circle.radius;var ep=0;var eo=0;ep=eh.x-ee.circle.worldCOMx;eo=eh.y-ee.circle.worldCOMy;return ep*ep+eo*eo<=eb*eb}else{if(eq>=eD.y*eI.gnormx-eD.x*eI.gnormy){var ej=ee.circle.radius;var eB=0;var ed=0;eB=eD.x-ee.circle.worldCOMx;ed=eD.y-ee.circle.worldCOMy;return eB*eB+ed*ed<=ej*ej}else{return true}}}else{return false}}}else{var ei=ee.circle.radius+ec.circle.radius;var eA=0;var ea=0;eA=ec.circle.worldCOMx-ee.circle.worldCOMx;ea=ec.circle.worldCOMy-ee.circle.worldCOMy;return eA*eA+ea*ea<=ei*ei}};b7.flowCollide=function(hw,hu,ke){if(hu.type==1){if(hw.type==1){var hR=[];var hO=[];var fb=true;var gW=true;var j5=hw.polygon.edges.head;while(j5!=null){var mb=j5.elt;var eI=1e+100;var lC=0;var gd=hu.polygon.gverts.next;while(gd!=null){var lj=gd;var lz=mb.gnormx*lj.x+mb.gnormy*lj.y;if(lz<eI){eI=lz}if(lz>=mb.gprojection+P.epsilon){hO[lC]=true;gW=false}++lC;gd=gd.next}eI-=mb.gprojection;if(eI>0){fb=false;break}j5=j5.next}if(gW){var gz=hu.polygon;if(gz.zip_worldCOM){if(gz.body!=null){gz.zip_worldCOM=false;if(gz.zip_localCOM){gz.zip_localCOM=false;if(gz.type==1){var eY=gz.polygon;if(eY.lverts.next.next==null){eY.localCOMx=eY.lverts.next.x;eY.localCOMy=eY.lverts.next.y}else{if(eY.lverts.next.next.next==null){eY.localCOMx=eY.lverts.next.x;eY.localCOMy=eY.lverts.next.y;eY.localCOMx+=eY.lverts.next.next.x;eY.localCOMy+=eY.lverts.next.next.y;eY.localCOMx*=0.5;eY.localCOMy*=0.5}else{eY.localCOMx=0;eY.localCOMy=0;var iu=0;var gb=eY.lverts.next;var lm=gb;gb=gb.next;var gl=gb;gb=gb.next;while(gb!=null){var lg=gb;iu+=gl.x*(lg.y-lm.y);var lB=lg.y*gl.x-lg.x*gl.y;eY.localCOMx+=(gl.x+lg.x)*lB;eY.localCOMy+=(gl.y+lg.y)*lB;lm=gl;gl=lg;gb=gb.next}gb=eY.lverts.next;var fZ=gb;iu+=gl.x*(fZ.y-lm.y);var kG=fZ.y*gl.x-fZ.x*gl.y;eY.localCOMx+=(gl.x+fZ.x)*kG;eY.localCOMy+=(gl.y+fZ.y)*kG;lm=gl;gb=gb.next;var fX=gb;iu+=fZ.x*(fX.y-lm.y);var kE=fX.y*fZ.x-fX.x*fZ.y;eY.localCOMx+=(fZ.x+fX.x)*kE;eY.localCOMy+=(fZ.y+fX.y)*kE;iu=1/(3*iu);var lo=iu;eY.localCOMx*=lo;eY.localCOMy*=lo}}}if(gz.wrap_localCOM!=null){gz.wrap_localCOM.zpp_inner.x=gz.localCOMx;gz.wrap_localCOM.zpp_inner.y=gz.localCOMy}}var eW=gz.body;if(eW.zip_axis){eW.zip_axis=false;eW.axisx=Math.sin(eW.rot);eW.axisy=Math.cos(eW.rot)}gz.worldCOMx=gz.body.posx+(gz.body.axisy*gz.localCOMx-gz.body.axisx*gz.localCOMy);gz.worldCOMy=gz.body.posy+(gz.localCOMx*gz.body.axisx+gz.localCOMy*gz.body.axisy)}}var lZ=hu.polygon.area;var lc=hu.polygon.worldCOMx;var lb=hu.polygon.worldCOMy;ke.overlap=lZ;ke.centroidx=lc;ke.centroidy=lb;return true}else{if(fb){gW=true;var f9=hu.polygon.edges.head;while(f9!=null){var jp=f9.elt;var hm=1e+100;var kF=0;var f7=hw.polygon.gverts.next;while(f7!=null){var gj=f7;var jJ=jp.gnormx*gj.x+jp.gnormy*gj.y;if(jJ<hm){hm=jJ}if(jJ>=jp.gprojection+P.epsilon){hR[kF]=true;gW=false}++kF;f7=f7.next}hm-=jp.gprojection;if(hm>0){fb=false;break}f9=f9.next}if(gW){var eU=hw.polygon;if(eU.zip_worldCOM){if(eU.body!=null){eU.zip_worldCOM=false;if(eU.zip_localCOM){eU.zip_localCOM=false;if(eU.type==1){var eT=eU.polygon;if(eT.lverts.next.next==null){eT.localCOMx=eT.lverts.next.x;eT.localCOMy=eT.lverts.next.y}else{if(eT.lverts.next.next.next==null){eT.localCOMx=eT.lverts.next.x;eT.localCOMy=eT.lverts.next.y;eT.localCOMx+=eT.lverts.next.next.x;eT.localCOMy+=eT.lverts.next.next.y;eT.localCOMx*=0.5;eT.localCOMy*=0.5}else{eT.localCOMx=0;eT.localCOMy=0;var lX=0;var f6=eT.lverts.next;var gM=f6;f6=f6.next;var gh=f6;f6=f6.next;while(f6!=null){var fV=f6;lX+=gh.x*(fV.y-gM.y);var kC=fV.y*gh.x-fV.x*gh.y;eT.localCOMx+=(gh.x+fV.x)*kC;eT.localCOMy+=(gh.y+fV.y)*kC;gM=gh;gh=fV;f6=f6.next}f6=eT.lverts.next;var fT=f6;lX+=gh.x*(fT.y-gM.y);var kA=fT.y*gh.x-fT.x*gh.y;eT.localCOMx+=(gh.x+fT.x)*kA;eT.localCOMy+=(gh.y+fT.y)*kA;gM=gh;f6=f6.next;var fR=f6;lX+=fT.x*(fR.y-gM.y);var ky=fR.y*fT.x-fR.x*fT.y;eT.localCOMx+=(fT.x+fR.x)*ky;eT.localCOMy+=(fT.y+fR.y)*ky;lX=1/(3*lX);var g6=lX;eT.localCOMx*=g6;eT.localCOMy*=g6}}}if(eU.wrap_localCOM!=null){eU.wrap_localCOM.zpp_inner.x=eU.localCOMx;eU.wrap_localCOM.zpp_inner.y=eU.localCOMy}}var eS=eU.body;if(eS.zip_axis){eS.zip_axis=false;eS.axisx=Math.sin(eS.rot);eS.axisy=Math.cos(eS.rot)}eU.worldCOMx=eU.body.posx+(eU.body.axisy*eU.localCOMx-eU.body.axisx*eU.localCOMy);eU.worldCOMy=eU.body.posy+(eU.localCOMx*eU.body.axisx+eU.localCOMy*eU.body.axisy)}}var lW=hw.polygon.area;var eO=hw.polygon.worldCOMx;var ee=hw.polygon.worldCOMy;ke.overlap=lW;ke.centroidx=eO;ke.centroidy=ee;return true}else{if(fb){while(b7.flowpoly.head!=null){var lv=b7.flowpoly.pop_unsafe();if(!lv._inuse){if(lv.outer!=null){lv.outer.zpp_inner=null;lv.outer=null}lv._isimmutable=null;lv._validate=null;lv._invalidate=null;lv.next=bB.zpp_pool;bB.zpp_pool=lv}}var i0=null;var jY=false;var gO=hw.polygon.gverts.next;var l3=0;var gN=hu.polygon.gverts.next;var kD=0;var kj=0;var ez=hu.polygon.edgeCnt;while(kj<ez){var lA=kj++;if(!hO[lA]){kD=lA;break}else{gN=gN.next}}if(gN==null){gN=hu.polygon.gverts.next;jY=true;var el=0;var kh=hw.polygon.edgeCnt;while(el<kh){var j6=el++;if(!hR[j6]){l3=j6;break}else{gO=gO.next}}if(gO==null){gO=hw.polygon.gverts.next}else{b7.flowpoly.add(gO);i0=b7.flowpoly.head.elt}}else{b7.flowpoly.add(gN);i0=b7.flowpoly.head.elt}var ik=1;if(b7.flowpoly.head==null){var eq=true;var fj=hw.polygon.gverts.next;var gL=fj;var fg=fj.next;while(fg!=null){var gg=fg;var hl=2;var km=hu.polygon.gverts.next;var lI=km;var ka=km.next;while(ka!=null){var lG=ka;var g4=0;var gm=0;var gk=0;gm=gL.x-lI.x;gk=gL.y-lI.y;var eN=0;var eK=0;eN=gg.x-gL.x;eK=gg.y-gL.y;var g7=0;var g5=0;g7=lG.x-lI.x;g5=lG.y-lI.y;var iJ=eK*g7-eN*g5;var fH;if(iJ*iJ>P.epsilon*P.epsilon){iJ=1/iJ;var j0=(g5*gm-g7*gk)*iJ;if(j0>P.epsilon&&j0<1-P.epsilon){var l5=(eK*gm-eN*gk)*iJ;if(l5>P.epsilon&&l5<1-P.epsilon){g4=j0;fH=true}else{fH=false}}else{fH=false}}else{fH=false}if(fH){if(g4<hl){hl=g4;gN=km}}km=ka;lI=lG;ka=ka.next}while(true){ka=hu.polygon.gverts.next;var ms=ka;var g3=0;var fL=0;var e7=0;fL=gL.x-lI.x;e7=gL.y-lI.y;var ie=0;var hS=0;ie=gg.x-gL.x;hS=gg.y-gL.y;var jQ=0;var jx=0;jQ=ms.x-lI.x;jx=ms.y-lI.y;var lr=hS*jQ-ie*jx;var hz;if(lr*lr>P.epsilon*P.epsilon){lr=1/lr;var gw=(jx*fL-jQ*e7)*lr;if(gw>P.epsilon&&gw<1-P.epsilon){var ey=(hS*fL-ie*e7)*lr;if(ey>P.epsilon&&ey<1-P.epsilon){g3=gw;hz=true}else{hz=false}}else{hz=false}}else{hz=false}if(hz){if(g3<hl){hl=g3;gN=km}}break}if(hl!=2){var eL=0;var ec=0;var lP=hl;eL=gL.x+(gg.x-gL.x)*lP;ec=gL.y+(gg.y-gL.y)*lP;var md;if(bB.zpp_pool==null){md=new bB()}else{md=bB.zpp_pool;bB.zpp_pool=md.next;md.next=null}md.weak=false;md._immutable=false;md.x=eL;md.y=ec;i0=md;b7.flowpoly.add(i0);jY=true;gO=fj;eq=false;break}fj=fg;gL=gg;fg=fg.next}if(eq){while(true){fg=hw.polygon.gverts.next;var gf=fg;var hj=2;var kk=hu.polygon.gverts.next;var en=kk;var j8=kk.next;while(j8!=null){var mr=j8;var g2=0;var fJ=0;var e6=0;fJ=gL.x-en.x;e6=gL.y-en.y;var ib=0;var hP=0;ib=gf.x-gL.x;hP=gf.y-gL.y;var jO=0;var jw=0;jO=mr.x-en.x;jw=mr.y-en.y;var lp=hP*jO-ib*jw;var hy;if(lp*lp>P.epsilon*P.epsilon){lp=1/lp;var gu=(jw*fJ-jO*e6)*lp;if(gu>P.epsilon&&gu<1-P.epsilon){var ew=(hP*fJ-ib*e6)*lp;if(ew>P.epsilon&&ew<1-P.epsilon){g2=gu;hy=true}else{hy=false}}else{hy=false}}else{hy=false}if(hy){if(g2<hj){hj=g2;gN=kk}}kk=j8;en=mr;j8=j8.next}while(true){j8=hu.polygon.gverts.next;var mq=j8;var g1=0;var fG=0;var e5=0;fG=gL.x-en.x;e5=gL.y-en.y;var h8=0;var hM=0;h8=gf.x-gL.x;hM=gf.y-gL.y;var jM=0;var jv=0;jM=mq.x-en.x;jv=mq.y-en.y;var ln=hM*jM-h8*jv;var hx;if(ln*ln>P.epsilon*P.epsilon){ln=1/ln;var gs=(jv*fG-jM*e5)*ln;if(gs>P.epsilon&&gs<1-P.epsilon){var ev=(hM*fG-h8*e5)*ln;if(ev>P.epsilon&&ev<1-P.epsilon){g1=gs;hx=true}else{hx=false}}else{hx=false}}else{hx=false}if(hx){if(g1<hj){hj=g1;gN=kk}}break}if(hj!=2){var eH=0;var eb=0;var jd=hj;eH=gL.x+(gf.x-gL.x)*jd;eb=gL.y+(gf.y-gL.y)*jd;var k8;if(bB.zpp_pool==null){k8=new bB()}else{k8=bB.zpp_pool;bB.zpp_pool=k8.next;k8.next=null}k8.weak=false;k8._immutable=false;k8.x=eH;k8.y=eb;i0=k8;b7.flowpoly.add(i0);jY=true;gO=fj;break}break}}ik=2}while(true){if(jY){gO=gO.next;++l3;if(gO==null){gO=hw.polygon.gverts.next;l3=0}if(!hR[l3]){var kt=gO;var hv;if(i0!=null){var jo=kt.x;var ma=kt.y;var lK=i0.x;var lJ=i0.y;var kU=0;var kS=0;kU=jo-lK;kS=ma-lJ;hv=kU*kU+kS*kS<P.epsilon}else{hv=false}if(hv){break}b7.flowpoly.add(kt);if(i0==null){i0=b7.flowpoly.head.elt}ik=1}else{var em=b7.flowpoly.head.elt;var mp=gO;var gK=gN;var jI=gN.next;if(jI==null){jI=hu.polygon.gverts.next}var ih=-1;var kY=null;var j7=0;var e2=0;var mc=jI;var f5=jI;while(true){var ge=f5;var g0=0;var fE=0;var e4=0;fE=gK.x-em.x;e4=gK.y-em.y;var h6=0;var hK=0;h6=ge.x-gK.x;hK=ge.y-gK.y;var jK=0;var ju=0;jK=mp.x-em.x;ju=mp.y-em.y;var ll=hK*jK-h6*ju;var ht;if(ll*ll>P.epsilon*P.epsilon){ll=1/ll;var gr=(ju*fE-jK*e4)*ll;if(gr>P.epsilon&&gr<1-P.epsilon){var eu=(hK*fE-h6*e4)*ll;if(eu>P.epsilon&&eu<1-P.epsilon){g0=gr;ht=true}else{ht=false}}else{ht=false}}else{ht=false}if(ht){if(g0>=-1){kY=gN;j7=kD;e2=1;if(1==ik){ih=g0;f5=mc;break}else{ih=g0}}}gK=ge;gN=f5;++kD;if(kD>=hu.polygon.edgeCnt){kD=0}f5=f5.next;if(f5==null){f5=hu.polygon.gverts.next}break}while(f5!=mc){var gc=f5;var gZ=0;var fC=0;var e3=0;fC=gK.x-em.x;e3=gK.y-em.y;var h4=0;var hI=0;h4=gc.x-gK.x;hI=gc.y-gK.y;var jG=0;var jt=0;jG=mp.x-em.x;jt=mp.y-em.y;var lh=hI*jG-h4*jt;var hs;if(lh*lh>P.epsilon*P.epsilon){lh=1/lh;var gq=(jt*fC-jG*e3)*lh;if(gq>P.epsilon&&gq<1-P.epsilon){var et=(hI*fC-h4*e3)*lh;if(et>P.epsilon&&et<1-P.epsilon){gZ=gq;hs=true}else{hs=false}}else{hs=false}}else{hs=false}if(hs){if(gZ>=ih){kY=gN;j7=kD;if(++e2==ik){ih=gZ;break}else{ih=gZ}}}gK=gc;gN=f5;++kD;if(kD>=hu.polygon.edgeCnt){kD=0}f5=f5.next;if(f5==null){f5=hu.polygon.gverts.next}}if(kY==null){break}var gJ=kY;var lQ=kY.next;if(lQ==null){lQ=hu.polygon.gverts.next}var ga=lQ;var eG=0;var ea=0;var ja=ih;eG=gJ.x+(ga.x-gJ.x)*ja;ea=gJ.y+(ga.y-gJ.y)*ja;var hr;if(i0!=null){var hE=i0.x;var hf=i0.y;var kR=0;var kr=0;kR=eG-hE;kr=ea-hf;hr=kR*kR+kr*kr<P.epsilon}else{hr=false}if(hr){break}var k7;if(bB.zpp_pool==null){k7=new bB()}else{k7=bB.zpp_pool;bB.zpp_pool=k7.next;k7.next=null}k7.weak=false;k7._immutable=false;k7.x=eG;k7.y=ea;b7.flowpoly.add(k7);if(i0==null){i0=b7.flowpoly.head.elt}gN=kY;kD=j7;jY=!jY;ik=2}}else{gN=gN.next;++kD;if(gN==null){gN=hu.polygon.gverts.next;kD=0}if(!hO[kD]){var i9=gN;var hq;if(i0!=null){var jm=i9.x;var iY=i9.y;var hD=i0.x;var hd=i0.y;var kQ=0;var kq=0;kQ=jm-hD;kq=iY-hd;hq=kQ*kQ+kq*kq<P.epsilon}else{hq=false}if(hq){break}b7.flowpoly.add(i9);if(i0==null){i0=b7.flowpoly.head.elt}ik=1}else{var ek=b7.flowpoly.head.elt;var mo=gN;var gI=gO;var lS=gO.next;if(lS==null){lS=hw.polygon.gverts.next}var lN=-1;var fc=null;var iz=0;var l9=0;var la=lS;var f4=lS;while(true){var f8=f4;var gV=0;var fA=0;var e1=0;fA=gI.x-ek.x;e1=gI.y-ek.y;var h2=0;var hG=0;h2=f8.x-gI.x;hG=f8.y-gI.y;var jE=0;var jr=0;jE=mo.x-ek.x;jr=mo.y-ek.y;var le=hG*jE-h2*jr;var hp;if(le*le>P.epsilon*P.epsilon){le=1/le;var gp=(jr*fA-jE*e1)*le;if(gp>P.epsilon&&gp<1-P.epsilon){var es=(hG*fA-h2*e1)*le;if(es>P.epsilon&&es<1-P.epsilon){gV=gp;hp=true}else{hp=false}}else{hp=false}}else{hp=false}if(hp){if(gV>=-1){fc=gO;iz=l3;l9=1;if(1==ik){lN=gV;f4=la;break}else{lN=gV}}}gI=f8;gO=f4;++l3;if(l3>=hw.polygon.edgeCnt){l3=0}f4=f4.next;if(f4==null){f4=hw.polygon.gverts.next}break}while(f4!=la){var fM=f4;var gT=0;var fy=0;var e0=0;fy=gI.x-ek.x;e0=gI.y-ek.y;var h0=0;var hF=0;h0=fM.x-gI.x;hF=fM.y-gI.y;var jC=0;var jq=0;jC=mo.x-ek.x;jq=mo.y-ek.y;var ld=hF*jC-h0*jq;var mk;if(ld*ld>P.epsilon*P.epsilon){ld=1/ld;var go=(jq*fy-jC*e0)*ld;if(go>P.epsilon&&go<1-P.epsilon){var ep=(hF*fy-h0*e0)*ld;if(ep>P.epsilon&&ep<1-P.epsilon){gT=go;mk=true}else{mk=false}}else{mk=false}}else{mk=false}if(mk){if(gT>=lN){fc=gO;iz=l3;if(++l9==ik){lN=gT;break}else{lN=gT}}}gI=fM;gO=f4;++l3;if(l3>=hw.polygon.edgeCnt){l3=0}f4=f4.next;if(f4==null){f4=hw.polygon.gverts.next}}if(fc==null){break}var gH=fc;var jc=fc.next;if(jc==null){jc=hw.polygon.gverts.next}var fK=jc;var eF=0;var my=0;var i8=lN;eF=gH.x+(fK.x-gH.x)*i8;my=gH.y+(fK.y-gH.y)*i8;var mj;if(i0!=null){var hC=i0.x;var hb=i0.y;var kP=0;var kp=0;kP=eF-hC;kp=my-hb;mj=kP*kP+kp*kp<P.epsilon}else{mj=false}if(mj){break}var k6;if(bB.zpp_pool==null){k6=new bB()}else{k6=bB.zpp_pool;bB.zpp_pool=k6.next;k6.next=null}k6.weak=false;k6._immutable=false;k6.x=eF;k6.y=my;b7.flowpoly.add(k6);if(i0==null){i0=b7.flowpoly.head.elt}gO=fc;l3=iz;jY=!jY;ik=2}}}if(b7.flowpoly.head!=null&&b7.flowpoly.head.next!=null&&b7.flowpoly.head.next.next!=null){var lV=0;var iB=0;var iA=0;iB=0;iA=0;lV=0;var f3=b7.flowpoly.head;var gG=f3.elt;f3=f3.next;var fI=f3.elt;f3=f3.next;while(f3!=null){var fQ=f3.elt;lV+=fI.x*(fQ.y-gG.y);var kx=fQ.y*fI.x-fQ.x*fI.y;iB+=(fI.x+fQ.x)*kx;iA+=(fI.y+fQ.y)*kx;gG=fI;fI=fQ;f3=f3.next}f3=b7.flowpoly.head;var fP=f3.elt;lV+=fI.x*(fP.y-gG.y);var kw=fP.y*fI.x-fP.x*fI.y;iB+=(fI.x+fP.x)*kw;iA+=(fI.y+fP.y)*kw;gG=fI;f3=f3.next;var fO=f3.elt;lV+=fP.x*(fO.y-gG.y);var kv=fO.y*fP.x-fO.x*fP.y;iB+=(fP.x+fO.x)*kv;iA+=(fP.y+fO.y)*kv;lV*=0.5;var jU=1/(6*lV);iB*=jU;iA*=jU;ke.overlap=-lV;ke.centroidx=iB;ke.centroidy=iA;return true}else{return false}}else{return false}}}else{return false}}}else{var eZ=[];var jX=true;var eo=null;var fq=null;var lL=-1e+100;var gY=true;var iv=hu.polygon.gverts.next;var kB=0;var f1=hu.polygon.edges.head;while(f1!=null){var ej=f1.elt;var jn=ej.gnormx*hw.circle.worldCOMx+ej.gnormy*hw.circle.worldCOMy;if(jn>ej.gprojection+hw.circle.radius){gY=false;break}else{if(jn+hw.circle.radius>ej.gprojection+P.epsilon){jX=false;eZ[kB]=true}}jn-=ej.gprojection+hw.circle.radius;if(jn>lL){lL=jn;eo=ej;fq=iv}iv=iv.next;++kB;f1=f1.next}if(gY){if(jX){var lU=hw.circle.area;var eE=hw.circle.worldCOMx;var mx=hw.circle.worldCOMy;ke.overlap=lU;ke.centroidx=eE;ke.centroidy=mx;return true}else{var gn=fq;var fF=fq.next==null?hu.polygon.gverts.next:fq.next;var kW=hw.circle.worldCOMy*eo.gnormx-hw.circle.worldCOMx*eo.gnormy;var mi;if(kW<=gn.y*eo.gnormx-gn.x*eo.gnormy){var j1=hw.circle.radius;var hV=0;var hU=0;hV=gn.x-hw.circle.worldCOMx;hU=gn.y-hw.circle.worldCOMy;mi=hV*hV+hU*hU<=j1*j1}else{if(kW>=fF.y*eo.gnormx-fF.x*eo.gnormy){var kd=hw.circle.radius;var ks=0;var kc=0;ks=fF.x-hw.circle.worldCOMx;kc=fF.y-hw.circle.worldCOMy;mi=ks*ks+kc*kc<=kd*kd}else{mi=true}}if(mi){var lk=[];var kz=0;var jV=true;var li=null;var jW=0;var ei=hu.polygon.gverts.next;while(ei!=null){var fD=ei;var jl=fD.x;var iW=fD.y;var hB=hw.circle.worldCOMx;var ha=hw.circle.worldCOMy;var kN=0;var ko=0;kN=jl-hB;ko=iW-ha;if(!(lk[kz]=kN*kN+ko*ko<=hw.circle.radius*hw.circle.radius)){jV=false}else{jW=kz;li=ei}++kz;ei=ei.next}if(jV){var eR=hu.polygon;if(eR.zip_worldCOM){if(eR.body!=null){eR.zip_worldCOM=false;if(eR.zip_localCOM){eR.zip_localCOM=false;if(eR.type==1){var eQ=eR.polygon;if(eQ.lverts.next.next==null){eQ.localCOMx=eQ.lverts.next.x;eQ.localCOMy=eQ.lverts.next.y}else{if(eQ.lverts.next.next.next==null){eQ.localCOMx=eQ.lverts.next.x;eQ.localCOMy=eQ.lverts.next.y;eQ.localCOMx+=eQ.lverts.next.next.x;eQ.localCOMy+=eQ.lverts.next.next.y;eQ.localCOMx*=0.5;eQ.localCOMy*=0.5}else{eQ.localCOMx=0;eQ.localCOMy=0;var lT=0;var eh=eQ.lverts.next;var gE=eh;eh=eh.next;var fB=eh;eh=eh.next;while(eh!=null){var fN=eh;lT+=fB.x*(fN.y-gE.y);var ku=fN.y*fB.x-fN.x*fB.y;eQ.localCOMx+=(fB.x+fN.x)*ku;eQ.localCOMy+=(fB.y+fN.y)*ku;gE=fB;fB=fN;eh=eh.next}eh=eQ.lverts.next;var ly=eh;lT+=fB.x*(ly.y-gE.y);var l4=ly.y*fB.x-ly.x*fB.y;eQ.localCOMx+=(fB.x+ly.x)*l4;eQ.localCOMy+=(fB.y+ly.y)*l4;gE=fB;eh=eh.next;var lx=eh;lT+=ly.x*(lx.y-gE.y);var l2=lx.y*ly.x-lx.x*ly.y;eQ.localCOMx+=(ly.x+lx.x)*l2;eQ.localCOMy+=(ly.y+lx.y)*l2;lT=1/(3*lT);var jR=lT;eQ.localCOMx*=jR;eQ.localCOMy*=jR}}}if(eR.wrap_localCOM!=null){eR.wrap_localCOM.zpp_inner.x=eR.localCOMx;eR.wrap_localCOM.zpp_inner.y=eR.localCOMy}}var eP=eR.body;if(eP.zip_axis){eP.zip_axis=false;eP.axisx=Math.sin(eP.rot);eP.axisy=Math.cos(eP.rot)}eR.worldCOMx=eR.body.posx+(eR.body.axisy*eR.localCOMx-eR.body.axisx*eR.localCOMy);eR.worldCOMy=eR.body.posy+(eR.localCOMx*eR.body.axisx+eR.localCOMy*eR.body.axisy)}}var lR=hu.polygon.area;var eD=hu.polygon.worldCOMx;var mw=hu.polygon.worldCOMy;ke.overlap=lR;ke.centroidx=eD;ke.centroidy=mw;return true}else{while(b7.flowpoly.head!=null){var iC=b7.flowpoly.pop_unsafe();if(!iC._inuse){if(iC.outer!=null){iC.outer.zpp_inner=null;iC.outer=null}iC._isimmutable=null;iC._validate=null;iC._invalidate=null;iC.next=bB.zpp_pool;bB.zpp_pool=iC}}b7.flowsegs.clear();var iD=null;var f2=1;if(li==null){li=hu.polygon.gverts.next;f2=2}else{iD=li;b7.flowpoly.add(iD)}while(f2!=0){if(f2==1){li=li.next;if(li==null){li=hu.polygon.gverts.next}++jW;if(jW>=hu.polygon.edgeCnt){jW=0}if(lk[jW]){var jk=iD.x;var iU=iD.y;var hA=li.x;var g9=li.y;var kL=0;var kn=0;kL=jk-hA;kn=iU-g9;if(kL*kL+kn*kn<P.epsilon){break}b7.flowpoly.add(li)}else{var gC=b7.flowpoly.head.elt;var fz=li;var fa=0;var e9=0;fa=fz.x-gC.x;e9=fz.y-gC.y;var ho=0;var hn=0;ho=gC.x-hw.circle.worldCOMx;hn=gC.y-hw.circle.worldCOMy;var l8=fa*fa+e9*e9;var l7=2*(ho*fa+hn*e9);var l6=Math.sqrt(l7*l7-4*l8*(ho*ho+hn*hn-hw.circle.radius*hw.circle.radius));l8=1/(2*l8);var jP=(-l7-l6)*l8;var jg=jP<P.epsilon?(-l7+l6)*l8:jP;var eC=0;var mv=0;var i7=jg;eC=gC.x+(fz.x-gC.x)*i7;mv=gC.y+(fz.y-gC.y)*i7;var ji=iD.x;var iT=iD.y;var kK=0;var kl=0;kK=ji-eC;kl=iT-mv;if(kK*kK+kl*kl<P.epsilon){break}var k5;if(bB.zpp_pool==null){k5=new bB()}else{k5=bB.zpp_pool;bB.zpp_pool=k5.next;k5.next=null}k5.weak=false;k5._immutable=false;k5.x=eC;k5.y=mv;b7.flowpoly.add(k5);f2=2}}else{if(f2==2){var lf=li.next;if(lf==null){lf=hu.polygon.gverts.next}var il=li;f2=0;var k9=lf;var eg=lf;while(true){var fx=eg;var jS=jW+1;if(jS==hu.polygon.edgeCnt){jS=0}if(eZ[jW]){if(lk[jS]){var gX=0;var gF=0;gX=fx.x-il.x;gF=fx.y-il.y;var iQ=0;var iI=0;iQ=il.x-hw.circle.worldCOMx;iI=il.y-hw.circle.worldCOMy;var hN=gX*gX+gF*gF;var hk=2*(iQ*gX+iI*gF);var gy=Math.sqrt(hk*hk-4*hN*(iQ*iQ+iI*iI-hw.circle.radius*hw.circle.radius));hN=1/(2*hN);var jN=(-hk-gy)*hN;var kO=jN<P.epsilon?(-hk+gy)*hN:jN;var eB=0;var mu=0;var i6=kO;eB=il.x+(fx.x-il.x)*i6;mu=il.y+(fx.y-il.y)*i6;var jf=iD.x;var iS=iD.y;var kJ=0;var ki=0;kJ=jf-eB;ki=iS-mu;if(kJ*kJ+ki*ki<P.epsilon){f2=0;eg=k9;break}var k4;if(bB.zpp_pool==null){k4=new bB()}else{k4=bB.zpp_pool;bB.zpp_pool=k4.next;k4.next=null}k4.weak=false;k4._immutable=false;k4.x=eB;k4.y=mu;var lt=k4;b7.flowsegs.add(b7.flowpoly.head.elt);b7.flowsegs.add(lt);b7.flowpoly.add(lt);f2=1;eg=k9;break}else{var g8=0;var jL=0;var gU=0;var gD=0;gU=fx.x-il.x;gD=fx.y-il.y;var iO=0;var iH=0;iO=il.x-hw.circle.worldCOMx;iH=il.y-hw.circle.worldCOMy;var hL=gU*gU+gD*gD;var hi=2*(iO*gU+iH*gD);var gx=hi*hi-4*hL*(iO*iO+iH*iH-hw.circle.radius*hw.circle.radius);var j9;if(gx*gx<P.epsilon){if(gx<0){g8=10}else{jL=-hi/(2*hL);g8=jL}j9=false}else{gx=Math.sqrt(gx);hL=1/(2*hL);g8=(-hi-gx)*hL;jL=(-hi+gx)*hL;j9=true}if(g8<1-P.epsilon&&jL>P.epsilon){var ig=0;var fv=0;var i5=g8;ig=il.x+(fx.x-il.x)*i5;fv=il.y+(fx.y-il.y)*i5;var mh;if(iD!=null){var je=iD.x;var iP=iD.y;var kI=0;var kg=0;kI=je-ig;kg=iP-fv;mh=kI*kI+kg*kg<P.epsilon}else{mh=false}if(mh){f2=0;eg=k9;break}var k3;if(bB.zpp_pool==null){k3=new bB()}else{k3=bB.zpp_pool;bB.zpp_pool=k3.next;k3.next=null}k3.weak=false;k3._immutable=false;k3.x=ig;k3.y=fv;var ip=k3;if(b7.flowpoly.head!=null){b7.flowsegs.add(b7.flowpoly.head.elt);b7.flowsegs.add(ip)}b7.flowpoly.add(ip);if(iD==null){iD=b7.flowpoly.head.elt}if(j9){var ic=0;var ft=0;var i4=jL;ic=il.x+(fx.x-il.x)*i4;ft=il.y+(fx.y-il.y)*i4;var k2;if(bB.zpp_pool==null){k2=new bB()}else{k2=bB.zpp_pool;bB.zpp_pool=k2.next;k2.next=null}k2.weak=false;k2._immutable=false;k2.x=ic;k2.y=ft;b7.flowpoly.add(k2)}}}}il=fx;li=eg;jW=jS;eg=eg.next;if(eg==null){eg=hu.polygon.gverts.next}break}while(eg!=k9){var fw=eg;var ix=jW+1;if(ix==hu.polygon.edgeCnt){ix=0}if(eZ[jW]){if(lk[ix]){var gS=0;var gB=0;gS=fw.x-il.x;gB=fw.y-il.y;var iM=0;var iG=0;iM=il.x-hw.circle.worldCOMx;iG=il.y-hw.circle.worldCOMy;var hJ=gS*gS+gB*gB;var hh=2*(iM*gS+iG*gB);var gv=Math.sqrt(hh*hh-4*hJ*(iM*iM+iG*iG-hw.circle.radius*hw.circle.radius));hJ=1/(2*hJ);var jH=(-hh-gv)*hJ;var kM=jH<P.epsilon?(-hh+gv)*hJ:jH;var h9=0;var fs=0;var i3=kM;h9=il.x+(fw.x-il.x)*i3;fs=il.y+(fw.y-il.y)*i3;var jb=iD.x;var iN=iD.y;var kH=0;var kf=0;kH=jb-h9;kf=iN-fs;if(kH*kH+kf*kf<P.epsilon){f2=0;break}var k0;if(bB.zpp_pool==null){k0=new bB()}else{k0=bB.zpp_pool;bB.zpp_pool=k0.next;k0.next=null}k0.weak=false;k0._immutable=false;k0.x=h9;k0.y=fs;var io=k0;b7.flowsegs.add(b7.flowpoly.head.elt);b7.flowsegs.add(io);b7.flowpoly.add(io);f2=1;break}else{var j2=0;var jF=0;var gR=0;var gA=0;gR=fw.x-il.x;gA=fw.y-il.y;var iK=0;var iF=0;iK=il.x-hw.circle.worldCOMx;iF=il.y-hw.circle.worldCOMy;var hH=gR*gR+gA*gA;var hg=2*(iK*gR+iF*gA);var gt=hg*hg-4*hH*(iK*iK+iF*iF-hw.circle.radius*hw.circle.radius);var kT;if(gt*gt<P.epsilon){if(gt<0){j2=10}else{jF=-hg/(2*hH);j2=jF}kT=false}else{gt=Math.sqrt(gt);hH=1/(2*hH);j2=(-hg-gt)*hH;jF=(-hg+gt)*hH;kT=true}if(j2<1-P.epsilon&&jF>P.epsilon){var h7=0;var fr=0;var i2=j2;h7=il.x+(fw.x-il.x)*i2;fr=il.y+(fw.y-il.y)*i2;var mg;if(iD!=null){var eA=iD.x;var iL=iD.y;var iX=0;var he=0;iX=eA-h7;he=iL-fr;mg=iX*iX+he*he<P.epsilon}else{mg=false}if(mg){f2=0;break}var kZ;if(bB.zpp_pool==null){kZ=new bB()}else{kZ=bB.zpp_pool;bB.zpp_pool=kZ.next;kZ.next=null}kZ.weak=false;kZ._immutable=false;kZ.x=h7;kZ.y=fr;var im=kZ;if(b7.flowpoly.head!=null){b7.flowsegs.add(b7.flowpoly.head.elt);b7.flowsegs.add(im)}b7.flowpoly.add(im);if(iD==null){iD=b7.flowpoly.head.elt}if(kT){var h5=0;var fp=0;var kb=jF;h5=il.x+(fw.x-il.x)*kb;fp=il.y+(fw.y-il.y)*kb;var kV;if(bB.zpp_pool==null){kV=new bB()}else{kV=bB.zpp_pool;bB.zpp_pool=kV.next;kV.next=null}kV.weak=false;kV._immutable=false;kV.x=h5;kV.y=fp;b7.flowpoly.add(kV)}}}}il=fw;li=eg;jW=ix;eg=eg.next;if(eg==null){eg=hu.polygon.gverts.next}}}}}if(b7.flowpoly.head==null){return false}else{if(b7.flowpoly.head.next==null){var mn=true;var ef=hu.polygon.edges.head;while(ef!=null){var lD=ef.elt;if(lD.gnormx*hw.circle.worldCOMx+lD.gnormy*hw.circle.worldCOMy>lD.gprojection){mn=false;break}ef=ef.next}if(mn){var lO=hw.circle.area;var h3=hw.circle.worldCOMx;var fo=hw.circle.worldCOMy;ke.overlap=lO;ke.centroidx=h3;ke.centroidy=fo;return true}else{return false}}else{var jj=0;var iR=0;var lM=0;if(b7.flowpoly.head.next.next!=null){var jZ=0;var j4=0;var j3=0;j4=0;j3=0;jZ=0;var ed=b7.flowpoly.head;var ij=ed.elt;ed=ed.next;var fu=ed.elt;ed=ed.next;while(ed!=null){var lw=ed.elt;jZ+=fu.x*(lw.y-ij.y);var l1=lw.y*fu.x-lw.x*fu.y;j4+=(fu.x+lw.x)*l1;j3+=(fu.y+lw.y)*l1;ij=fu;fu=lw;ed=ed.next}ed=b7.flowpoly.head;var lu=ed.elt;jZ+=fu.x*(lu.y-ij.y);var l0=lu.y*fu.x-lu.x*fu.y;j4+=(fu.x+lu.x)*l0;j3+=(fu.y+lu.y)*l0;ij=fu;ed=ed.next;var ls=ed.elt;jZ+=lu.x*(ls.y-ij.y);var lY=ls.y*lu.x-ls.x*lu.y;j4+=(lu.x+ls.x)*lY;j3+=(lu.y+ls.y)*lY;jZ*=0.5;var iE=1/(6*jZ);j4*=iE;j3*=iE;var jD=-jZ;jj+=j4*jD;iR+=j3*jD;lM=0-jZ}else{b7.flowsegs.add(b7.flowpoly.head.elt);b7.flowsegs.add(b7.flowpoly.head.next.elt)}while(b7.flowsegs.head!=null){var ii=b7.flowsegs.pop_unsafe();var e8=b7.flowsegs.pop_unsafe();var iV=0;var hc=0;iV=e8.x-ii.x;hc=e8.y-ii.y;var iy=0;var iw=0;iy=iV;iw=hc;var fd=1/Math.sqrt(iy*iy+iw*iw);iy*=fd;iw*=fd;var jB=iy;iy=-iw;iw=jB;var h1=0;var fn=0;h1=ii.x+e8.x;fn=ii.y+e8.y;h1*=0.5;fn*=0.5;h1-=hw.circle.worldCOMx;fn-=hw.circle.worldCOMy;var er=iy*h1+iw*fn;var jh=0;var fe=0;var hW=er/hw.circle.radius;var iZ=Math.sqrt(1-hW*hW);var gi=Math.acos(hW);jh=hw.circle.radius*(hw.circle.radius*gi-er*iZ);fe=0.6666666666666666*hw.circle.radius*iZ*iZ*iZ/(gi-hW*iZ);h1=hw.circle.worldCOMx;fn=hw.circle.worldCOMy;var jA=fe;h1+=iy*jA;fn+=iw*jA;var jz=jh;jj+=h1*jz;iR+=fn*jz;lM+=jh}var jy=1/lM;jj*=jy;iR*=jy;ke.overlap=lM;ke.centroidx=jj;ke.centroidy=iR;return true}}}}else{return false}}}else{return false}}}else{var mf=hw.circle;var me=hu.circle;var lH=0;var lF=0;lH=me.worldCOMx-mf.worldCOMx;lF=me.worldCOMy-mf.worldCOMy;var lq=mf.radius+me.radius;var kX=lH*lH+lF*lF;if(kX>lq*lq){return false}else{if(kX<P.epsilon*P.epsilon){if(mf.radius<me.radius){var f0=mf.area;var hZ=mf.worldCOMx;var fm=mf.worldCOMy;ke.overlap=f0;ke.centroidx=hZ;ke.centroidy=fm}else{var fY=me.area;var hY=me.worldCOMx;var fl=me.worldCOMy;ke.overlap=fY;ke.centroidx=hY;ke.centroidy=fl}return true}else{var lE=Math.sqrt(kX);var jT=1/lE;var fi=0.5*(lE-(me.radius*me.radius-mf.radius*mf.radius)*jT);if(fi<=-mf.radius){var fW=mf.area;var hX=mf.worldCOMx;var fk=mf.worldCOMy;ke.overlap=fW;ke.centroidx=hX;ke.centroidy=fk}else{var ff=lE-fi;if(ff<=-me.radius){var fU=me.area;var hT=me.worldCOMx;var eX=me.worldCOMy;ke.overlap=fU;ke.centroidx=hT;ke.centroidy=eX}else{var fS=0;var eM=0;var fh=0;var eJ=0;var mm=fi/mf.radius;var gQ=Math.sqrt(1-mm*mm);var it=Math.acos(mm);fS=mf.radius*(mf.radius*it-fi*gQ);eM=0.6666666666666666*mf.radius*gQ*gQ*gQ/(it-mm*gQ);var ml=ff/me.radius;var gP=Math.sqrt(1-ml*ml);var ir=Math.acos(ml);fh=me.radius*(me.radius*ir-ff*gP);eJ=0.6666666666666666*me.radius*gP*gP*gP/(ir-ml*gP);var iq=fS+fh;var mt=(eM*fS+(lE-eJ)*fh)/iq*jT;var hQ=mf.worldCOMx+lH*mt;var eV=mf.worldCOMy+lF*mt;ke.overlap=iq;ke.centroidx=hQ;ke.centroidy=eV}}return true}}}};b7.prototype.__class__=b7;var an=zpp_nape.geom.ZPP_Convex=function(){};an.__name__=["zpp_nape","geom","ZPP_Convex"];an.isinner=function(eb,ea,eg){var ed=0;var ec=0;ed=eb.x-ea.x;ec=eb.y-ea.y;var ef=0;var ee=0;ef=eg.x-ea.x;ee=eg.y-ea.y;return ee*ed-ef*ec>=0};an.optimise=function(ei){var ep=ei.vertices;var el=ei.vertices;if(ep!=null){var ef=ep;while(true){ef.sort();ef=ef.next;if(!(ef!=el)){break}}}var ej=ei.vertices;var eg=ei.vertices;if(ej!=null){var eq=ej;while(true){var ec=eq;var ed=ec.prev;var ea=null;var ee=ec.diagonals.head;while(ee!=null){var em=ee.elt;if(!an.isinner(ee.next==null?ec.next:ee.next.elt,ec,ed)){ea=ee;ed=em;ee=ee.next;continue}var eb=true;var eh=em.prev;var eo=null;var en=em.diagonals.head;while(en!=null){var ek=en.elt;if(ek==ec){eb=an.isinner(en.next==null?em.next:en.next.elt,em,eh);break}eh=ek;eo=en;en=en.next}if(eb){ee=ec.diagonals.erase(ea);em.diagonals.erase(eo);continue}ed=em;ea=ee;ee=ee.next}eq=eq.next;if(!(eq!=eg)){break}}}};an.prototype.__class__=an;var a4=zpp_nape.geom.ZPP_ConvexRayResult=function(){this.toiDistance=0;this.next=null;this.inner=false;this.ray=null;this.position=null;this.convex=null;this.shape=null;this.normal=null};a4.__name__=["zpp_nape","geom","ZPP_ConvexRayResult"];a4.getRay=function(ef,ee,eb,ea){var ed;if(a4.rayPool==null){a4.internal=true;ed=new df();ed.zpp_inner=new a4();ed.zpp_inner.ray=ed;a4.internal=false}else{ed=a4.rayPool.ray;a4.rayPool=a4.rayPool.next;ed.zpp_inner.next=null}var ec=ed.zpp_inner;ec.normal=ef;ef.zpp_inner._immutable=true;ec.toiDistance=ee;ec.inner=eb;ec.shape=ea;return ed};a4.getConvex=function(ef,ea,ee,ec){var ed;if(a4.convexPool==null){a4.internal=true;ed=new bJ();ed.zpp_inner=new a4();ed.zpp_inner.convex=ed;a4.internal=false}else{ed=a4.convexPool.convex;a4.convexPool=a4.convexPool.next;ed.zpp_inner.next=null}var eb=ed.zpp_inner;eb.normal=ef;eb.position=ea;ef.zpp_inner._immutable=true;ea.zpp_inner._immutable=true;eb.toiDistance=ee;eb.shape=ec;return ed};a4.prototype.normal=null;a4.prototype.shape=null;a4.prototype.convex=null;a4.prototype.position=null;a4.prototype.ray=null;a4.prototype.inner=null;a4.prototype.next=null;a4.prototype.toiDistance=null;a4.prototype.disposed=function(){};a4.prototype.free=function(){this.normal.zpp_inner._immutable=false;var ed=this.normal;var eb=ed.zpp_inner;ed.zpp_inner.outer=null;ed.zpp_inner=null;ed.zpp_pool=au.poolVec2;au.poolVec2=ed;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb;if(this.position!=null){this.position.zpp_inner._immutable=false;var ec=this.position;var ea=ec.zpp_inner;ec.zpp_inner.outer=null;ec.zpp_inner=null;ec.zpp_pool=au.poolVec2;au.poolVec2=ec;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea}this.shape=null;this.toiDistance=0;if(this.convex!=null){this.next=a4.convexPool;a4.convexPool=this}else{this.next=a4.rayPool;a4.rayPool=this}};a4.prototype.__class__=a4;var E=zpp_nape.geom.ZPP_CutVert=function(){this.used=false;this.rank=0;this.parent=null;this.positive=false;this.value=0;this.vert=null;this.posy=0;this.posx=0;this.next=null;this.prev=null};E.__name__=["zpp_nape","geom","ZPP_CutVert"];E.path=function(eb){var ea;if(E.zpp_pool==null){ea=new E()}else{ea=E.zpp_pool;E.zpp_pool=ea.next;ea.next=null}ea.vert=eb;ea.parent=ea;ea.rank=0;ea.used=false;return ea};E.prototype.prev=null;E.prototype.next=null;E.prototype.posx=null;E.prototype.posy=null;E.prototype.vert=null;E.prototype.value=null;E.prototype.positive=null;E.prototype.parent=null;E.prototype.rank=null;E.prototype.used=null;E.prototype.alloc=function(){};E.prototype.free=function(){this.vert=null;this.parent=null};E.prototype.__class__=E;var c3=zpp_nape.geom.ZPP_CutInt=function(){this.path1=null;this.start=null;this.end=null;this.path0=null;this.vertex=false;this.virtualint=false;this.time=0;this.next=null};c3.__name__=["zpp_nape","geom","ZPP_CutInt"];c3.get=function(ee,ea,eh,eg,ef,ec,ed){if(ed==null){ed=false}if(ec==null){ec=false}var eb;if(c3.zpp_pool==null){eb=new c3()}else{eb=c3.zpp_pool;c3.zpp_pool=eb.next;eb.next=null}eb.virtualint=ec;eb.end=ea;eb.start=eh;eb.path0=eg;eb.path1=ef;eb.time=ee;eb.vertex=ed;return eb};c3.prototype.next=null;c3.prototype.time=null;c3.prototype.virtualint=null;c3.prototype.vertex=null;c3.prototype.path0=null;c3.prototype.end=null;c3.prototype.start=null;c3.prototype.path1=null;c3.prototype.alloc=function(){};c3.prototype.free=function(){this.end=this.start=null;this.path0=this.path1=null};c3.prototype.__class__=c3;var az=zpp_nape.geom.ZPP_Cutter=function(){};az.__name__=["zpp_nape","geom","ZPP_Cutter"];az.run=function(g9,eX,h0,eh,f9,hR){var f7=0;var f6=0;var f5=eX.zpp_inner;if(f5._validate!=null){f5._validate()}f7=eX.zpp_inner.x;var fn=eX.zpp_inner;if(fn._validate!=null){fn._validate()}f6=eX.zpp_inner.y;var f4=0;var f3=0;var fm=h0.zpp_inner;if(fm._validate!=null){fm._validate()}f4=h0.zpp_inner.x-f7;var fl=h0.zpp_inner;if(fl._validate!=null){fl._validate()}f3=h0.zpp_inner.y-f6;var gl=eh?0:-Infinity;var e1=f9?1:Infinity;var el=-(f6*f4-f7*f3);var hM=null;var gt=false;var gi=g9;while(true){var gy;if(E.zpp_pool==null){gy=new E()}else{gy=E.zpp_pool;E.zpp_pool=gy.next;gy.next=null}gy.vert=gi;gy.posx=gy.vert.x;gy.posy=gy.vert.y;gy.value=gy.posy*f4-gy.posx*f3+el;gy.positive=gy.value>0;if(gy.value==0){gt=true}var eY=gy;if(hM==null){hM=eY.prev=eY.next=eY}else{eY.prev=hM;eY.next=hM.next;hM.next.prev=eY;hM.next=eY}hM=eY;gi=gi.next;if(!(gi!=g9)){break}}if(gt){var hb=null;var ho=hM;var hf=hM;if(ho!=null){var gs=ho;while(true){var hi=gs;if(hi.value!=0){hb=hi;break}gs=gs.next;if(!(gs!=hf)){break}}}var g7=0;var g6=0;g7=f4;g6=f3;var eB=1/Math.sqrt(g7*g7+g6*g6);g7*=eB;g6*=eB;var ge=g7;g7=-g6;g6=ge;var fI=null;var hh=hb;while(true){if(hh.value!=0&&(fI==null||hh==fI.next)){fI=hh;hh=hh.next;if(!(hh!=hb)){break}else{continue}}var hX=fI.value*hh.value;if(hX==0){hh=hh.next;if(!(hh!=hb)){break}else{continue}}var gF=fI.next;var em;if(hX>0){em=fI.positive}else{var gB=gF.next;var gU=0;var gP=0;gU=gF.posx+gB.posx;gP=gF.posy+gB.posy;gU*=0.5;gP*=0.5;var gd=gU+g7*1e-8;var gc=gP+g6*1e-8;var fG=false;if(g9!=null){var e7=g9;while(true){var hg=e7;var gh=hg.prev;if((hg.y<gc&&gh.y>=gc||gh.y<gc&&hg.y>=gc)&&(hg.x<=gd||gh.x<=gd)){if(hg.x+(gc-hg.y)/(gh.y-hg.y)*(gh.x-hg.x)<gd){fG=!fG}}e7=e7.next;if(!(e7!=g9)){break}}}em=fG}var gn=hh;if(gF!=null){var e6=gF;while(true){e6.positive=em;e6=e6.next;if(!(e6!=gn)){break}}}fI=hh;hh=hh.next;if(!(hh!=hb)){break}}while(true){if(hh.value!=0&&(fI==null||hh==fI.next)){fI=hh;hh=hh.next;break}var fd=fI.value*hh.value;if(fd==0){hh=hh.next;break}var eb=fI.next;var ef;if(fd>0){ef=fI.positive}else{var hQ=eb.next;var eW=0;var eI=0;eW=eb.posx+hQ.posx;eI=eb.posy+hQ.posy;eW*=0.5;eI*=0.5;var eH=eW+g7*1e-8;var et=eI+g6*1e-8;var g2=false;if(g9!=null){var e4=g9;while(true){var he=e4;var gr=he.prev;if((he.y<et&&gr.y>=et||gr.y<et&&he.y>=et)&&(he.x<=eH||gr.x<=eH)){if(he.x+(et-he.y)/(gr.y-he.y)*(gr.x-he.x)<eH){g2=!g2}}e4=e4.next;if(!(e4!=g9)){break}}}ef=g2}var gm=hh;if(eb!=null){var e3=eb;while(true){e3.positive=ef;e3=e3.next;if(!(e3!=gm)){break}}}fI=hh;hh=hh.next;break}}if(az.ints==null){az.ints=new t()}if(az.paths==null){az.paths=new B()}var fi=null;var eG=hM.posx;var er=hM.posy;var g1;if(dr.zpp_pool==null){g1=new dr()}else{g1=dr.zpp_pool;dr.zpp_pool=g1.next;g1.next=null}g1.forced=false;g1.x=eG;g1.y=er;var fF=g1;if(fi==null){fi=fF.prev=fF.next=fF}else{fF.next=fi;fF.prev=fi.prev;fi.prev.next=fF;fi.prev=fF}var hY=fi;var gZ;if(E.zpp_pool==null){gZ=new E()}else{gZ=E.zpp_pool;E.zpp_pool=gZ.next;gZ.next=null}gZ.vert=fi;gZ.parent=gZ;gZ.rank=0;gZ.used=false;var e2=gZ;az.paths.add(e2);var gq=hM;while(true){var go=gq.next;var eF=go.posx;var ep=go.posy;var gX;if(dr.zpp_pool==null){gX=new dr()}else{gX=dr.zpp_pool;dr.zpp_pool=gX.next;gX.next=null}gX.forced=false;gX.x=eF;gX.y=ep;var gb=gX;if(gq.positive==go.positive){if(fi==null){fi=gb.prev=gb.next=gb}else{gb.next=fi;gb.prev=fi.prev;fi.prev.next=gb;fi.prev=gb}}else{var eR=0;var eP=0;eR=go.posx-gq.posx;eP=go.posy-gq.posy;var fo=f3*eR-f4*eP;fo=1/fo;var hl=0;var hj=0;hl=f7-gq.posx;hj=f6-gq.posy;var gg=(eP*hl-eR*hj)*fo;if(gg<gl||gg>e1){var gT;if(c3.zpp_pool==null){gT=new c3()}else{gT=c3.zpp_pool;c3.zpp_pool=gT.next;gT.next=null}gT.virtualint=true;gT.end=null;gT.start=null;gT.path0=null;gT.path1=null;gT.time=gg;gT.vertex=false;az.ints.add(gT);if(fi==null){fi=gb.prev=gb.next=gb}else{gb.next=fi;gb.prev=fi.prev;fi.prev.next=gb;fi.prev=gb}}else{if(gq.value==0){var eJ=fi.prev;fi=null;var eE=eJ.x;var eo=eJ.y;var gO;if(dr.zpp_pool==null){gO=new dr()}else{gO=dr.zpp_pool;dr.zpp_pool=gO.next;gO.next=null}gO.forced=false;gO.x=eE;gO.y=eo;var fE=gO;if(fi==null){fi=fE.prev=fE.next=fE}else{fE.next=fi;fE.prev=fi.prev;fi.prev.next=fE;fi.prev=fE}if(fi==null){fi=gb.prev=gb.next=gb}else{gb.next=fi;gb.prev=fi.prev;fi.prev.next=gb;fi.prev=gb}var f8=az.paths.head.elt;var gJ;if(E.zpp_pool==null){gJ=new E()}else{gJ=E.zpp_pool;E.zpp_pool=gJ.next;gJ.next=null}gJ.vert=fi;gJ.parent=gJ;gJ.rank=0;gJ.used=false;az.paths.add(gJ);var e0=az.paths.head.elt;var gE;if(c3.zpp_pool==null){gE=new c3()}else{gE=c3.zpp_pool;c3.zpp_pool=gE.next;gE.next=null}gE.virtualint=true;gE.end=eJ;gE.start=fi;gE.path0=f8;gE.path1=e0;gE.time=gg;gE.vertex=false;az.ints.add(gE)}else{if(go.value==0){if(fi==null){fi=gb.prev=gb.next=gb}else{gb.next=fi;gb.prev=fi.prev;fi.prev.next=gb;fi.prev=gb}var g5=fi.prev;fi=null;var eD=go.posx;var en=go.posy;var gA;if(dr.zpp_pool==null){gA=new dr()}else{gA=dr.zpp_pool;dr.zpp_pool=gA.next;gA.next=null}gA.forced=false;gA.x=eD;gA.y=en;var fC=gA;if(fi==null){fi=fC.prev=fC.next=fC}else{fC.next=fi;fC.prev=fi.prev;fi.prev.next=fC;fi.prev=fC}var hV=az.paths.head.elt;var f2;if(E.zpp_pool==null){f2=new E()}else{f2=E.zpp_pool;E.zpp_pool=f2.next;f2.next=null}f2.vert=fi;f2.parent=f2;f2.rank=0;f2.used=false;az.paths.add(f2);var ek=az.paths.head.elt;var f1;if(c3.zpp_pool==null){f1=new c3()}else{f1=c3.zpp_pool;c3.zpp_pool=f1.next;f1.next=null}f1.virtualint=true;f1.end=g5;f1.start=fi;f1.path0=hV;f1.path1=ek;f1.time=gg;f1.vertex=false;az.ints.add(f1)}else{var fH=(f3*hl-f4*hj)*fo;var fL=0;var fJ=0;fL=gq.posx;fJ=gq.posy;fL+=eR*fH;fJ+=eP*fH;var f0;if(dr.zpp_pool==null){f0=new dr()}else{f0=dr.zpp_pool;dr.zpp_pool=f0.next;f0.next=null}f0.forced=false;f0.x=fL;f0.y=fJ;var fy=f0;if(fi==null){fi=fy.prev=fy.next=fy}else{fy.next=fi;fy.prev=fi.prev;fi.prev.next=fy;fi.prev=fy}var g4=fi.prev;fi=null;var fY;if(dr.zpp_pool==null){fY=new dr()}else{fY=dr.zpp_pool;dr.zpp_pool=fY.next;fY.next=null}fY.forced=false;fY.x=fL;fY.y=fJ;var fw=fY;if(fi==null){fi=fw.prev=fw.next=fw}else{fw.next=fi;fw.prev=fi.prev;fi.prev.next=fw;fi.prev=fw}if(fi==null){fi=gb.prev=gb.next=gb}else{gb.next=fi;gb.prev=fi.prev;fi.prev.next=gb;fi.prev=gb}var hU=az.paths.head.elt;var fX;if(E.zpp_pool==null){fX=new E()}else{fX=E.zpp_pool;E.zpp_pool=fX.next;fX.next=null}fX.vert=fi;fX.parent=fX;fX.rank=0;fX.used=false;az.paths.add(fX);var ej=az.paths.head.elt;var fW;if(c3.zpp_pool==null){fW=new c3()}else{fW=c3.zpp_pool;c3.zpp_pool=fW.next;fW.next=null}fW.virtualint=false;fW.end=g4;fW.start=fi;fW.path0=hU;fW.path1=ej;fW.time=gg;fW.vertex=false;az.ints.add(fW)}}}}gq=gq.next;if(!(gq!=hM)){break}}var g3=fi.prev;g3.next.prev=hY.prev;hY.prev.next=g3.next;g3.next=hY;hY.prev=g3;var fs=az.paths.head.elt;var hZ;if(e2==e2.parent){hZ=e2}else{var fv=e2;var ed=null;while(fv!=fv.parent){var hW=fv.parent;fv.parent=ed;ed=fv;fv=hW}while(ed!=null){var eV=ed.parent;ed.parent=fv;ed=eV}hZ=fv}var hP;if(fs==fs.parent){hP=fs}else{var fu=fs;var gW=null;while(fu!=fu.parent){var eU=fu.parent;fu.parent=gW;gW=fu;fu=eU}while(gW!=null){var eT=gW.parent;gW.parent=fu;gW=eT}hP=fu}if(hZ!=hP){if(hZ.rank<hP.rank){hZ.parent=hP}else{if(hZ.rank>hP.rank){hP.parent=hZ}else{hP.parent=hZ;hZ.rank++}}}var fq=az.ints;if(fq.head!=null&&fq.head.next!=null){var ea=fq.head;var hT=null;var fp=null;var fB=null;var eS=null;var fz=1;var gv;var eL;var hz;while(true){gv=0;fp=ea;ea=null;hT=ea;while(fp!=null){++gv;fB=fp;eL=0;hz=fz;while(fB!=null&&eL<fz){++eL;fB=fB.next}while(eL>0||hz>0&&fB!=null){if(eL==0){eS=fB;fB=fB.next;--hz}else{if(hz==0||fB==null){eS=fp;fp=fp.next;--eL}else{if(fp.elt.time<fB.elt.time){eS=fp;fp=fp.next;--eL}else{eS=fB;fB=fB.next;--hz}}}if(hT!=null){hT.next=eS}else{ea=eS}hT=eS}fp=fB}hT.next=null;fz<<=1;if(!(gv>1)){break}}fq.head=ea;fq.modified=true;fq.pushmod=true}while(az.ints.head!=null){var e8=az.ints.pop_unsafe();var eZ=az.ints.pop_unsafe();if(!e8.virtualint&&!eZ.virtualint){e8.end.next.prev=eZ.start.prev;eZ.start.prev.next=e8.end.next;e8.end.next=eZ.start;eZ.start.prev=e8.end;eZ.end.next.prev=e8.start.prev;e8.start.prev.next=eZ.end.next;eZ.end.next=e8.start;e8.start.prev=eZ.end;var fO;if(e8.path0==e8.path0.parent){fO=e8.path0}else{var ft=e8.path0;var gS=null;while(ft!=ft.parent){var eQ=ft.parent;ft.parent=gS;gS=ft;ft=eQ}while(gS!=null){var eO=gS.parent;gS.parent=ft;gS=eO}fO=ft}var ei;if(eZ.path1==eZ.path1.parent){ei=eZ.path1}else{var fr=eZ.path1;var gN=null;while(fr!=fr.parent){var eN=fr.parent;fr.parent=gN;gN=fr;fr=eN}while(gN!=null){var eM=gN.parent;gN.parent=fr;gN=eM}ei=fr}if(fO!=ei){if(fO.rank<ei.rank){fO.parent=ei}else{if(fO.rank>ei.rank){ei.parent=fO}else{ei.parent=fO;fO.rank++}}}var fN;if(e8.path1==e8.path1.parent){fN=e8.path1}else{var hJ=e8.path1;var gI=null;while(hJ!=hJ.parent){var eK=hJ.parent;hJ.parent=gI;gI=hJ;hJ=eK}while(gI!=null){var hw=gI.parent;gI.parent=hJ;gI=hw}fN=hJ}var eg;if(eZ.path0==eZ.path0.parent){eg=eZ.path0}else{var hH=eZ.path0;var gD=null;while(hH!=hH.parent){var hv=hH.parent;hH.parent=gD;gD=hH;hH=hv}while(gD!=null){var hu=gD.parent;gD.parent=hH;gD=hu}eg=hH}if(fN!=eg){if(fN.rank<eg.rank){fN.parent=eg}else{if(fN.rank>eg.rank){eg.parent=fN}else{eg.parent=fN;fN.rank++}}}}else{if(e8.virtualint&&!eZ.virtualint){var hs;if(eZ.end!=null&&eZ.end.prev==eZ.end){eZ.end.next=eZ.end.prev=null;var gj=eZ.end;if(gj.wrap!=null){gj.wrap.zpp_inner._inuse=false;var fk=gj.wrap;var gM=fk.zpp_inner;fk.zpp_inner.outer=null;fk.zpp_inner=null;fk.zpp_pool=au.poolVec2;au.poolVec2=fk;if(gM.outer!=null){gM.outer.zpp_inner=null;gM.outer=null}gM._isimmutable=null;gM._validate=null;gM._invalidate=null;gM.next=bB.zpp_pool;bB.zpp_pool=gM;gj.wrap=null}gj.prev=gj.next=null;gj.next=dr.zpp_pool;dr.zpp_pool=gj;hs=null}else{var fZ=eZ.end.prev;eZ.end.prev.next=eZ.end.next;eZ.end.next.prev=eZ.end.prev;eZ.end.next=eZ.end.prev=null;var hO=eZ.end;if(hO.wrap!=null){hO.wrap.zpp_inner._inuse=false;var fh=hO.wrap;var eA=fh.zpp_inner;fh.zpp_inner.outer=null;fh.zpp_inner=null;fh.zpp_pool=au.poolVec2;au.poolVec2=fh;if(eA.outer!=null){eA.outer.zpp_inner=null;eA.outer=null}eA._isimmutable=null;eA._validate=null;eA._invalidate=null;eA.next=bB.zpp_pool;bB.zpp_pool=eA;hO.wrap=null}hO.prev=hO.next=null;hO.next=dr.zpp_pool;dr.zpp_pool=hO;eZ.end=null;hs=fZ}eZ.end=hs;if(!eZ.vertex){if(eZ.end!=eZ.path0.vert){eZ.start.x=eZ.end.x;eZ.start.y=eZ.end.y;var fD;if(eZ.end!=null&&eZ.end.prev==eZ.end){eZ.end.next=eZ.end.prev=null;var hN=eZ.end;if(hN.wrap!=null){hN.wrap.zpp_inner._inuse=false;var ff=hN.wrap;var ez=ff.zpp_inner;ff.zpp_inner.outer=null;ff.zpp_inner=null;ff.zpp_pool=au.poolVec2;au.poolVec2=ff;if(ez.outer!=null){ez.outer.zpp_inner=null;ez.outer=null}ez._isimmutable=null;ez._validate=null;ez._invalidate=null;ez.next=bB.zpp_pool;bB.zpp_pool=ez;hN.wrap=null}hN.prev=hN.next=null;hN.next=dr.zpp_pool;dr.zpp_pool=hN;fD=null}else{var g0=eZ.end.prev;eZ.end.prev.next=eZ.end.next;eZ.end.next.prev=eZ.end.prev;eZ.end.next=eZ.end.prev=null;var hL=eZ.end;if(hL.wrap!=null){hL.wrap.zpp_inner._inuse=false;var fc=hL.wrap;var ey=fc.zpp_inner;fc.zpp_inner.outer=null;fc.zpp_inner=null;fc.zpp_pool=au.poolVec2;au.poolVec2=fc;if(ey.outer!=null){ey.outer.zpp_inner=null;ey.outer=null}ey._isimmutable=null;ey._validate=null;ey._invalidate=null;ey.next=bB.zpp_pool;bB.zpp_pool=ey;hL.wrap=null}hL.prev=hL.next=null;hL.next=dr.zpp_pool;dr.zpp_pool=hL;eZ.end=null;fD=g0}eZ.end=fD}else{var gk=eZ.start.next;eZ.start.x=gk.x;eZ.start.y=gk.y;if(gk!=null&&gk.prev==gk){gk.next=gk.prev=null;var hK=gk;if(hK.wrap!=null){hK.wrap.zpp_inner._inuse=false;var fa=hK.wrap;var ex=fa.zpp_inner;fa.zpp_inner.outer=null;fa.zpp_inner=null;fa.zpp_pool=au.poolVec2;au.poolVec2=fa;if(ex.outer!=null){ex.outer.zpp_inner=null;ex.outer=null}ex._isimmutable=null;ex._validate=null;ex._invalidate=null;ex.next=bB.zpp_pool;bB.zpp_pool=ex;hK.wrap=null}hK.prev=hK.next=null;hK.next=dr.zpp_pool;dr.zpp_pool=hK;gk=null}else{gk.prev.next=gk.next;gk.next.prev=gk.prev;gk.next=gk.prev=null;var hI=gk;if(hI.wrap!=null){hI.wrap.zpp_inner._inuse=false;var e9=hI.wrap;var ew=e9.zpp_inner;e9.zpp_inner.outer=null;e9.zpp_inner=null;e9.zpp_pool=au.poolVec2;au.poolVec2=e9;if(ew.outer!=null){ew.outer.zpp_inner=null;ew.outer=null}ew._isimmutable=null;ew._validate=null;ew._invalidate=null;ew.next=bB.zpp_pool;bB.zpp_pool=ew;hI.wrap=null}hI.prev=hI.next=null;hI.next=dr.zpp_pool;dr.zpp_pool=hI}}}eZ.end.next.prev=eZ.start.prev;eZ.start.prev.next=eZ.end.next;eZ.end.next=eZ.start;eZ.start.prev=eZ.end;var fM;if(eZ.path0==eZ.path0.parent){fM=eZ.path0}else{var hF=eZ.path0;var gz=null;while(hF!=hF.parent){var ht=hF.parent;hF.parent=gz;gz=hF;hF=ht}while(gz!=null){var hr=gz.parent;gz.parent=hF;gz=hr}fM=hF}var ee;if(eZ.path1==eZ.path1.parent){ee=eZ.path1}else{var hD=eZ.path1;var gx=null;while(hD!=hD.parent){var hq=hD.parent;hD.parent=gx;gx=hD;hD=hq}while(gx!=null){var hp=gx.parent;gx.parent=hD;gx=hp}ee=hD}if(fM!=ee){if(fM.rank<ee.rank){fM.parent=ee}else{if(fM.rank>ee.rank){ee.parent=fM}else{ee.parent=fM;fM.rank++}}}}else{if(eZ.virtualint&&!e8.virtualint){var fA;if(e8.end!=null&&e8.end.prev==e8.end){e8.end.next=e8.end.prev=null;var hG=e8.end;if(hG.wrap!=null){hG.wrap.zpp_inner._inuse=false;var fU=hG.wrap;var ev=fU.zpp_inner;fU.zpp_inner.outer=null;fU.zpp_inner=null;fU.zpp_pool=au.poolVec2;au.poolVec2=fU;if(ev.outer!=null){ev.outer.zpp_inner=null;ev.outer=null}ev._isimmutable=null;ev._validate=null;ev._invalidate=null;ev.next=bB.zpp_pool;bB.zpp_pool=ev;hG.wrap=null}hG.prev=hG.next=null;hG.next=dr.zpp_pool;dr.zpp_pool=hG;fA=null}else{var gY=e8.end.prev;e8.end.prev.next=e8.end.next;e8.end.next.prev=e8.end.prev;e8.end.next=e8.end.prev=null;var hE=e8.end;if(hE.wrap!=null){hE.wrap.zpp_inner._inuse=false;var fT=hE.wrap;var eu=fT.zpp_inner;fT.zpp_inner.outer=null;fT.zpp_inner=null;fT.zpp_pool=au.poolVec2;au.poolVec2=fT;if(eu.outer!=null){eu.outer.zpp_inner=null;eu.outer=null}eu._isimmutable=null;eu._validate=null;eu._invalidate=null;eu.next=bB.zpp_pool;bB.zpp_pool=eu;hE.wrap=null}hE.prev=hE.next=null;hE.next=dr.zpp_pool;dr.zpp_pool=hE;e8.end=null;fA=gY}e8.end=fA;if(!e8.vertex){if(e8.end!=e8.path0.vert){e8.start.x=e8.end.x;e8.start.y=e8.end.y;var fx;if(e8.end!=null&&e8.end.prev==e8.end){e8.end.next=e8.end.prev=null;var hC=e8.end;if(hC.wrap!=null){hC.wrap.zpp_inner._inuse=false;var fS=hC.wrap;var es=fS.zpp_inner;fS.zpp_inner.outer=null;fS.zpp_inner=null;fS.zpp_pool=au.poolVec2;au.poolVec2=fS;if(es.outer!=null){es.outer.zpp_inner=null;es.outer=null}es._isimmutable=null;es._validate=null;es._invalidate=null;es.next=bB.zpp_pool;bB.zpp_pool=es;hC.wrap=null}hC.prev=hC.next=null;hC.next=dr.zpp_pool;dr.zpp_pool=hC;fx=null}else{var gV=e8.end.prev;e8.end.prev.next=e8.end.next;e8.end.next.prev=e8.end.prev;e8.end.next=e8.end.prev=null;var hB=e8.end;if(hB.wrap!=null){hB.wrap.zpp_inner._inuse=false;var fR=hB.wrap;var eq=fR.zpp_inner;fR.zpp_inner.outer=null;fR.zpp_inner=null;fR.zpp_pool=au.poolVec2;au.poolVec2=fR;if(eq.outer!=null){eq.outer.zpp_inner=null;eq.outer=null}eq._isimmutable=null;eq._validate=null;eq._invalidate=null;eq.next=bB.zpp_pool;bB.zpp_pool=eq;hB.wrap=null}hB.prev=hB.next=null;hB.next=dr.zpp_pool;dr.zpp_pool=hB;e8.end=null;fx=gV}e8.end=fx}else{var hS=e8.start.next;e8.start.x=hS.x;e8.start.y=hS.y;if(hS!=null&&hS.prev==hS){hS.next=hS.prev=null;var fj=hS;if(fj.wrap!=null){fj.wrap.zpp_inner._inuse=false;var fQ=fj.wrap;var gH=fQ.zpp_inner;fQ.zpp_inner.outer=null;fQ.zpp_inner=null;fQ.zpp_pool=au.poolVec2;au.poolVec2=fQ;if(gH.outer!=null){gH.outer.zpp_inner=null;gH.outer=null}gH._isimmutable=null;gH._validate=null;gH._invalidate=null;gH.next=bB.zpp_pool;bB.zpp_pool=gH;fj.wrap=null}fj.prev=fj.next=null;fj.next=dr.zpp_pool;dr.zpp_pool=fj;hS=null}else{hS.prev.next=hS.next;hS.next.prev=hS.prev;hS.next=hS.prev=null;var fg=hS;if(fg.wrap!=null){fg.wrap.zpp_inner._inuse=false;var fP=fg.wrap;var gC=fP.zpp_inner;fP.zpp_inner.outer=null;fP.zpp_inner=null;fP.zpp_pool=au.poolVec2;au.poolVec2=fP;if(gC.outer!=null){gC.outer.zpp_inner=null;gC.outer=null}gC._isimmutable=null;gC._validate=null;gC._invalidate=null;gC.next=bB.zpp_pool;bB.zpp_pool=gC;fg.wrap=null}fg.prev=fg.next=null;fg.next=dr.zpp_pool;dr.zpp_pool=fg}}}e8.end.next.prev=e8.start.prev;e8.start.prev.next=e8.end.next;e8.end.next=e8.start;e8.start.prev=e8.end;var fK;if(e8.path0==e8.path0.parent){fK=e8.path0}else{var hA=e8.path0;var gw=null;while(hA!=hA.parent){var hn=hA.parent;hA.parent=gw;gw=hA;hA=hn}while(gw!=null){var hm=gw.parent;gw.parent=hA;gw=hm}fK=hA}var ec;if(e8.path1==e8.path1.parent){ec=e8.path1}else{var hy=e8.path1;var gu=null;while(hy!=hy.parent){var hk=hy.parent;hy.parent=gu;gu=hy;hy=hk}while(gu!=null){var gR=gu.parent;gu.parent=hy;gu=gR}ec=hy}if(fK!=ec){if(fK.rank<ec.rank){fK.parent=ec}else{if(fK.rank>ec.rank){ec.parent=fK}else{ec.parent=fK;fK.rank++}}}}}}e8.end=e8.start=null;e8.path0=e8.path1=null;e8.next=c3.zpp_pool;c3.zpp_pool=e8;eZ.end=eZ.start=null;eZ.path0=eZ.path1=null;eZ.next=c3.zpp_pool;c3.zpp_pool=eZ}var fV=hR==null?new u():hR;var eC=az.paths.head;while(eC!=null){var hd=eC.elt;var gf;if(hd==hd.parent){gf=hd}else{var hx=hd;var hc=null;while(hx!=hx.parent){var gL=hx.parent;hx.parent=hc;hc=hx;hx=gL}while(hc!=null){var gG=hc.parent;hc.parent=hx;hc=gG}gf=hx}if(gf.used){eC=eC.next;continue}gf.used=true;var ha=gf.vert;var ga=true;while(gf.vert!=null&&(ga||ha!=gf.vert)){ga=false;if(ha.x==ha.next.x&&ha.y==ha.next.y){if(ha==gf.vert){gf.vert=ha.next==ha?null:ha.next;ga=true}if(ha!=null&&ha.prev==ha){ha.next=ha.prev=null;ha=null;ha=ha}else{var gQ=ha.next;ha.prev.next=ha.next;ha.next.prev=ha.prev;ha.next=ha.prev=null;ha=null;ha=gQ}}else{ha=ha.next}}if(gf.vert!=null){var e5=a7.get();e5.zpp_inner.vertices=gf.vert;if(fV.zpp_inner.reverse_flag){fV.push(e5)}else{fV.unshift(e5)}}eC=eC.next}while(az.paths.head!=null){var g8=az.paths.pop_unsafe();g8.vert=null;g8.parent=null;g8.next=E.zpp_pool;E.zpp_pool=g8}while(hM!=null){if(hM!=null&&hM.prev==hM){hM.next=hM.prev=null;var fe=hM;fe.vert=null;fe.parent=null;fe.next=E.zpp_pool;E.zpp_pool=fe;hM=null;hM=hM}else{var gK=hM.next;hM.prev.next=hM.next;hM.next.prev=hM.prev;hM.next=hM.prev=null;var fb=hM;fb.vert=null;fb.parent=null;fb.next=E.zpp_pool;E.zpp_pool=fb;hM=null;hM=gK}}return fV};az.prototype.__class__=az;var bM=zpp_nape.geom.ZPP_Geom=function(){};bM.__name__=["zpp_nape","geom","ZPP_Geom"];bM.validateShape=function(eQ){if(eQ.type==1){var ea=eQ.polygon;if(ea.zip_gaxi){if(ea.body!=null){ea.zip_gaxi=false;ea.validate_laxi();var eO=ea.body;if(eO.zip_axis){eO.zip_axis=false;eO.axisx=Math.sin(eO.rot);eO.axisy=Math.cos(eO.rot)}if(ea.zip_gverts){if(ea.body!=null){ea.zip_gverts=false;ea.validate_lverts();var eM=ea.body;if(eM.zip_axis){eM.zip_axis=false;eM.axisx=Math.sin(eM.rot);eM.axisy=Math.cos(eM.rot)}var ev=ea.lverts.next;var eb=ea.gverts.next;while(eb!=null){var eU=eb;var eS=ev;ev=ev.next;eU.x=ea.body.posx+(ea.body.axisy*eS.x-ea.body.axisx*eS.y);eU.y=ea.body.posy+(eS.x*ea.body.axisx+eS.y*ea.body.axisy);eb=eb.next}}}var eV=ea.edges.head;var ej=ea.gverts.next;var eN=ej;ej=ej.next;while(ej!=null){var eL=ej;var eW=eV.elt;eV=eV.next;eW.gp0=eN;eW.gp1=eL;eW.gnormx=ea.body.axisy*eW.lnormx-ea.body.axisx*eW.lnormy;eW.gnormy=eW.lnormx*ea.body.axisx+eW.lnormy*ea.body.axisy;eW.gprojection=ea.body.posx*eW.gnormx+ea.body.posy*eW.gnormy+eW.lprojection;if(eW.wrap_gnorm!=null){eW.wrap_gnorm.zpp_inner.x=eW.gnormx;eW.wrap_gnorm.zpp_inner.y=eW.gnormy}eW.tp0=eW.gp0.y*eW.gnormx-eW.gp0.x*eW.gnormy;eW.tp1=eW.gp1.y*eW.gnormx-eW.gp1.x*eW.gnormy;eN=eL;ej=ej.next}var el=eV.elt;el.gp0=eN;el.gp1=ea.gverts.next;el.gnormx=ea.body.axisy*el.lnormx-ea.body.axisx*el.lnormy;el.gnormy=el.lnormx*ea.body.axisx+el.lnormy*ea.body.axisy;el.gprojection=ea.body.posx*el.gnormx+ea.body.posy*el.gnormy+el.lprojection;if(el.wrap_gnorm!=null){el.wrap_gnorm.zpp_inner.x=el.gnormx;el.wrap_gnorm.zpp_inner.y=el.gnormy}el.tp0=el.gp0.y*el.gnormx-el.gp0.x*el.gnormy;el.tp1=el.gp1.y*el.gnormx-el.gp1.x*el.gnormy}}}if(eQ.zip_aabb){if(eQ.body!=null){eQ.zip_aabb=false;if(eQ.type==0){var eK=eQ.circle;if(eK.zip_worldCOM){if(eK.body!=null){eK.zip_worldCOM=false;if(eK.zip_localCOM){eK.zip_localCOM=false;if(eK.type==1){var eI=eK.polygon;if(eI.lverts.next.next==null){eI.localCOMx=eI.lverts.next.x;eI.localCOMy=eI.lverts.next.y}else{if(eI.lverts.next.next.next==null){eI.localCOMx=eI.lverts.next.x;eI.localCOMy=eI.lverts.next.y;eI.localCOMx+=eI.lverts.next.next.x;eI.localCOMy+=eI.lverts.next.next.y;eI.localCOMx*=0.5;eI.localCOMy*=0.5}else{eI.localCOMx=0;eI.localCOMy=0;var et=0;var ei=eI.lverts.next;var ee=ei;ei=ei.next;var eZ=ei;ei=ei.next;while(ei!=null){var eJ=ei;et+=eZ.x*(eJ.y-ee.y);var eq=eJ.y*eZ.x-eJ.x*eZ.y;eI.localCOMx+=(eZ.x+eJ.x)*eq;eI.localCOMy+=(eZ.y+eJ.y)*eq;ee=eZ;eZ=eJ;ei=ei.next}ei=eI.lverts.next;var ew=ei;et+=eZ.x*(ew.y-ee.y);var eH=ew.y*eZ.x-ew.x*eZ.y;eI.localCOMx+=(eZ.x+ew.x)*eH;eI.localCOMy+=(eZ.y+ew.y)*eH;ee=eZ;ei=ei.next;var eu=ei;et+=ew.x*(eu.y-ee.y);var eF=eu.y*ew.x-eu.x*ew.y;eI.localCOMx+=(ew.x+eu.x)*eF;eI.localCOMy+=(ew.y+eu.y)*eF;et=1/(3*et);var eP=et;eI.localCOMx*=eP;eI.localCOMy*=eP}}}if(eK.wrap_localCOM!=null){eK.wrap_localCOM.zpp_inner.x=eK.localCOMx;eK.wrap_localCOM.zpp_inner.y=eK.localCOMy}}var eG=eK.body;if(eG.zip_axis){eG.zip_axis=false;eG.axisx=Math.sin(eG.rot);eG.axisy=Math.cos(eG.rot)}eK.worldCOMx=eK.body.posx+(eK.body.axisy*eK.localCOMx-eK.body.axisx*eK.localCOMy);eK.worldCOMy=eK.body.posy+(eK.localCOMx*eK.body.axisx+eK.localCOMy*eK.body.axisy)}}var en=eK.radius;var em=eK.radius;eK.aabb.minx=eK.worldCOMx-en;eK.aabb.miny=eK.worldCOMy-em;eK.aabb.maxx=eK.worldCOMx+en;eK.aabb.maxy=eK.worldCOMy+em}else{var eE=eQ.polygon;if(eE.zip_gverts){if(eE.body!=null){eE.zip_gverts=false;eE.validate_lverts();var eC=eE.body;if(eC.zip_axis){eC.zip_axis=false;eC.axisx=Math.sin(eC.rot);eC.axisy=Math.cos(eC.rot)}var eD=eE.lverts.next;var eh=eE.gverts.next;while(eh!=null){var eT=eh;var ec=eD;eD=eD.next;eT.x=eE.body.posx+(eE.body.axisy*ec.x-eE.body.axisx*ec.y);eT.y=eE.body.posy+(ec.x*eE.body.axisx+ec.y*eE.body.axisy);eh=eh.next}}}var eX=eE.gverts.next;eE.aabb.minx=eX.x;eE.aabb.miny=eX.y;eE.aabb.maxx=eX.x;eE.aabb.maxy=eX.y;var eg=eE.gverts.next.next;while(eg!=null){var eR=eg;if(eR.x<eE.aabb.minx){eE.aabb.minx=eR.x}if(eR.x>eE.aabb.maxx){eE.aabb.maxx=eR.x}if(eR.y<eE.aabb.miny){eE.aabb.miny=eR.y}if(eR.y>eE.aabb.maxy){eE.aabb.maxy=eR.y}eg=eg.next}}}}if(eQ.zip_worldCOM){if(eQ.body!=null){eQ.zip_worldCOM=false;if(eQ.zip_localCOM){eQ.zip_localCOM=false;if(eQ.type==1){var eA=eQ.polygon;if(eA.lverts.next.next==null){eA.localCOMx=eA.lverts.next.x;eA.localCOMy=eA.lverts.next.y}else{if(eA.lverts.next.next.next==null){eA.localCOMx=eA.lverts.next.x;eA.localCOMy=eA.lverts.next.y;eA.localCOMx+=eA.lverts.next.next.x;eA.localCOMy+=eA.lverts.next.next.y;eA.localCOMx*=0.5;eA.localCOMy*=0.5}else{eA.localCOMx=0;eA.localCOMy=0;var ek=0;var ef=eA.lverts.next;var ed=ef;ef=ef.next;var eY=ef;ef=ef.next;while(ef!=null){var es=ef;ek+=eY.x*(es.y-ed.y);var eB=es.y*eY.x-es.x*eY.y;eA.localCOMx+=(eY.x+es.x)*eB;eA.localCOMy+=(eY.y+es.y)*eB;ed=eY;eY=es;ef=ef.next}ef=eA.lverts.next;var ep=ef;ek+=eY.x*(ep.y-ed.y);var ez=ep.y*eY.x-ep.x*eY.y;eA.localCOMx+=(eY.x+ep.x)*ez;eA.localCOMy+=(eY.y+ep.y)*ez;ed=eY;ef=ef.next;var eo=ef;ek+=ep.x*(eo.y-ed.y);var ey=eo.y*ep.x-eo.x*ep.y;eA.localCOMx+=(ep.x+eo.x)*ey;eA.localCOMy+=(ep.y+eo.y)*ey;ek=1/(3*ek);var er=ek;eA.localCOMx*=er;eA.localCOMy*=er}}}if(eQ.wrap_localCOM!=null){eQ.wrap_localCOM.zpp_inner.x=eQ.localCOMx;eQ.wrap_localCOM.zpp_inner.y=eQ.localCOMy}}var ex=eQ.body;if(ex.zip_axis){ex.zip_axis=false;ex.axisx=Math.sin(ex.rot);ex.axisy=Math.cos(ex.rot)}eQ.worldCOMx=eQ.body.posx+(eQ.body.axisy*eQ.localCOMx-eQ.body.axisx*eQ.localCOMy);eQ.worldCOMy=eQ.body.posy+(eQ.localCOMx*eQ.body.axisx+eQ.localCOMy*eQ.body.axisy)}}};bM.prototype.__class__=bM;var dr=zpp_nape.geom.ZPP_GeomVert=function(){this.forced=false;this.wrap=null;this.next=null;this.prev=null;this.y=0;this.x=0};dr.__name__=["zpp_nape","geom","ZPP_GeomVert"];dr.get=function(ea,ec){var eb;if(dr.zpp_pool==null){eb=new dr()}else{eb=dr.zpp_pool;dr.zpp_pool=eb.next;eb.next=null}eb.forced=false;eb.x=ea;eb.y=ec;return eb};dr.prototype.x=null;dr.prototype.y=null;dr.prototype.prev=null;dr.prototype.next=null;dr.prototype.wrap=null;dr.prototype.forced=null;dr.prototype.free=function(){if(this.wrap!=null){this.wrap.zpp_inner._inuse=false;var eb=this.wrap;var ea=eb.zpp_inner;eb.zpp_inner.outer=null;eb.zpp_inner=null;eb.zpp_pool=au.poolVec2;au.poolVec2=eb;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;this.wrap=null}this.prev=this.next=null};dr.prototype.alloc=function(){this.forced=false};dr.prototype.wrapper=function(){if(this.wrap==null){var ea=this.x;var eh=this.y;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap=eb;this.wrap.zpp_inner._inuse=true;this.wrap.zpp_inner._invalidate=dX(this,this.modwrap);this.wrap.zpp_inner._validate=dX(this,this.getwrap)}return this.wrap};dr.prototype.modwrap=function(ea){this.x=ea.x;this.y=ea.y};dr.prototype.getwrap=function(){this.wrap.zpp_inner.x=this.x;this.wrap.zpp_inner.y=this.y};dr.prototype.__class__=dr;var b5=zpp_nape.geom.ZPP_GeomPoly=function(ea){this.vertices=null;this.outer=null;this.outer=ea};b5.__name__=["zpp_nape","geom","ZPP_GeomPoly"];b5.prototype.outer=null;b5.prototype.vertices=null;b5.prototype.__class__=b5;var dn=zpp_nape.geom.ZPP_GeomVertexIterator=function(){this.next=null;this.outer=null;this.forward=false;this.first=false;this.start=null;this.ptr=null;this.outer=new cz()};dn.__name__=["zpp_nape","geom","ZPP_GeomVertexIterator"];dn.get=function(ec,eb){var ea;if(dn.zpp_pool==null){ea=new dn()}else{ea=dn.zpp_pool;dn.zpp_pool=ea.next;ea.next=null}ea.outer.zpp_inner=ea;ea.ptr=ec;ea.forward=eb;ea.start=ec;ea.first=ec!=null;return ea.outer};dn.prototype.ptr=null;dn.prototype.start=null;dn.prototype.first=null;dn.prototype.forward=null;dn.prototype.outer=null;dn.prototype.next=null;dn.prototype.free=function(){this.outer.zpp_inner=null;this.ptr=this.start=null};dn.prototype.alloc=function(){};dn.prototype.__class__=dn;var W=zpp_nape.geom.ZPP_MarchSpan=function(){this.next=null;this.out=false;this.rank=0;this.parent=null;this.parent=this};W.__name__=["zpp_nape","geom","ZPP_MarchSpan"];W.prototype.parent=null;W.prototype.rank=null;W.prototype.out=null;W.prototype.next=null;W.prototype.free=function(){this.parent=this};W.prototype.alloc=function(){this.out=false;this.rank=0};W.prototype.__class__=W;var T=zpp_nape.geom.ZPP_MarchPair=function(){this.next=null;this.spanr=null;this.span2=null;this.span1=null;this.pd=null;this.okeyr=0;this.keyr=0;this.pr=null;this.okey2=0;this.key2=0;this.p2=null;this.okey1=0;this.key1=0;this.p1=null};T.__name__=["zpp_nape","geom","ZPP_MarchPair"];T.prototype.p1=null;T.prototype.key1=null;T.prototype.okey1=null;T.prototype.p2=null;T.prototype.key2=null;T.prototype.okey2=null;T.prototype.pr=null;T.prototype.keyr=null;T.prototype.okeyr=null;T.prototype.pd=null;T.prototype.span1=null;T.prototype.span2=null;T.prototype.spanr=null;T.prototype.next=null;T.prototype.free=function(){this.p1=this.p2=this.pr=this.pd=null;this.span1=this.span2=this.spanr=null};T.prototype.alloc=function(){};T.prototype.__class__=T;var bc=zpp_nape.geom.ZPP_MarchingSquares=function(){};bc.__name__=["zpp_nape","geom","ZPP_MarchingSquares"];bc.isos=null;bc.ints=null;bc.map=null;bc.run=function(fe,eI,en,eG,ek,eR,fE,fR,e6){var ex=eG-eI;var eK=eR.zpp_inner;if(eK._validate!=null){eK._validate()}var fP=ex/eR.zpp_inner.x;var fQ=fP|0;var eF=ek-en;var fc=eR.zpp_inner;if(fc._validate!=null){fc._validate()}var fB=eF/eR.zpp_inner.y;var fC=fB|0;if(fP!=fQ){++fQ}if(fB!=fC){++fC}if(fR){if(bc.map==null){bc.map=new ae(fQ,fC)}else{bc.map.resize(fQ,fC,null)}}if(bc.isos==null){bc.isos=new cb(fQ+1,fC+1)}else{bc.isos.resize(fQ+1,fC+1,0)}var er=0;var eq=fC+1;while(er<eq){var eY=er++;var fD;if(eY==0){fD=en}else{if(eY<=fC){var fb=eR.zpp_inner;if(fb._validate!=null){fb._validate()}fD=en+eR.zpp_inner.y*eY}else{fD=ek}}var em=0;var eo=fQ+1;while(em<eo){var eZ=em++;var eb;if(eZ==0){eb=eI}else{if(eZ<=fQ){var fa=eR.zpp_inner;if(fa._validate!=null){fa._validate()}eb=eI+eR.zpp_inner.x*eZ}else{eb=eG}}var e8=bc.isos;var ew=fe(eb,fD);e8.list[eY*e8.width+eZ]=ew}}if(bc.ints==null){bc.ints=new ac(fQ+1,(fC<<1)+1)}else{bc.ints.resize(fQ+1,(fC<<1)+1,null)}var fz=null;if(fR){if(W.zpp_pool==null){fz=new W()}else{fz=W.zpp_pool;W.zpp_pool=fz.next;fz.next=null}fz.out=false;fz.rank=0}var eH=en;var es=0;var ej=fC;while(es<ej){var eA=es++;var eB=eH;var fU;if(eA==fC-1){fU=ek}else{var e7=eR.zpp_inner;if(e7._validate!=null){e7._validate()}fU=en+eR.zpp_inner.y*(eA+1)}eH=fU;var eJ=eI;var fd=null;var fx=0;var fL=fQ;while(fx<fL){var eO=fx++;var eP=eJ;var eh;if(eO==fQ-1){eh=eG}else{var e5=eR.zpp_inner;if(e5._validate!=null){e5._validate()}eh=eI+eR.zpp_inner.x*(eO+1)}eJ=eh;var eL=bc.me.marchSquare(fe,bc.isos,bc.ints,eP,eB,eh,fU,eO,eA,eO==0||!fR,eA==0||!fR,eO==fQ-1||!fR,eA==fC-1||!fR,fE);if(eL==null){fd=null;continue}if(fR){var eQ=eL.p2!=null&&eL.okey2!=14?eL.p2:eL.p1;eL.pd=((eQ==eL.p2?eL.okey2:eL.okey1)&128)==0?eQ.prev:eQ.prev.prev;var e4=bc.map;e4.list[eA*e4.width+eO]=eL;var eE;if(fd!=null){var fs=eL.key1;var fW=fs&1|(fs&192)>>5;var e9=0;if((fW&1)!=0){e9=1}if((fW&2)!=0){++e9}if((fW&4)!=0){++e9}eE=e9>=2}else{eE=false}if(eE){bc.me.combLR(fd,eL);eL.span1=fd.spanr}else{if(W.zpp_pool==null){eL.span1=new W()}else{eL.span1=W.zpp_pool;W.zpp_pool=eL.span1.next;eL.span1.next=null}var e2=eL.span1;e2.out=false;e2.rank=0;eL.span1.next=fz;fz=eL.span1}if(eL.p2!=null){if(W.zpp_pool==null){eL.span2=new W()}else{eL.span2=W.zpp_pool;W.zpp_pool=eL.span2.next;eL.span2.next=null}var e1=eL.span2;e1.out=false;e1.rank=0;eL.span2.next=fz;fz=eL.span2;eL.spanr=eL.span2}else{eL.spanr=eL.span1}var fr=(eL.keyr&28)>>2;var ev=0;if((fr&1)!=0){ev=1}if((fr&2)!=0){++ev}if((fr&4)!=0){++ev}if(ev>=2){fd=eL}else{fd=null}}else{bc.me.output(e6,eL.p1);if(eL.p2!=null){bc.me.output(e6,eL.p2)}eL.p1=eL.p2=eL.pr=eL.pd=null;eL.span1=eL.span2=eL.spanr=null;eL.next=T.zpp_pool;T.zpp_pool=eL}}}if(!fR){return}var ep=1;var eg=fC;while(ep<eg){var ez=ep++;var fu=null;var fw=0;var fJ=fQ;while(fw<fJ){var eN=fw++;var fm=bc.map;var fh=fm.list[ez*fm.width+eN];if(fh==null){fu=null;continue}var fq=(fh.p2!=null&&fh.okey2==14?fh.okey2:fh.okey1)&7;var eu=0;if((fq&1)!=0){eu=1}if((fq&2)!=0){++eu}if((fq&4)!=0){++eu}if(eu<2){fu=null;continue}var fl=bc.map;var fj=fl.list[(ez-1)*fl.width+eN];if(fj==null){fu=null;continue}var fp=((fj.p2!=null&&fj.okey2==56?fj.okey2:fj.okey1)&112)>>4;var et=0;if((fp&1)!=0){et=1}if((fp&2)!=0){++et}if((fp&4)!=0){++et}if(et<2){fu=null;continue}var fy=fj.p2!=null&&fj.okey2==56?fj.span2:fj.span1;var fg=fh.p2!=null&&fh.okey2==14?fh.span2:fh.span1;var eD;if(fy==fy.parent){eD=fy}else{var eX=fy;var ft=null;while(eX!=eX.parent){var ff=eX.parent;eX.parent=ft;ft=eX;eX=ff}while(ft!=null){var ei=ft.parent;ft.parent=eX;ft=ei}eD=eX}var eC;if(fg==fg.parent){eC=fg}else{var eW=fg;var fN=null;while(eW!=eW.parent){var ef=eW.parent;eW.parent=fN;fN=eW;eW=ef}while(fN!=null){var ee=fN.parent;fN.parent=eW;fN=ee}eC=eW}if(eD==eC){if(fu!=fg){bc.me.combUD_virtual(fj,fh)}}else{var fO;if(fy==fy.parent){fO=fy}else{var eV=fy;var fM=null;while(eV!=eV.parent){var ec=eV.parent;eV.parent=fM;fM=eV;eV=ec}while(fM!=null){var ea=fM.parent;fM.parent=eV;fM=ea}fO=eV}var fA;if(fg==fg.parent){fA=fg}else{var eU=fg;var fK=null;while(eU!=eU.parent){var fX=eU.parent;eU.parent=fK;fK=eU;eU=fX}while(fK!=null){var fV=fK.parent;fK.parent=eU;fK=fV}fA=eU}if(fO!=fA){if(fO.rank<fA.rank){fO.parent=fA}else{if(fO.rank>fA.rank){fA.parent=fO}else{fA.parent=fO;fO.rank++}}}bc.me.combUD(fj,fh)}if(((fg==fh.span2?fh.okey2:fh.okey1)&4)!=0){fu=fg}else{fu=null}}}var el=0;var ed=fC;while(el<ed){var ey=el++;var fv=0;var fG=fQ;while(fv<fG){var eM=fv++;var fk=bc.map;var e3=fk.list[ey*fk.width+eM];if(e3==null){continue}var fI;if(e3.span1==e3.span1.parent){fI=e3.span1}else{var eT=e3.span1;var fH=null;while(eT!=eT.parent){var fT=eT.parent;eT.parent=fH;fH=eT;eT=fT}while(fH!=null){var fS=fH.parent;fH.parent=eT;fH=fS}fI=eT}if(!fI.out){fI.out=true;bc.me.output(e6,e3.p1)}if(e3.p2!=null){if(e3.span2==e3.span2.parent){fI=e3.span2}else{var eS=e3.span2;var fF=null;while(eS!=eS.parent){var fo=eS.parent;eS.parent=fF;fF=eS;eS=fo}while(fF!=null){var fn=fF.parent;fF.parent=eS;fF=fn}fI=eS}if(!fI.out){fI.out=true;bc.me.output(e6,e3.p2)}}e3.p1=e3.p2=e3.pr=e3.pd=null;e3.span1=e3.span2=e3.spanr=null;e3.next=T.zpp_pool;T.zpp_pool=e3;var fi=bc.map;fi.list[ey*fi.width+eM]=null}}while(fz!=null){var e0=fz;fz=e0.next;e0.parent=e0;e0.next=W.zpp_pool;W.zpp_pool=e0}};bc.ISO=function(eb,ea,ec){return eb(ea,ec)};bc.prototype.output=function(ef,ea){var ee;if(ea==null||ea.next==ea||ea.next==ea.prev){ee=true}else{var eb=0;var ek=ea;var eg=ea;if(ek!=null){var ed=ek;while(true){var ei=ed;eb+=ei.x*(ei.next.y-ei.prev.y);ed=ed.next;if(!(ed!=eg)){break}}}var eh=eb*0.5;ee=eh*eh<P.epsilon*P.epsilon}if(ee){while(ea!=null){if(ea!=null&&ea.prev==ea){ea.next=ea.prev=null;ea=null;ea=ea}else{var ej=ea.next;ea.prev.next=ea.next;ea.next.prev=ea.prev;ea.next=ea.prev=null;ea=null;ea=ej}}return}var ec=a7.get();ec.zpp_inner.vertices=ea;if(ef.zpp_inner.reverse_flag){ef.push(ec)}else{ef.unshift(ec)}};bc.prototype.linkright=function(ec,ea){var eb=ea&7;if(eb==0){return ec}else{if(eb==3){return ec.next.next}else{return ec.next}}};bc.prototype.linkleft=function(eb,ea){if((ea&1)==0){return eb.prev}else{return eb}};bc.prototype.linkdown=function(eb,ea){if((ea&128)==0){return eb.prev}else{return eb.prev.prev}};bc.prototype.linkup=function(eb,ea){return eb};bc.prototype.combLR=function(eq,ep){var eb=eq.pr;var ec=eq.okeyr&7;var ee=ec==0?eb:ec==3?eb.next.next:eb.next;var ed=ep.p1;var es=(ep.okey1&1)==0?ed.prev:ed;var eh=ee.next;var ea=es.prev;if((eq.keyr&4)!=0){if(ep.pr==ep.p1){ep.pr=ee.prev}ep.p1=ee.prev;ee.prev.next=es.next;es.next.prev=ee.prev;var ef=ee;if(ef.wrap!=null){ef.wrap.zpp_inner._inuse=false;var ei=ef.wrap;var er=ei.zpp_inner;ei.zpp_inner.outer=null;ei.zpp_inner=null;ei.zpp_pool=au.poolVec2;au.poolVec2=ei;if(er.outer!=null){er.outer.zpp_inner=null;er.outer=null}er._isimmutable=null;er._validate=null;er._invalidate=null;er.next=bB.zpp_pool;bB.zpp_pool=er;ef.wrap=null}ef.prev=ef.next=null;ef.next=dr.zpp_pool;dr.zpp_pool=ef}else{ee.next=es.next;es.next.prev=ee}var ek=es;if(ek.wrap!=null){ek.wrap.zpp_inner._inuse=false;var eo=ek.wrap;var el=eo.zpp_inner;eo.zpp_inner.outer=null;eo.zpp_inner=null;eo.zpp_pool=au.poolVec2;au.poolVec2=eo;if(el.outer!=null){el.outer.zpp_inner=null;el.outer=null}el._isimmutable=null;el._validate=null;el._invalidate=null;el.next=bB.zpp_pool;bB.zpp_pool=el;ek.wrap=null}ek.prev=ek.next=null;ek.next=dr.zpp_pool;dr.zpp_pool=ek;if((eq.keyr&16)!=0){ep.pd=eh.next;eh.next.prev=ea.prev;ea.prev.next=eh.next;if(eh.wrap!=null){eh.wrap.zpp_inner._inuse=false;var en=eh.wrap;var ej=en.zpp_inner;en.zpp_inner.outer=null;en.zpp_inner=null;en.zpp_pool=au.poolVec2;au.poolVec2=en;if(ej.outer!=null){ej.outer.zpp_inner=null;ej.outer=null}ej._isimmutable=null;ej._validate=null;ej._invalidate=null;ej.next=bB.zpp_pool;bB.zpp_pool=ej;eh.wrap=null}eh.prev=eh.next=null;eh.next=dr.zpp_pool;dr.zpp_pool=eh}else{eh.prev=ea.prev;ea.prev.next=eh}if(ea.wrap!=null){ea.wrap.zpp_inner._inuse=false;var em=ea.wrap;var eg=em.zpp_inner;em.zpp_inner.outer=null;em.zpp_inner=null;em.zpp_pool=au.poolVec2;au.poolVec2=em;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg._isimmutable=null;eg._validate=null;eg._invalidate=null;eg.next=bB.zpp_pool;bB.zpp_pool=eg;ea.wrap=null}ea.prev=ea.next=null;ea.next=dr.zpp_pool;dr.zpp_pool=ea};bc.prototype.combUD=function(ei,eh){var ee=ei.p2!=null&&ei.key2==56;var ej=eh.p2!=null&&eh.key2==14?eh.p2:eh.p1;var ed=ei.pd;var ea=ej;var ek=ed.prev;var ec=ea.next;ea.next=ed.next;ed.next.prev=ea;if(ed.wrap!=null){ed.wrap.zpp_inner._inuse=false;var ef=ed.wrap;var el=ef.zpp_inner;ef.zpp_inner.outer=null;ef.zpp_inner=null;ef.zpp_pool=au.poolVec2;au.poolVec2=ef;if(el.outer!=null){el.outer.zpp_inner=null;el.outer=null}el._isimmutable=null;el._validate=null;el._invalidate=null;el.next=bB.zpp_pool;bB.zpp_pool=el;ed.wrap=null}ed.prev=ed.next=null;ed.next=dr.zpp_pool;dr.zpp_pool=ed;ec.prev=ek.prev;ek.prev.next=ec;if(ek==ei.p1){ei.p1=ec}if(ek.wrap!=null){ek.wrap.zpp_inner._inuse=false;var eg=ek.wrap;var eb=eg.zpp_inner;eg.zpp_inner.outer=null;eg.zpp_inner=null;eg.zpp_pool=au.poolVec2;au.poolVec2=eg;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb;ek.wrap=null}ek.prev=ek.next=null;ek.next=dr.zpp_pool;dr.zpp_pool=ek};bc.prototype.combUD_virtual=function(ec,ea){var ee=ec.p2!=null&&ec.key2==56;var eb=ea.p2!=null&&ea.key2==14?ea.p2:ea.p1;var ed=ec.pd;var ef=eb;ed.forced=ef.forced=ed.prev.forced=ef.next.forced=true};bc.prototype.combLeft=function(ec){var ea=ec&1|(ec&192)>>5;var eb=0;if((ea&1)!=0){eb=1}if((ea&2)!=0){++eb}if((ea&4)!=0){++eb}return eb>=2};bc.prototype.combRight=function(ec){var ea=(ec&28)>>2;var eb=0;if((ea&1)!=0){eb=1}if((ea&2)!=0){++eb}if((ea&4)!=0){++eb}return eb>=2};bc.prototype.combUp=function(ec){var ea=ec&7;var eb=0;if((ea&1)!=0){eb=1}if((ea&2)!=0){++eb}if((ea&4)!=0){++eb}return eb>=2};bc.prototype.combDown=function(ec){var ea=(ec&112)>>4;var eb=0;if((ea&1)!=0){eb=1}if((ea&2)!=0){++eb}if((ea&4)!=0){++eb}return eb>=2};bc.prototype.comb=function(ea){var eb=0;if((ea&1)!=0){eb=1}if((ea&2)!=0){++eb}if((ea&4)!=0){++eb}return eb>=2};bc.prototype.marchSquare=function(iD,it,ex,fo,eP,fl,eM,iK,ir,ip,io,g9,g7,gS){var ej=0;var gi=it.list[ir*it.width+iK];if(gi<0){ej=8}var gg=it.list[ir*it.width+(iK+1)];if(gg<0){ej|=4}var gf=it.list[(ir+1)*it.width+(iK+1)];if(gf<0){ej|=2}var gd=it.list[(ir+1)*it.width+iK];if(gd<0){ej|=1}if(ej==0){return null}else{var gV;if(T.zpp_pool==null){gV=new T()}else{gV=T.zpp_pool;T.zpp_pool=gV.next;gV.next=null}if(ej!=10&&ej!=5){var h4=bc.look_march[ej];gV.okey1=h4;var en=0;while(en<8){var hQ=en++;if((h4&1<<hQ)!=0){var hI=null;if(hQ==0){var h2;if(dr.zpp_pool==null){h2=new dr()}else{h2=dr.zpp_pool;dr.zpp_pool=h2.next;h2.next=null}h2.forced=false;h2.x=fo;h2.y=eP;hI=h2;if(ip||io){hI.forced=true}}else{if(hQ==2){var h1;if(dr.zpp_pool==null){h1=new dr()}else{h1=dr.zpp_pool;dr.zpp_pool=h1.next;h1.next=null}h1.forced=false;h1.x=fl;h1.y=eP;hI=h1;if(g9||io){hI.forced=true}}else{if(hQ==4){var h0;if(dr.zpp_pool==null){h0=new dr()}else{h0=dr.zpp_pool;dr.zpp_pool=h0.next;h0.next=null}h0.forced=false;h0.x=fl;h0.y=eM;hI=h0;if(g9||g7){hI.forced=true}}else{if(hQ==6){var hZ;if(dr.zpp_pool==null){hZ=new dr()}else{hZ=dr.zpp_pool;dr.zpp_pool=hZ.next;hZ.next=null}hZ.forced=false;hZ.x=fo;hZ.y=eM;hI=hZ;if(ip||g7){hI.forced=true}}else{if(hQ==1){hI=ex.list[(ir<<1)*ex.width+iK];if(hI==null){var hG=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var hY;if(dr.zpp_pool==null){hY=new dr()}else{hY=dr.zpp_pool;dr.zpp_pool=hY.next;hY.next=null}hY.forced=false;hY.x=hG;hY.y=eP;hI=hY;ex.list[(ir<<1)*ex.width+iK]=hI}else{var fk=hI.x;var hF=hI.y;var hX;if(dr.zpp_pool==null){hX=new dr()}else{hX=dr.zpp_pool;dr.zpp_pool=hX.next;hX.next=null}hX.forced=false;hX.x=fk;hX.y=hF;hI=hX}if(io){hI.forced=true}if(hI.x==fo||hI.x==fl){if(hI.x==fo&&(h4&1)!=0||hI.x==fl&&(h4&4)!=0){h4^=2}}}else{if(hQ==5){hI=ex.list[((ir<<1)+2)*ex.width+iK];if(hI==null){var fi=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var hW;if(dr.zpp_pool==null){hW=new dr()}else{hW=dr.zpp_pool;dr.zpp_pool=hW.next;hW.next=null}hW.forced=false;hW.x=fi;hW.y=eM;hI=hW;ex.list[((ir<<1)+2)*ex.width+iK]=hI}else{var fg=hI.x;var eK=hI.y;var hV;if(dr.zpp_pool==null){hV=new dr()}else{hV=dr.zpp_pool;dr.zpp_pool=hV.next;hV.next=null}hV.forced=false;hV.x=fg;hV.y=eK;hI=hV}if(g7){hI.forced=true}if(hI.x==fo||hI.x==fl){if(hI.x==fo&&(h4&64)!=0||hI.x==fl&&(h4&16)!=0){h4^=32}}}else{if(hQ==3){hI=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(hI==null){var eI=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var hT;if(dr.zpp_pool==null){hT=new dr()}else{hT=dr.zpp_pool;dr.zpp_pool=hT.next;hT.next=null}hT.forced=false;hT.x=fl;hT.y=eI;hI=hT;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=hI}else{var fe=hI.x;var eG=hI.y;var hu;if(dr.zpp_pool==null){hu=new dr()}else{hu=dr.zpp_pool;dr.zpp_pool=hu.next;hu.next=null}hu.forced=false;hu.x=fe;hu.y=eG;hI=hu}if(g9){hI.forced=true}if(hI.y==eP||hI.y==eM){if(hI.y==eP&&(h4&4)!=0||hI.y==eM&&(h4&16)!=0){h4^=8}}}else{hI=ex.list[((ir<<1)+1)*ex.width+iK];if(hI==null){var eE=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var ht;if(dr.zpp_pool==null){ht=new dr()}else{ht=dr.zpp_pool;dr.zpp_pool=ht.next;ht.next=null}ht.forced=false;ht.x=fo;ht.y=eE;hI=ht;ex.list[((ir<<1)+1)*ex.width+iK]=hI}else{var fc=hI.x;var eC=hI.y;var hs;if(dr.zpp_pool==null){hs=new dr()}else{hs=dr.zpp_pool;dr.zpp_pool=hs.next;hs.next=null}hs.forced=false;hs.x=fc;hs.y=eC;hI=hs}if(ip){hI.forced=true}if(hI.y==eP||hI.y==eM){if(hI.y==eP&&(h4&1)!=0||hI.y==eM&&(h4&64)!=0){h4^=128}}}}}}}}}var fV=hI;if(gV.p1==null){gV.p1=fV.prev=fV.next=fV}else{fV.prev=gV.p1;fV.next=gV.p1.next;gV.p1.next.prev=fV;gV.p1.next=fV}gV.p1=fV}}gV.p1=gV.p1.next;gV.key1=h4;if(h4==1||h4==4||h4==16||h4==64||h4==3||h4==12||h4==48||h4==192||h4==129||h4==6||h4==24||h4==96||h4==5||h4==20||h4==80||h4==65||h4==17||h4==68){h4=0;gV.key1=0;gV.p1=null}if(h4==0){gV=null}else{gV.pr=gV.p1;gV.okeyr=gV.okey1;gV.keyr=gV.key1}}else{var hU=iD(0.5*(fo+fl),0.5*(eP+eM))<0;if(ej==10){if(hU){var ge=187;gV.okey1=187;var ft=0;while(ft<8){var gz=ft++;if((ge&1<<gz)!=0){var ij=null;if(gz==0){var hr;if(dr.zpp_pool==null){hr=new dr()}else{hr=dr.zpp_pool;dr.zpp_pool=hr.next;hr.next=null}hr.forced=false;hr.x=fo;hr.y=eP;ij=hr;if(ip||io){ij.forced=true}}else{if(gz==2){var hq;if(dr.zpp_pool==null){hq=new dr()}else{hq=dr.zpp_pool;dr.zpp_pool=hq.next;hq.next=null}hq.forced=false;hq.x=fl;hq.y=eP;ij=hq;if(g9||io){ij.forced=true}}else{if(gz==4){var hp;if(dr.zpp_pool==null){hp=new dr()}else{hp=dr.zpp_pool;dr.zpp_pool=hp.next;hp.next=null}hp.forced=false;hp.x=fl;hp.y=eM;ij=hp;if(g9||g7){ij.forced=true}}else{if(gz==6){var ho;if(dr.zpp_pool==null){ho=new dr()}else{ho=dr.zpp_pool;dr.zpp_pool=ho.next;ho.next=null}ho.forced=false;ho.x=fo;ho.y=eM;ij=ho;if(ip||g7){ij.forced=true}}else{if(gz==1){ij=ex.list[(ir<<1)*ex.width+iK];if(ij==null){var fb=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var hn;if(dr.zpp_pool==null){hn=new dr()}else{hn=dr.zpp_pool;dr.zpp_pool=hn.next;hn.next=null}hn.forced=false;hn.x=fb;hn.y=eP;ij=hn;ex.list[(ir<<1)*ex.width+iK]=ij}else{var fa=ij.x;var eA=ij.y;var hm;if(dr.zpp_pool==null){hm=new dr()}else{hm=dr.zpp_pool;dr.zpp_pool=hm.next;hm.next=null}hm.forced=false;hm.x=fa;hm.y=eA;ij=hm}if(io){ij.forced=true}if(ij.x==fo||ij.x==fl){if(ij.x==fo&&(ge&1)!=0||ij.x==fl&&(ge&4)!=0){ge^=2}}}else{if(gz==5){ij=ex.list[((ir<<1)+2)*ex.width+iK];if(ij==null){var e8=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var hk;if(dr.zpp_pool==null){hk=new dr()}else{hk=dr.zpp_pool;dr.zpp_pool=hk.next;hk.next=null}hk.forced=false;hk.x=e8;hk.y=eM;ij=hk;ex.list[((ir<<1)+2)*ex.width+iK]=ij}else{var im=ij.x;var ey=ij.y;var ha;if(dr.zpp_pool==null){ha=new dr()}else{ha=dr.zpp_pool;dr.zpp_pool=ha.next;ha.next=null}ha.forced=false;ha.x=im;ha.y=ey;ij=ha}if(g7){ij.forced=true}if(ij.x==fo||ij.x==fl){if(ij.x==fo&&(ge&64)!=0||ij.x==fl&&(ge&16)!=0){ge^=32}}}else{if(gz==3){ij=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(ij==null){var eu=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var g8;if(dr.zpp_pool==null){g8=new dr()}else{g8=dr.zpp_pool;dr.zpp_pool=g8.next;g8.next=null}g8.forced=false;g8.x=fl;g8.y=eu;ij=g8;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=ij}else{var il=ij.x;var f8=ij.y;var g6;if(dr.zpp_pool==null){g6=new dr()}else{g6=dr.zpp_pool;dr.zpp_pool=g6.next;g6.next=null}g6.forced=false;g6.x=il;g6.y=f8;ij=g6}if(g9){ij.forced=true}if(ij.y==eP||ij.y==eM){if(ij.y==eP&&(ge&4)!=0||ij.y==eM&&(ge&16)!=0){ge^=8}}}else{ij=ex.list[((ir<<1)+1)*ex.width+iK];if(ij==null){var f6=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var g5;if(dr.zpp_pool==null){g5=new dr()}else{g5=dr.zpp_pool;dr.zpp_pool=g5.next;g5.next=null}g5.forced=false;g5.x=fo;g5.y=f6;ij=g5;ex.list[((ir<<1)+1)*ex.width+iK]=ij}else{var ik=ij.x;var f4=ij.y;var g4;if(dr.zpp_pool==null){g4=new dr()}else{g4=dr.zpp_pool;dr.zpp_pool=g4.next;g4.next=null}g4.forced=false;g4.x=ik;g4.y=f4;ij=g4}if(ip){ij.forced=true}if(ij.y==eP||ij.y==eM){if(ij.y==eP&&(ge&1)!=0||ij.y==eM&&(ge&64)!=0){ge^=128}}}}}}}}}var gR=ij;if(gV.p1==null){gV.p1=gR.prev=gR.next=gR}else{gR.prev=gV.p1;gR.next=gV.p1.next;gV.p1.next.prev=gR;gV.p1.next=gR}gV.p1=gR}}gV.p1=gV.p1.next;gV.key1=ge;if(ge==1||ge==4||ge==16||ge==64||ge==3||ge==12||ge==48||ge==192||ge==129||ge==6||ge==24||ge==96||ge==5||ge==20||ge==80||ge==65||ge==17||ge==68){ge=0;gV.key1=0;gV.p1=null}if(ge==0){gV=null}else{gV.pr=gV.p1;gV.okeyr=gV.okey1;gV.keyr=gV.key1}}else{var gc=131;gV.okey1=131;var fr=0;while(fr<8){var gy=fr++;if((gc&1<<gy)!=0){var ih=null;if(gy==0){var g3;if(dr.zpp_pool==null){g3=new dr()}else{g3=dr.zpp_pool;dr.zpp_pool=g3.next;g3.next=null}g3.forced=false;g3.x=fo;g3.y=eP;ih=g3;if(ip||io){ih.forced=true}}else{if(gy==2){var g2;if(dr.zpp_pool==null){g2=new dr()}else{g2=dr.zpp_pool;dr.zpp_pool=g2.next;g2.next=null}g2.forced=false;g2.x=fl;g2.y=eP;ih=g2;if(g9||io){ih.forced=true}}else{if(gy==4){var g1;if(dr.zpp_pool==null){g1=new dr()}else{g1=dr.zpp_pool;dr.zpp_pool=g1.next;g1.next=null}g1.forced=false;g1.x=fl;g1.y=eM;ih=g1;if(g9||g7){ih.forced=true}}else{if(gy==6){var g0;if(dr.zpp_pool==null){g0=new dr()}else{g0=dr.zpp_pool;dr.zpp_pool=g0.next;g0.next=null}g0.forced=false;g0.x=fo;g0.y=eM;ih=g0;if(ip||g7){ih.forced=true}}else{if(gy==1){ih=ex.list[(ir<<1)*ex.width+iK];if(ih==null){var ii=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var gY;if(dr.zpp_pool==null){gY=new dr()}else{gY=dr.zpp_pool;dr.zpp_pool=gY.next;gY.next=null}gY.forced=false;gY.x=ii;gY.y=eP;ih=gY;ex.list[(ir<<1)*ex.width+iK]=ih}else{var ig=ih.x;var f2=ih.y;var gJ;if(dr.zpp_pool==null){gJ=new dr()}else{gJ=dr.zpp_pool;dr.zpp_pool=gJ.next;gJ.next=null}gJ.forced=false;gJ.x=ig;gJ.y=f2;ih=gJ}if(io){ih.forced=true}if(ih.x==fo||ih.x==fl){if(ih.x==fo&&(gc&1)!=0||ih.x==fl&&(gc&4)!=0){gc^=2}}}else{if(gy==5){ih=ex.list[((ir<<1)+2)*ex.width+iK];if(ih==null){var ic=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var gI;if(dr.zpp_pool==null){gI=new dr()}else{gI=dr.zpp_pool;dr.zpp_pool=gI.next;gI.next=null}gI.forced=false;gI.x=ic;gI.y=eM;ih=gI;ex.list[((ir<<1)+2)*ex.width+iK]=ih}else{var ib=ih.x;var f1=ih.y;var gH;if(dr.zpp_pool==null){gH=new dr()}else{gH=dr.zpp_pool;dr.zpp_pool=gH.next;gH.next=null}gH.forced=false;gH.x=ib;gH.y=f1;ih=gH}if(g7){ih.forced=true}if(ih.x==fo||ih.x==fl){if(ih.x==fo&&(gc&64)!=0||ih.x==fl&&(gc&16)!=0){gc^=32}}}else{if(gy==3){ih=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(ih==null){var f0=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var gG;if(dr.zpp_pool==null){gG=new dr()}else{gG=dr.zpp_pool;dr.zpp_pool=gG.next;gG.next=null}gG.forced=false;gG.x=fl;gG.y=f0;ih=gG;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=ih}else{var h9=ih.x;var fZ=ih.y;var gF;if(dr.zpp_pool==null){gF=new dr()}else{gF=dr.zpp_pool;dr.zpp_pool=gF.next;gF.next=null}gF.forced=false;gF.x=h9;gF.y=fZ;ih=gF}if(g9){ih.forced=true}if(ih.y==eP||ih.y==eM){if(ih.y==eP&&(gc&4)!=0||ih.y==eM&&(gc&16)!=0){gc^=8}}}else{ih=ex.list[((ir<<1)+1)*ex.width+iK];if(ih==null){var fY=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var gE;if(dr.zpp_pool==null){gE=new dr()}else{gE=dr.zpp_pool;dr.zpp_pool=gE.next;gE.next=null}gE.forced=false;gE.x=fo;gE.y=fY;ih=gE;ex.list[((ir<<1)+1)*ex.width+iK]=ih}else{var h7=ih.x;var fX=ih.y;var gD;if(dr.zpp_pool==null){gD=new dr()}else{gD=dr.zpp_pool;dr.zpp_pool=gD.next;gD.next=null}gD.forced=false;gD.x=h7;gD.y=fX;ih=gD}if(ip){ih.forced=true}if(ih.y==eP||ih.y==eM){if(ih.y==eP&&(gc&1)!=0||ih.y==eM&&(gc&64)!=0){gc^=128}}}}}}}}}var gQ=ih;if(gV.p1==null){gV.p1=gQ.prev=gQ.next=gQ}else{gQ.prev=gV.p1;gQ.next=gV.p1.next;gV.p1.next.prev=gQ;gV.p1.next=gQ}gV.p1=gQ}}gV.p1=gV.p1.next;gV.key1=gc;if(gc==1||gc==4||gc==16||gc==64||gc==3||gc==12||gc==48||gc==192||gc==129||gc==6||gc==24||gc==96||gc==5||gc==20||gc==80||gc==65||gc==17||gc==68){gc=0;gV.key1=0;gV.p1=null}if(gc!=0){var gb=56;gV.okey2=56;var fp=0;while(fp<8){var gx=fp++;if((gb&1<<gx)!=0){var ie=null;if(gx==0){var gC;if(dr.zpp_pool==null){gC=new dr()}else{gC=dr.zpp_pool;dr.zpp_pool=gC.next;gC.next=null}gC.forced=false;gC.x=fo;gC.y=eP;ie=gC;if(ip||io){ie.forced=true}}else{if(gx==2){var gB;if(dr.zpp_pool==null){gB=new dr()}else{gB=dr.zpp_pool;dr.zpp_pool=gB.next;gB.next=null}gB.forced=false;gB.x=fl;gB.y=eP;ie=gB;if(g9||io){ie.forced=true}}else{if(gx==4){var gA;if(dr.zpp_pool==null){gA=new dr()}else{gA=dr.zpp_pool;dr.zpp_pool=gA.next;gA.next=null}gA.forced=false;gA.x=fl;gA.y=eM;ie=gA;if(g9||g7){ie.forced=true}}else{if(gx==6){var gr;if(dr.zpp_pool==null){gr=new dr()}else{gr=dr.zpp_pool;dr.zpp_pool=gr.next;gr.next=null}gr.forced=false;gr.x=fo;gr.y=eM;ie=gr;if(ip||g7){ie.forced=true}}else{if(gx==1){ie=ex.list[(ir<<1)*ex.width+iK];if(ie==null){var h5=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var gq;if(dr.zpp_pool==null){gq=new dr()}else{gq=dr.zpp_pool;dr.zpp_pool=gq.next;gq.next=null}gq.forced=false;gq.x=h5;gq.y=eP;ie=gq;ex.list[(ir<<1)*ex.width+iK]=ie}else{var hS=ie.x;var fW=ie.y;var gp;if(dr.zpp_pool==null){gp=new dr()}else{gp=dr.zpp_pool;dr.zpp_pool=gp.next;gp.next=null}gp.forced=false;gp.x=hS;gp.y=fW;ie=gp}if(io){ie.forced=true}if(ie.x==fo||ie.x==fl){if(ie.x==fo&&(gb&1)!=0||ie.x==fl&&(gb&4)!=0){gb^=2}}}else{if(gx==5){ie=ex.list[((ir<<1)+2)*ex.width+iK];if(ie==null){var hR=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var go;if(dr.zpp_pool==null){go=new dr()}else{go=dr.zpp_pool;dr.zpp_pool=go.next;go.next=null}go.forced=false;go.x=hR;go.y=eM;ie=go;ex.list[((ir<<1)+2)*ex.width+iK]=ie}else{var hP=ie.x;var fK=ie.y;var gn;if(dr.zpp_pool==null){gn=new dr()}else{gn=dr.zpp_pool;dr.zpp_pool=gn.next;gn.next=null}gn.forced=false;gn.x=hP;gn.y=fK;ie=gn}if(g7){ie.forced=true}if(ie.x==fo||ie.x==fl){if(ie.x==fo&&(gb&64)!=0||ie.x==fl&&(gb&16)!=0){gb^=32}}}else{if(gx==3){ie=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(ie==null){var fJ=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var gm;if(dr.zpp_pool==null){gm=new dr()}else{gm=dr.zpp_pool;dr.zpp_pool=gm.next;gm.next=null}gm.forced=false;gm.x=fl;gm.y=fJ;ie=gm;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=ie}else{var hO=ie.x;var fI=ie.y;var gl;if(dr.zpp_pool==null){gl=new dr()}else{gl=dr.zpp_pool;dr.zpp_pool=gl.next;gl.next=null}gl.forced=false;gl.x=hO;gl.y=fI;ie=gl}if(g9){ie.forced=true}if(ie.y==eP||ie.y==eM){if(ie.y==eP&&(gb&4)!=0||ie.y==eM&&(gb&16)!=0){gb^=8}}}else{ie=ex.list[((ir<<1)+1)*ex.width+iK];if(ie==null){var fH=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var gk;if(dr.zpp_pool==null){gk=new dr()}else{gk=dr.zpp_pool;dr.zpp_pool=gk.next;gk.next=null}gk.forced=false;gk.x=fo;gk.y=fH;ie=gk;ex.list[((ir<<1)+1)*ex.width+iK]=ie}else{var hN=ie.x;var fG=ie.y;var gj;if(dr.zpp_pool==null){gj=new dr()}else{gj=dr.zpp_pool;dr.zpp_pool=gj.next;gj.next=null}gj.forced=false;gj.x=hN;gj.y=fG;ie=gj}if(ip){ie.forced=true}if(ie.y==eP||ie.y==eM){if(ie.y==eP&&(gb&1)!=0||ie.y==eM&&(gb&64)!=0){gb^=128}}}}}}}}}var gP=ie;if(gV.p2==null){gV.p2=gP.prev=gP.next=gP}else{gP.prev=gV.p2;gP.next=gV.p2.next;gV.p2.next.prev=gP;gV.p2.next=gP}gV.p2=gP}}gV.p2=gV.p2.next;gV.key2=gb;if(gb==1||gb==4||gb==16||gb==64||gb==3||gb==12||gb==48||gb==192||gb==129||gb==6||gb==24||gb==96||gb==5||gb==20||gb==80||gb==65||gb==17||gb==68){gb=0;gV.key2=0;gV.p2=null}if(gb==0){gV.pr=gV.p1;gV.okeyr=gV.okey1;gV.keyr=gV.key1}else{gV.pr=gV.p2;gV.okeyr=gV.okey2;gV.keyr=gV.key2}}else{var ga=56;gV.okey1=56;var fm=0;while(fm<8){var gw=fm++;if((ga&1<<gw)!=0){var id=null;if(gw==0){var gh;if(dr.zpp_pool==null){gh=new dr()}else{gh=dr.zpp_pool;dr.zpp_pool=gh.next;gh.next=null}gh.forced=false;gh.x=fo;gh.y=eP;id=gh;if(ip||io){id.forced=true}}else{if(gw==2){var fU;if(dr.zpp_pool==null){fU=new dr()}else{fU=dr.zpp_pool;dr.zpp_pool=fU.next;fU.next=null}fU.forced=false;fU.x=fl;fU.y=eP;id=fU;if(g9||io){id.forced=true}}else{if(gw==4){var fT;if(dr.zpp_pool==null){fT=new dr()}else{fT=dr.zpp_pool;dr.zpp_pool=fT.next;fT.next=null}fT.forced=false;fT.x=fl;fT.y=eM;id=fT;if(g9||g7){id.forced=true}}else{if(gw==6){var fS;if(dr.zpp_pool==null){fS=new dr()}else{fS=dr.zpp_pool;dr.zpp_pool=fS.next;fS.next=null}fS.forced=false;fS.x=fo;fS.y=eM;id=fS;if(ip||g7){id.forced=true}}else{if(gw==1){id=ex.list[(ir<<1)*ex.width+iK];if(id==null){var hM=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var fR;if(dr.zpp_pool==null){fR=new dr()}else{fR=dr.zpp_pool;dr.zpp_pool=fR.next;fR.next=null}fR.forced=false;fR.x=hM;fR.y=eP;id=fR;ex.list[(ir<<1)*ex.width+iK]=id}else{var hL=id.x;var fF=id.y;var fQ;if(dr.zpp_pool==null){fQ=new dr()}else{fQ=dr.zpp_pool;dr.zpp_pool=fQ.next;fQ.next=null}fQ.forced=false;fQ.x=hL;fQ.y=fF;id=fQ}if(io){id.forced=true}if(id.x==fo||id.x==fl){if(id.x==fo&&(ga&1)!=0||id.x==fl&&(ga&4)!=0){ga^=2}}}else{if(gw==5){id=ex.list[((ir<<1)+2)*ex.width+iK];if(id==null){var hK=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var fP;if(dr.zpp_pool==null){fP=new dr()}else{fP=dr.zpp_pool;dr.zpp_pool=fP.next;fP.next=null}fP.forced=false;fP.x=hK;fP.y=eM;id=fP;ex.list[((ir<<1)+2)*ex.width+iK]=id}else{var hJ=id.x;var fE=id.y;var fO;if(dr.zpp_pool==null){fO=new dr()}else{fO=dr.zpp_pool;dr.zpp_pool=fO.next;fO.next=null}fO.forced=false;fO.x=hJ;fO.y=fE;id=fO}if(g7){id.forced=true}if(id.x==fo||id.x==fl){if(id.x==fo&&(ga&64)!=0||id.x==fl&&(ga&16)!=0){ga^=32}}}else{if(gw==3){id=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(id==null){var fD=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var fN;if(dr.zpp_pool==null){fN=new dr()}else{fN=dr.zpp_pool;dr.zpp_pool=fN.next;fN.next=null}fN.forced=false;fN.x=fl;fN.y=fD;id=fN;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=id}else{var hH=id.x;var fC=id.y;var fM;if(dr.zpp_pool==null){fM=new dr()}else{fM=dr.zpp_pool;dr.zpp_pool=fM.next;fM.next=null}fM.forced=false;fM.x=hH;fM.y=fC;id=fM}if(g9){id.forced=true}if(id.y==eP||id.y==eM){if(id.y==eP&&(ga&4)!=0||id.y==eM&&(ga&16)!=0){ga^=8}}}else{id=ex.list[((ir<<1)+1)*ex.width+iK];if(id==null){var fB=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var fL;if(dr.zpp_pool==null){fL=new dr()}else{fL=dr.zpp_pool;dr.zpp_pool=fL.next;fL.next=null}fL.forced=false;fL.x=fo;fL.y=fB;id=fL;ex.list[((ir<<1)+1)*ex.width+iK]=id}else{var hE=id.x;var e9=id.y;var fA;if(dr.zpp_pool==null){fA=new dr()}else{fA=dr.zpp_pool;dr.zpp_pool=fA.next;fA.next=null}fA.forced=false;fA.x=hE;fA.y=e9;id=fA}if(ip){id.forced=true}if(id.y==eP||id.y==eM){if(id.y==eP&&(ga&1)!=0||id.y==eM&&(ga&64)!=0){ga^=128}}}}}}}}}var gO=id;if(gV.p1==null){gV.p1=gO.prev=gO.next=gO}else{gO.prev=gV.p1;gO.next=gV.p1.next;gV.p1.next.prev=gO;gV.p1.next=gO}gV.p1=gO}}gV.p1=gV.p1.next;gV.key1=ga;if(ga==1||ga==4||ga==16||ga==64||ga==3||ga==12||ga==48||ga==192||ga==129||ga==6||ga==24||ga==96||ga==5||ga==20||ga==80||ga==65||ga==17||ga==68){ga=0;gV.key1=0;gV.p1=null}if(ga==0){gV=null}else{gV.pr=gV.p1;gV.okeyr=gV.okey1;gV.keyr=gV.key1}}}}else{if(hU){var f9=238;gV.okey1=238;var fj=0;while(fj<8){var gv=fj++;if((f9&1<<gv)!=0){var ia=null;if(gv==0){var fz;if(dr.zpp_pool==null){fz=new dr()}else{fz=dr.zpp_pool;dr.zpp_pool=fz.next;fz.next=null}fz.forced=false;fz.x=fo;fz.y=eP;ia=fz;if(ip||io){ia.forced=true}}else{if(gv==2){var fy;if(dr.zpp_pool==null){fy=new dr()}else{fy=dr.zpp_pool;dr.zpp_pool=fy.next;fy.next=null}fy.forced=false;fy.x=fl;fy.y=eP;ia=fy;if(g9||io){ia.forced=true}}else{if(gv==4){var fx;if(dr.zpp_pool==null){fx=new dr()}else{fx=dr.zpp_pool;dr.zpp_pool=fx.next;fx.next=null}fx.forced=false;fx.x=fl;fx.y=eM;ia=fx;if(g9||g7){ia.forced=true}}else{if(gv==6){var fw;if(dr.zpp_pool==null){fw=new dr()}else{fw=dr.zpp_pool;dr.zpp_pool=fw.next;fw.next=null}fw.forced=false;fw.x=fo;fw.y=eM;ia=fw;if(ip||g7){ia.forced=true}}else{if(gv==1){ia=ex.list[(ir<<1)*ex.width+iK];if(ia==null){var hD=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var fv;if(dr.zpp_pool==null){fv=new dr()}else{fv=dr.zpp_pool;dr.zpp_pool=fv.next;fv.next=null}fv.forced=false;fv.x=hD;fv.y=eP;ia=fv;ex.list[(ir<<1)*ex.width+iK]=ia}else{var hC=ia.x;var e7=ia.y;var fu;if(dr.zpp_pool==null){fu=new dr()}else{fu=dr.zpp_pool;dr.zpp_pool=fu.next;fu.next=null}fu.forced=false;fu.x=hC;fu.y=e7;ia=fu}if(io){ia.forced=true}if(ia.x==fo||ia.x==fl){if(ia.x==fo&&(f9&1)!=0||ia.x==fl&&(f9&4)!=0){f9^=2}}}else{if(gv==5){ia=ex.list[((ir<<1)+2)*ex.width+iK];if(ia==null){var hB=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var fs;if(dr.zpp_pool==null){fs=new dr()}else{fs=dr.zpp_pool;dr.zpp_pool=fs.next;fs.next=null}fs.forced=false;fs.x=hB;fs.y=eM;ia=fs;ex.list[((ir<<1)+2)*ex.width+iK]=ia}else{var hA=ia.x;var e6=ia.y;var fq;if(dr.zpp_pool==null){fq=new dr()}else{fq=dr.zpp_pool;dr.zpp_pool=fq.next;fq.next=null}fq.forced=false;fq.x=hA;fq.y=e6;ia=fq}if(g7){ia.forced=true}if(ia.x==fo||ia.x==fl){if(ia.x==fo&&(f9&64)!=0||ia.x==fl&&(f9&16)!=0){f9^=32}}}else{if(gv==3){ia=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(ia==null){var e5=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var fn;if(dr.zpp_pool==null){fn=new dr()}else{fn=dr.zpp_pool;dr.zpp_pool=fn.next;fn.next=null}fn.forced=false;fn.x=fl;fn.y=e5;ia=fn;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=ia}else{var hz=ia.x;var e4=ia.y;var eY;if(dr.zpp_pool==null){eY=new dr()}else{eY=dr.zpp_pool;dr.zpp_pool=eY.next;eY.next=null}eY.forced=false;eY.x=hz;eY.y=e4;ia=eY}if(g9){ia.forced=true}if(ia.y==eP||ia.y==eM){if(ia.y==eP&&(f9&4)!=0||ia.y==eM&&(f9&16)!=0){f9^=8}}}else{ia=ex.list[((ir<<1)+1)*ex.width+iK];if(ia==null){var e3=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var eX;if(dr.zpp_pool==null){eX=new dr()}else{eX=dr.zpp_pool;dr.zpp_pool=eX.next;eX.next=null}eX.forced=false;eX.x=fo;eX.y=e3;ia=eX;ex.list[((ir<<1)+1)*ex.width+iK]=ia}else{var hy=ia.x;var e2=ia.y;var eW;if(dr.zpp_pool==null){eW=new dr()}else{eW=dr.zpp_pool;dr.zpp_pool=eW.next;eW.next=null}eW.forced=false;eW.x=hy;eW.y=e2;ia=eW}if(ip){ia.forced=true}if(ia.y==eP||ia.y==eM){if(ia.y==eP&&(f9&1)!=0||ia.y==eM&&(f9&64)!=0){f9^=128}}}}}}}}}var gN=ia;if(gV.p1==null){gV.p1=gN.prev=gN.next=gN}else{gN.prev=gV.p1;gN.next=gV.p1.next;gV.p1.next.prev=gN;gV.p1.next=gN}gV.p1=gN}}gV.p1=gV.p1.next;gV.key1=f9;if(f9==1||f9==4||f9==16||f9==64||f9==3||f9==12||f9==48||f9==192||f9==129||f9==6||f9==24||f9==96||f9==5||f9==20||f9==80||f9==65||f9==17||f9==68){f9=0;gV.key1=0;gV.p1=null}if(f9==0){gV=null}else{gV.pr=gV.p1;gV.okeyr=gV.okey1;gV.keyr=gV.key1}}else{var f7=224;gV.okey1=224;var fh=0;while(fh<8){var gu=fh++;if((f7&1<<gu)!=0){var h8=null;if(gu==0){var eV;if(dr.zpp_pool==null){eV=new dr()}else{eV=dr.zpp_pool;dr.zpp_pool=eV.next;eV.next=null}eV.forced=false;eV.x=fo;eV.y=eP;h8=eV;if(ip||io){h8.forced=true}}else{if(gu==2){var eU;if(dr.zpp_pool==null){eU=new dr()}else{eU=dr.zpp_pool;dr.zpp_pool=eU.next;eU.next=null}eU.forced=false;eU.x=fl;eU.y=eP;h8=eU;if(g9||io){h8.forced=true}}else{if(gu==4){var eT;if(dr.zpp_pool==null){eT=new dr()}else{eT=dr.zpp_pool;dr.zpp_pool=eT.next;eT.next=null}eT.forced=false;eT.x=fl;eT.y=eM;h8=eT;if(g9||g7){h8.forced=true}}else{if(gu==6){var eS;if(dr.zpp_pool==null){eS=new dr()}else{eS=dr.zpp_pool;dr.zpp_pool=eS.next;eS.next=null}eS.forced=false;eS.x=fo;eS.y=eM;h8=eS;if(ip||g7){h8.forced=true}}else{if(gu==1){h8=ex.list[(ir<<1)*ex.width+iK];if(h8==null){var hx=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var eR;if(dr.zpp_pool==null){eR=new dr()}else{eR=dr.zpp_pool;dr.zpp_pool=eR.next;eR.next=null}eR.forced=false;eR.x=hx;eR.y=eP;h8=eR;ex.list[(ir<<1)*ex.width+iK]=h8}else{var hw=h8.x;var e1=h8.y;var eQ;if(dr.zpp_pool==null){eQ=new dr()}else{eQ=dr.zpp_pool;dr.zpp_pool=eQ.next;eQ.next=null}eQ.forced=false;eQ.x=hw;eQ.y=e1;h8=eQ}if(io){h8.forced=true}if(h8.x==fo||h8.x==fl){if(h8.x==fo&&(f7&1)!=0||h8.x==fl&&(f7&4)!=0){f7^=2}}}else{if(gu==5){h8=ex.list[((ir<<1)+2)*ex.width+iK];if(h8==null){var hv=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var eO;if(dr.zpp_pool==null){eO=new dr()}else{eO=dr.zpp_pool;dr.zpp_pool=eO.next;eO.next=null}eO.forced=false;eO.x=hv;eO.y=eM;h8=eO;ex.list[((ir<<1)+2)*ex.width+iK]=h8}else{var hl=h8.x;var e0=h8.y;var ei;if(dr.zpp_pool==null){ei=new dr()}else{ei=dr.zpp_pool;dr.zpp_pool=ei.next;ei.next=null}ei.forced=false;ei.x=hl;ei.y=e0;h8=ei}if(g7){h8.forced=true}if(h8.x==fo||h8.x==fl){if(h8.x==fo&&(f7&64)!=0||h8.x==fl&&(f7&16)!=0){f7^=32}}}else{if(gu==3){h8=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(h8==null){var eZ=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var eh;if(dr.zpp_pool==null){eh=new dr()}else{eh=dr.zpp_pool;dr.zpp_pool=eh.next;eh.next=null}eh.forced=false;eh.x=fl;eh.y=eZ;h8=eh;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=h8}else{var hj=h8.x;var ew=h8.y;var eg;if(dr.zpp_pool==null){eg=new dr()}else{eg=dr.zpp_pool;dr.zpp_pool=eg.next;eg.next=null}eg.forced=false;eg.x=hj;eg.y=ew;h8=eg}if(g9){h8.forced=true}if(h8.y==eP||h8.y==eM){if(h8.y==eP&&(f7&4)!=0||h8.y==eM&&(f7&16)!=0){f7^=8}}}else{h8=ex.list[((ir<<1)+1)*ex.width+iK];if(h8==null){var et=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var ef;if(dr.zpp_pool==null){ef=new dr()}else{ef=dr.zpp_pool;dr.zpp_pool=ef.next;ef.next=null}ef.forced=false;ef.x=fo;ef.y=et;h8=ef;ex.list[((ir<<1)+1)*ex.width+iK]=h8}else{var hi=h8.x;var es=h8.y;var ee;if(dr.zpp_pool==null){ee=new dr()}else{ee=dr.zpp_pool;dr.zpp_pool=ee.next;ee.next=null}ee.forced=false;ee.x=hi;ee.y=es;h8=ee}if(ip){h8.forced=true}if(h8.y==eP||h8.y==eM){if(h8.y==eP&&(f7&1)!=0||h8.y==eM&&(f7&64)!=0){f7^=128}}}}}}}}}var gM=h8;if(gV.p1==null){gV.p1=gM.prev=gM.next=gM}else{gM.prev=gV.p1;gM.next=gV.p1.next;gV.p1.next.prev=gM;gV.p1.next=gM}gV.p1=gM}}gV.p1=gV.p1.next;gV.key1=f7;if(f7==1||f7==4||f7==16||f7==64||f7==3||f7==12||f7==48||f7==192||f7==129||f7==6||f7==24||f7==96||f7==5||f7==20||f7==80||f7==65||f7==17||f7==68){f7=0;gV.key1=0;gV.p1=null}if(f7!=0){var f5=14;gV.okey2=14;var ff=0;while(ff<8){var gt=ff++;if((f5&1<<gt)!=0){var h6=null;if(gt==0){var ed;if(dr.zpp_pool==null){ed=new dr()}else{ed=dr.zpp_pool;dr.zpp_pool=ed.next;ed.next=null}ed.forced=false;ed.x=fo;ed.y=eP;h6=ed;if(ip||io){h6.forced=true}}else{if(gt==2){var ec;if(dr.zpp_pool==null){ec=new dr()}else{ec=dr.zpp_pool;dr.zpp_pool=ec.next;ec.next=null}ec.forced=false;ec.x=fl;ec.y=eP;h6=ec;if(g9||io){h6.forced=true}}else{if(gt==4){var eb;if(dr.zpp_pool==null){eb=new dr()}else{eb=dr.zpp_pool;dr.zpp_pool=eb.next;eb.next=null}eb.forced=false;eb.x=fl;eb.y=eM;h6=eb;if(g9||g7){h6.forced=true}}else{if(gt==6){var ea;if(dr.zpp_pool==null){ea=new dr()}else{ea=dr.zpp_pool;dr.zpp_pool=ea.next;ea.next=null}ea.forced=false;ea.x=fo;ea.y=eM;h6=ea;if(ip||g7){h6.forced=true}}else{if(gt==1){h6=ex.list[(ir<<1)*ex.width+iK];if(h6==null){var hh=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var iJ;if(dr.zpp_pool==null){iJ=new dr()}else{iJ=dr.zpp_pool;dr.zpp_pool=iJ.next;iJ.next=null}iJ.forced=false;iJ.x=hh;iJ.y=eP;h6=iJ;ex.list[(ir<<1)*ex.width+iK]=h6}else{var hg=h6.x;var er=h6.y;var iC;if(dr.zpp_pool==null){iC=new dr()}else{iC=dr.zpp_pool;dr.zpp_pool=iC.next;iC.next=null}iC.forced=false;iC.x=hg;iC.y=er;h6=iC}if(io){h6.forced=true}if(h6.x==fo||h6.x==fl){if(h6.x==fo&&(f5&1)!=0||h6.x==fl&&(f5&4)!=0){f5^=2}}}else{if(gt==5){h6=ex.list[((ir<<1)+2)*ex.width+iK];if(h6==null){var hf=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var iB;if(dr.zpp_pool==null){iB=new dr()}else{iB=dr.zpp_pool;dr.zpp_pool=iB.next;iB.next=null}iB.forced=false;iB.x=hf;iB.y=eM;h6=iB;ex.list[((ir<<1)+2)*ex.width+iK]=h6}else{var he=h6.x;var eq=h6.y;var iA;if(dr.zpp_pool==null){iA=new dr()}else{iA=dr.zpp_pool;dr.zpp_pool=iA.next;iA.next=null}iA.forced=false;iA.x=he;iA.y=eq;h6=iA}if(g7){h6.forced=true}if(h6.x==fo||h6.x==fl){if(h6.x==fo&&(f5&64)!=0||h6.x==fl&&(f5&16)!=0){f5^=32}}}else{if(gt==3){h6=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(h6==null){var ep=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var iz;if(dr.zpp_pool==null){iz=new dr()}else{iz=dr.zpp_pool;dr.zpp_pool=iz.next;iz.next=null}iz.forced=false;iz.x=fl;iz.y=ep;h6=iz;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=h6}else{var hd=h6.x;var eo=h6.y;var iy;if(dr.zpp_pool==null){iy=new dr()}else{iy=dr.zpp_pool;dr.zpp_pool=iy.next;iy.next=null}iy.forced=false;iy.x=hd;iy.y=eo;h6=iy}if(g9){h6.forced=true}if(h6.y==eP||h6.y==eM){if(h6.y==eP&&(f5&4)!=0||h6.y==eM&&(f5&16)!=0){f5^=8}}}else{h6=ex.list[((ir<<1)+1)*ex.width+iK];if(h6==null){var em=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var ix;if(dr.zpp_pool==null){ix=new dr()}else{ix=dr.zpp_pool;dr.zpp_pool=ix.next;ix.next=null}ix.forced=false;ix.x=fo;ix.y=em;h6=ix;ex.list[((ir<<1)+1)*ex.width+iK]=h6}else{var hc=h6.x;var el=h6.y;var iw;if(dr.zpp_pool==null){iw=new dr()}else{iw=dr.zpp_pool;dr.zpp_pool=iw.next;iw.next=null}iw.forced=false;iw.x=hc;iw.y=el;h6=iw}if(ip){h6.forced=true}if(h6.y==eP||h6.y==eM){if(h6.y==eP&&(f5&1)!=0||h6.y==eM&&(f5&64)!=0){f5^=128}}}}}}}}}var gL=h6;if(gV.p2==null){gV.p2=gL.prev=gL.next=gL}else{gL.prev=gV.p2;gL.next=gV.p2.next;gV.p2.next.prev=gL;gV.p2.next=gL}gV.p2=gL}}gV.p2=gV.p2.next;gV.key2=f5;if(f5==1||f5==4||f5==16||f5==64||f5==3||f5==12||f5==48||f5==192||f5==129||f5==6||f5==24||f5==96||f5==5||f5==20||f5==80||f5==65||f5==17||f5==68){f5=0;gV.key2=0;gV.p2=null}if(f5==0){gV.pr=gV.p1;gV.okeyr=gV.okey1;gV.keyr=gV.key1}else{gV.pr=gV.p2;gV.okeyr=gV.okey2;gV.keyr=gV.key2}}else{var f3=14;gV.okey1=14;var fd=0;while(fd<8){var gs=fd++;if((f3&1<<gs)!=0){var h3=null;if(gs==0){var iv;if(dr.zpp_pool==null){iv=new dr()}else{iv=dr.zpp_pool;dr.zpp_pool=iv.next;iv.next=null}iv.forced=false;iv.x=fo;iv.y=eP;h3=iv;if(ip||io){h3.forced=true}}else{if(gs==2){var iu;if(dr.zpp_pool==null){iu=new dr()}else{iu=dr.zpp_pool;dr.zpp_pool=iu.next;iu.next=null}iu.forced=false;iu.x=fl;iu.y=eP;h3=iu;if(g9||io){h3.forced=true}}else{if(gs==4){var iq;if(dr.zpp_pool==null){iq=new dr()}else{iq=dr.zpp_pool;dr.zpp_pool=iq.next;iq.next=null}iq.forced=false;iq.x=fl;iq.y=eM;h3=iq;if(g9||g7){h3.forced=true}}else{if(gs==6){var eN;if(dr.zpp_pool==null){eN=new dr()}else{eN=dr.zpp_pool;dr.zpp_pool=eN.next;eN.next=null}eN.forced=false;eN.x=fo;eN.y=eM;h3=eN;if(ip||g7){h3.forced=true}}else{if(gs==1){h3=ex.list[(ir<<1)*ex.width+iK];if(h3==null){var hb=this.xlerp(fo,fl,eP,gi,gg,iD,gS);var eL;if(dr.zpp_pool==null){eL=new dr()}else{eL=dr.zpp_pool;dr.zpp_pool=eL.next;eL.next=null}eL.forced=false;eL.x=hb;eL.y=eP;h3=eL;ex.list[(ir<<1)*ex.width+iK]=h3}else{var gZ=h3.x;var ek=h3.y;var eJ;if(dr.zpp_pool==null){eJ=new dr()}else{eJ=dr.zpp_pool;dr.zpp_pool=eJ.next;eJ.next=null}eJ.forced=false;eJ.x=gZ;eJ.y=ek;h3=eJ}if(io){h3.forced=true}if(h3.x==fo||h3.x==fl){if(h3.x==fo&&(f3&1)!=0||h3.x==fl&&(f3&4)!=0){f3^=2}}}else{if(gs==5){h3=ex.list[((ir<<1)+2)*ex.width+iK];if(h3==null){var gX=this.xlerp(fo,fl,eM,gd,gf,iD,gS);var eH;if(dr.zpp_pool==null){eH=new dr()}else{eH=dr.zpp_pool;dr.zpp_pool=eH.next;eH.next=null}eH.forced=false;eH.x=gX;eH.y=eM;h3=eH;ex.list[((ir<<1)+2)*ex.width+iK]=h3}else{var gW=h3.x;var iI=h3.y;var eF;if(dr.zpp_pool==null){eF=new dr()}else{eF=dr.zpp_pool;dr.zpp_pool=eF.next;eF.next=null}eF.forced=false;eF.x=gW;eF.y=iI;h3=eF}if(g7){h3.forced=true}if(h3.x==fo||h3.x==fl){if(h3.x==fo&&(f3&64)!=0||h3.x==fl&&(f3&16)!=0){f3^=32}}}else{if(gs==3){h3=ex.list[((ir<<1)+1)*ex.width+(iK+1)];if(h3==null){var iH=this.ylerp(eP,eM,fl,gg,gf,iD,gS);var eD;if(dr.zpp_pool==null){eD=new dr()}else{eD=dr.zpp_pool;dr.zpp_pool=eD.next;eD.next=null}eD.forced=false;eD.x=fl;eD.y=iH;h3=eD;ex.list[((ir<<1)+1)*ex.width+(iK+1)]=h3}else{var gU=h3.x;var iG=h3.y;var eB;if(dr.zpp_pool==null){eB=new dr()}else{eB=dr.zpp_pool;dr.zpp_pool=eB.next;eB.next=null}eB.forced=false;eB.x=gU;eB.y=iG;h3=eB}if(g9){h3.forced=true}if(h3.y==eP||h3.y==eM){if(h3.y==eP&&(f3&4)!=0||h3.y==eM&&(f3&16)!=0){f3^=8}}}else{h3=ex.list[((ir<<1)+1)*ex.width+iK];if(h3==null){var iF=this.ylerp(eP,eM,fo,gi,gd,iD,gS);var ez;if(dr.zpp_pool==null){ez=new dr()}else{ez=dr.zpp_pool;dr.zpp_pool=ez.next;ez.next=null}ez.forced=false;ez.x=fo;ez.y=iF;h3=ez;ex.list[((ir<<1)+1)*ex.width+iK]=h3}else{var gT=h3.x;var iE=h3.y;var ev;if(dr.zpp_pool==null){ev=new dr()}else{ev=dr.zpp_pool;dr.zpp_pool=ev.next;ev.next=null}ev.forced=false;ev.x=gT;ev.y=iE;h3=ev}if(ip){h3.forced=true}if(h3.y==eP||h3.y==eM){if(h3.y==eP&&(f3&1)!=0||h3.y==eM&&(f3&64)!=0){f3^=128}}}}}}}}}var gK=h3;if(gV.p1==null){gV.p1=gK.prev=gK.next=gK}else{gK.prev=gV.p1;gK.next=gV.p1.next;gV.p1.next.prev=gK;gV.p1.next=gK}gV.p1=gK}}gV.p1=gV.p1.next;gV.key1=f3;if(f3==1||f3==4||f3==16||f3==64||f3==3||f3==12||f3==48||f3==192||f3==129||f3==6||f3==24||f3==96||f3==5||f3==20||f3==80||f3==65||f3==17||f3==68){f3=0;gV.key1=0;gV.p1=null}if(f3==0){gV=null}else{gV.pr=gV.p1;gV.okeyr=gV.okey1;gV.keyr=gV.key1}}}}}return gV}};bc.prototype.lerp=function(ee,eb,ea,ef){if(ea==0){return ee}else{if(ef==0){return eb}else{var ed=ea-ef;var ec=ed*ed<P.epsilon*P.epsilon?0.5:ea/ed;if(ec<0){ec=0}else{if(ec>1){ec=1}}return ee+ec*(eb-ee)}}};bc.prototype.xlerp=function(ec,eb,eh,ek,ei,em,ej){var ef;if(ek==0){ef=ec}else{if(ei==0){ef=eb}else{var ea=ek-ei;var el=ea*ea<P.epsilon*P.epsilon?0.5:ek/ea;if(el<0){el=0}else{if(el>1){el=1}}ef=ec+el*(eb-ec)}}while(ej--!=0&&ec<ef&&ef<eb){var ed=em(ef,eh);if(ed==0){break}if(ek*ed<0){eb=ef;ei=ed}else{ec=ef;ek=ed}if(ek==0){ef=ec}else{if(ei==0){ef=eb}else{var eg=ek-ei;var ee=eg*eg<P.epsilon*P.epsilon?0.5:ek/eg;if(ee<0){ee=0}else{if(ee>1){ee=1}}ef=ec+ee*(eb-ec)}}}return ef};bc.prototype.ylerp=function(ei,ef,eg,ek,eh,em,ej){var eb;if(ek==0){eb=ei}else{if(eh==0){eb=ef}else{var ea=ek-eh;var el=ea*ea<P.epsilon*P.epsilon?0.5:ek/ea;if(el<0){el=0}else{if(el>1){el=1}}eb=ei+el*(ef-ei)}}while(ej--!=0&&ei<eb&&eb<ef){var ec=em(eg,eb);if(ec==0){break}if(ek*ec<0){ef=eb;eh=ec}else{ei=eb;ek=ec}if(ek==0){eb=ei}else{if(eh==0){eb=ef}else{var ee=ek-eh;var ed=ee*ee<P.epsilon*P.epsilon?0.5:ek/ee;if(ed<0){ed=0}else{if(ed>1){ed=1}}eb=ei+ed*(ef-ei)}}}return eb};bc.prototype.__class__=bc;var cm=zpp_nape.geom.ZPP_Mat23=function(){this.next=null;this._invalidate=null;this.ty=0;this.tx=0;this.d=0;this.c=0;this.b=0;this.a=0;this.outer=null};cm.__name__=["zpp_nape","geom","ZPP_Mat23"];cm.get=function(){var ea;if(cm.zpp_pool==null){ea=new cm()}else{ea=cm.zpp_pool;cm.zpp_pool=ea.next;ea.next=null}return ea};cm.identity=function(){var ea=cm.get();ea.setas(1,0,0,1,0,0);return ea};cm.prototype.outer=null;cm.prototype.wrapper=function(){if(this.outer==null){this.outer=new cI();var ea=this.outer.zpp_inner;ea.next=cm.zpp_pool;cm.zpp_pool=ea;this.outer.zpp_inner=this}return this.outer};cm.prototype.a=null;cm.prototype.b=null;cm.prototype.c=null;cm.prototype.d=null;cm.prototype.tx=null;cm.prototype.ty=null;cm.prototype._invalidate=null;cm.prototype.invalidate=function(){if(this._invalidate!=null){this._invalidate()}};cm.prototype.set=function(ea){this.setas(ea.a,ea.b,ea.c,ea.d,ea.tx,ea.ty)};cm.prototype.setas=function(ed,eb,ef,ee,ec,ea){this.tx=ec;this.ty=ea;this.a=ed;this.b=eb;this.c=ef;this.d=ee};cm.prototype.next=null;cm.prototype.free=function(){};cm.prototype.alloc=function(){};cm.prototype.__class__=cm;var bI=zpp_nape.geom.ZPP_MatMN=function(ea,ed){this.x=null;this.n=0;this.m=0;this.outer=null;this.m=ea;this.n=ed;this.x=[];var eb=0;var ec=ea*ed;while(eb<ec){++eb;this.x.push(0)}};bI.__name__=["zpp_nape","geom","ZPP_MatMN"];bI.prototype.outer=null;bI.prototype.m=null;bI.prototype.n=null;bI.prototype.x=null;bI.prototype.__class__=bI;var aE=zpp_nape.geom.ZPP_Monotone=function(){};aE.__name__=["zpp_nape","geom","ZPP_Monotone"];aE.bisector=function(ei){var ej=ei.prev;var ee=ei.next;var ec=0;var ea=0;ec=ei.x-ej.x;ea=ei.y-ej.y;var eh=0;var ef=0;eh=ee.x-ei.x;ef=ee.y-ei.y;var ed;if(bB.zpp_pool==null){ed=new bB()}else{ed=bB.zpp_pool;bB.zpp_pool=ed.next;ed.next=null}ed.weak=false;ed._immutable=false;ed.x=-ea-ef;ed.y=ec+eh;var eg=ed;var eb=1/Math.sqrt(eg.x*eg.x+eg.y*eg.y);eg.x*=eb;eg.y*=eb;if(ef*ec-eh*ea<0){eg.x=-eg.x;eg.y=-eg.y}return eg};aE.below=function(ee,ed){if(ee.y<ed.y){return true}else{if(ee.y>ed.y){return false}else{if(ee.x<ed.x){return true}else{if(ee.x>ed.x){return false}else{var ea=aE.bisector(ee);var ec=aE.bisector(ed);ea.x+=ee.x;ea.y+=ee.y;ec.x+=ed.x;ec.y+=ed.y;var eb=ea.x<ec.x||ea.x==ec.x&&ea.y<ec.y;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec._isimmutable=null;ec._validate=null;ec._invalidate=null;ec.next=bB.zpp_pool;bB.zpp_pool=ec;return eb}}}}};aE.above=function(eb,ea){return aE.below(ea,eb)};aE.left_vertex=function(eb){var ea=eb.prev;if(!(ea.y>eb.y)){if(ea.y==eb.y){return eb.next.y<eb.y}else{return false}}else{return true}};aE.isMonotone=function(eh){var ed=eh;var ek=eh;var eo=eh.next;if(eo!=null){var ec=eo;while(true){var ea=ec;if(ea.y<ed.y){ed=ea}if(ea.y>ek.y){ek=ea}ec=ec.next;if(!(ec!=eh)){break}}}var ei=true;var eb=ed;if(ek!=ed.next){var eg=ed.next;var ej=ek;if(eg!=null){var ep=eg;while(true){var em=ep;if(em.y<eb.y){ei=false;break}eb=em;ep=ep.next;if(!(ep!=ej)){break}}}}if(!ei){return false}eb=ed;if(ek!=ed.prev){var ef=ed.prev;var ee=ek;if(ef!=null){var en=ef;while(true){var el=en;if(el.y<eb.y){ei=false;break}eb=el;en=en.prev;if(!(en!=ee)){break}}}}return ei};aE.sharedPPoly=null;aE.getShared=function(){if(aE.sharedPPoly==null){aE.sharedPPoly=new a()}return aE.sharedPPoly};aE.decompose=function(ee,ey){if(ey==null){ey=new a(ee)}else{ey.init(ee)}if(ey.vertices==null){return ey}if(aE.queue==null){aE.queue=new dO()}var ei=ey.vertices;var ef=ey.vertices;if(ei!=null){var eb=ei;while(true){var eG=eb;aE.queue.add(eG);var eu=0;var et=0;eu=eG.next.x-eG.x;et=eG.next.y-eG.y;var eh=0;var eg=0;eh=eG.prev.x-eG.x;eg=eG.prev.y-eG.y;var en=eg*eu-eh*et>0;eG.type=aE.below(eG.prev,eG)?aE.below(eG.next,eG)?en?0:3:4:aE.below(eG,eG.next)?en?1:2:4;eb=eb.next;if(!(eb!=ef)){break}}}var eq=aE.queue;if(eq.head!=null&&eq.head.next!=null){var ej=eq.head;var eK=null;var ed=null;var eF=null;var eI=null;var em=1;var ec;var eA;var ea;while(true){ec=0;ed=ej;ej=null;eK=ej;while(ed!=null){++ec;eF=ed;eA=0;ea=em;while(eF!=null&&eA<em){++eA;eF=eF.next}while(eA>0||ea>0&&eF!=null){if(eA==0){eI=eF;eF=eF.next;--ea}else{if(ea==0||eF==null){eI=ed;ed=ed.next;--eA}else{if(aE.above(ed.elt,eF.elt)){eI=ed;ed=ed.next;--eA}else{eI=eF;eF=eF.next;--ea}}}if(eK!=null){eK.next=eI}else{ej=eI}eK=eI}ed=eF}eK.next=null;em<<=1;if(!(ec>1)){break}}eq.head=ej;eq.modified=true;eq.pushmod=true}if(aE.edges==null){if(b8.zpp_pool==null){aE.edges=new b8()}else{aE.edges=b8.zpp_pool;b8.zpp_pool=aE.edges.next;aE.edges.next=null}aE.edges.lt=ah.edge_lt;aE.edges.swapped=ah.edge_swap}while(aE.queue.head!=null){var eD=aE.queue.pop_unsafe();switch(eD.type){case 0:eD.helper=eD;eD.node=aE.edges.insert(eD);break;case 1:var eJ=eD.prev;if(eJ.helper.type==2){ey.add_diagonal(eD,eJ.helper)}aE.edges.remove_node(eJ.node);break;case 2:var es=eD.prev;if(es.helper.type==2){ey.add_diagonal(eD,es.helper)}aE.edges.remove_node(es.node);var ez=null;if(!aE.edges.empty()){var ew=aE.edges.parent;while(ew.prev!=null){ew=ew.prev}while(ew!=null){var eH=ew.data;if(!ah.vert_lt(eH,eD)){ez=eH;break}if(ew.next!=null){ew=ew.next;while(ew.prev!=null){ew=ew.prev}}else{while(ew.parent!=null&&ew==ew.parent.next){ew=ew.parent}ew=ew.parent}}}var er=ez;if(er!=null){if(er.helper.type==2){ey.add_diagonal(eD,er.helper)}er.helper=eD}break;case 3:var eC=null;if(!aE.edges.empty()){var el=aE.edges.parent;while(el.prev!=null){el=el.prev}while(el!=null){var ex=el.data;if(!ah.vert_lt(ex,eD)){eC=ex;break}if(el.next!=null){el=el.next;while(el.prev!=null){el=el.prev}}else{while(el.parent!=null&&el==el.parent.next){el=el.parent}el=el.parent}}}var ep=eC;if(ep!=null){ey.add_diagonal(eD,ep.helper);ep.helper=eD}eD.node=aE.edges.insert(eD);eD.helper=eD;break;case 4:var eE=eD.prev;if(aE.left_vertex(eD)){if(eE.helper.type==2){ey.add_diagonal(eD,eE.helper)}aE.edges.remove_node(eE.node);eD.node=aE.edges.insert(eD);eD.helper=eD}else{var eB=null;if(!aE.edges.empty()){var ek=aE.edges.parent;while(ek.prev!=null){ek=ek.prev}while(ek!=null){var ev=ek.data;if(!ah.vert_lt(ev,eD)){eB=ev;break}if(ek.next!=null){ek=ek.next;while(ek.prev!=null){ek=ek.prev}}else{while(ek.parent!=null&&ek==ek.parent.next){ek=ek.parent}ek=ek.parent}}}var eo=eB;if(eo.helper.type==2){ey.add_diagonal(eD,eo.helper)}eo.helper=eD}break}}return ey};aE.prototype.__class__=aE;var ah=zpp_nape.geom.ZPP_PartitionVertex=function(){this.node=null;this.prev=null;this.next=null;this.rightchain=false;this.helper=null;this.type=0;this.diagonals=null;this.forced=false;this.y=0;this.x=0;this.mag=0;this.id=0;this.id=ah.nextId++;this.diagonals=new dO()};ah.__name__=["zpp_nape","geom","ZPP_PartitionVertex"];ah.get=function(ea){var eb;if(ah.zpp_pool==null){eb=new ah()}else{eb=ah.zpp_pool;ah.zpp_pool=eb.next;eb.next=null}eb.x=ea.x;eb.y=ea.y;return eb};ah.rightdistance=function(ef,eb){var eg=ef.next.y>ef.y;var ec=0;var ea=0;ec=ef.next.x-ef.x;ea=ef.next.y-ef.y;var ee=0;var ed=0;ee=eb.x-ef.x;ed=eb.y-ef.y;return(eg?-1:1)*(ed*ec-ee*ea)};ah.vert_lt=function(ec,eb){if(eb==ec||eb==ec.next){return true}else{if(ec.y==ec.next.y){var ea=ec.x;var ed=ec.next.x;return(ea<ed?ea:ed)<=eb.x}else{return ah.rightdistance(ec,eb)<=0}}};ah.edge_swap=function(ec,eb){var ea=ec.node;ec.node=eb.node;eb.node=ea};ah.edge_lt=function(ee,ed){if(ee==ed&&ee.next==ed.next){return false}if(ee==ed.next){return !ah.vert_lt(ee,ed)}else{if(ed==ee.next){return ah.vert_lt(ed,ee)}else{if(ee.y==ee.next.y){if(ed.y==ed.next.y){var eo=ee.x;var em=ee.next.x;var ei=eo>em?eo:em;var ef=ed.x;var en=ed.next.x;return ei>(ef>en?ef:en)}else{if(!(ah.rightdistance(ed,ee)>0)){return ah.rightdistance(ed,ee.next)>0}else{return true}}}else{var eg=ah.rightdistance(ee,ed);var ej=ah.rightdistance(ee,ed.next);if(eg==0&&ej==0){var ec=ee.x;var el=ee.next.x;var eh=ec>el?ec:el;var eb=ed.x;var ek=ed.next.x;return eh>(eb>ek?eb:ek)}if(eg*ej>=0){if(!(eg<0)){return ej<0}else{return true}}var ep=ah.rightdistance(ed,ee);var ea=ah.rightdistance(ed,ee.next);if(ep*ea>=0){if(!(ep>0)){return ea>0}else{return true}}return false}}}};ah.prototype.id=null;ah.prototype.mag=null;ah.prototype.x=null;ah.prototype.y=null;ah.prototype.forced=null;ah.prototype.diagonals=null;ah.prototype.type=null;ah.prototype.helper=null;ah.prototype.rightchain=null;ah.prototype.next=null;ah.prototype.prev=null;ah.prototype.alloc=function(){};ah.prototype.free=function(){this.helper=null};ah.prototype.copy=function(){var ea;if(ah.zpp_pool==null){ea=new ah()}else{ea=ah.zpp_pool;ah.zpp_pool=ea.next;ea.next=null}ea.x=this.x;ea.y=this.y;ea.forced=this.forced;return ea};ah.prototype.sort=function(){var ej=0;var eh=0;var ep=0;var eo=0;ej=this.prev.x-this.x;eh=this.prev.y-this.y;ep=this.next.x-this.x;eo=this.next.y-this.y;var ex=eo*ej-ep*eh;var em=ex>0?-1:ex==0?0:1;var eq=this.diagonals;if(eq.head!=null&&eq.head.next!=null){var eg=eq.head;var en=null;var eb=null;var et=null;var ee=null;var ea=1;var es;var er;var ed;while(true){es=0;eb=eg;eg=null;en=eg;while(eb!=null){++es;et=eb;er=0;ed=ea;while(et!=null&&er<ea){++er;et=et.next}while(er>0||ed>0&&et!=null){if(er==0){ee=et;et=et.next;--ed}else{if(ed==0||et==null){ee=eb;eb=eb.next;--er}else{var eu;if(em==1){ej=eb.elt.x-this.x;eh=eb.elt.y-this.y;ep=et.elt.x-this.x;eo=et.elt.y-this.y;var el=eo*ej-ep*eh;eu=(el>0?-1:el==0?0:1)==1}else{ej=this.prev.x-this.x;eh=this.prev.y-this.y;ep=eb.elt.x-this.x;eo=eb.elt.y-this.y;var ei=eo*ej-ep*eh;var ey=ei>0?-1:ei==0?0:1;ej=this.prev.x-this.x;eh=this.prev.y-this.y;ep=et.elt.x-this.x;eo=et.elt.y-this.y;var ef=eo*ej-ep*eh;var ew=ef>0?-1:ef==0?0:1;if(ey*ew==1||ey*ew==0&&(ey==1||ew==1)){ej=eb.elt.x-this.x;eh=eb.elt.y-this.y;ep=et.elt.x-this.x;eo=et.elt.y-this.y;var ec=eo*ej-ep*eh;eu=(ec>0?-1:ec==0?0:1)==1}else{if(ey==-1||ew==-1){eu=ew==-1}else{if(ey==0&&ew==0){ej=this.x-this.prev.x;eh=this.y-this.prev.y;ep=eb.elt.x-this.x;eo=eb.elt.y-this.y;var ev=ej*ep+eh*eo;ep=et.elt.x-this.x;eo=et.elt.y-this.y;var ek=ej*ep+eh*eo;if(ev<0&&ek>0){eu=true}else{if(ek<0&&ev>0){eu=false}else{eu=true}}}else{eu=true}}}}if(eu){ee=eb;eb=eb.next;--er}else{ee=et;et=et.next;--ed}}}if(en!=null){en.next=ee}else{eg=ee}en=ee}eb=et}en.next=null;ea<<=1;if(!(es>1)){break}}eq.head=eg;eq.modified=true;eq.pushmod=true}};ah.prototype.node=null;ah.prototype.__class__=ah;var a=zpp_nape.geom.ZPP_PartitionedPoly=function(ea){this.next=null;this.vertices=null;this.init(ea)};a.__name__=["zpp_nape","geom","ZPP_PartitionedPoly"];a.sharedPPList=null;a.getSharedPP=function(){if(a.sharedPPList==null){a.sharedPPList=new bu()}return a.sharedPPList};a.sharedGVList=null;a.getShared=function(){if(a.sharedGVList==null){a.sharedGVList=new dA()}return a.sharedGVList};a.prototype.vertices=null;a.prototype.eq=function(ec,ea){var ef=ec.x;var ee=ec.y;var eh=ea.x;var eg=ea.y;var ed=0;var eb=0;ed=ef-eh;eb=ee-eg;return ed*ed+eb*eb<P.epsilon*P.epsilon};a.prototype.next=null;a.prototype.alloc=function(){};a.prototype.free=function(){};a.prototype.init=function(eh){if(eh==null){return}var eb=0;if(eh!=null){var ed=eh;while(true){var ek=ed;eb+=ek.x*(ek.next.y-ek.prev.y);ed=ed.next;if(!(ed!=eh)){break}}}var ee=eb*0.5>0;var ea=eh;while(true){var eg;if(ee){var ei;if(ah.zpp_pool==null){ei=new ah()}else{ei=ah.zpp_pool;ah.zpp_pool=ei.next;ei.next=null}ei.x=ea.x;ei.y=ea.y;var ef=ei;if(this.vertices==null){this.vertices=ef.prev=ef.next=ef}else{ef.prev=this.vertices;ef.next=this.vertices.next;this.vertices.next.prev=ef;this.vertices.next=ef}eg=ef}else{var ej;if(ah.zpp_pool==null){ej=new ah()}else{ej=ah.zpp_pool;ah.zpp_pool=ej.next;ej.next=null}ej.x=ea.x;ej.y=ea.y;var ec=ej;if(this.vertices==null){this.vertices=ec.prev=ec.next=ec}else{ec.next=this.vertices;ec.prev=this.vertices.prev;this.vertices.prev.next=ec;this.vertices.prev=ec}eg=ec}this.vertices=eg;this.vertices.forced=ea.forced;ea=ea.next;if(!(ea!=eh)){break}}this.remove_collinear_vertices()};a.prototype.remove_collinear_vertices=function(){var ec=this.vertices;var em=true;while(em||ec!=this.vertices){em=false;if(this.eq(ec,ec.next)){if(ec==this.vertices){this.vertices=ec.next;em=true}if(ec.forced){ec.next.forced=true}if(ec!=null&&ec.prev==ec){ec.next=ec.prev=null;var ee=ec;ee.helper=null;ee.next=ah.zpp_pool;ah.zpp_pool=ee;ec=null;ec=ec}else{var en=ec.next;ec.prev.next=ec.next;ec.next.prev=ec.prev;ec.next=ec.prev=null;var eg=ec;eg.helper=null;eg.next=ah.zpp_pool;ah.zpp_pool=eg;ec=null;ec=en}if(ec==null){this.vertices=null;break}}else{ec=ec.next}}if(this.vertices==null){return true}var ei;while(true){ei=false;ec=this.vertices;em=true;while(em||ec!=this.vertices){em=false;var eh=ec.prev;var eb=0;var ea=0;eb=ec.x-eh.x;ea=ec.y-eh.y;var ek=0;var ej=0;ek=ec.next.x-ec.x;ej=ec.next.y-ec.y;var el=ej*eb-ek*ea;if(el*el>=P.epsilon*P.epsilon){ec=ec.next}else{if(ec==this.vertices){this.vertices=ec.next;em=true}if(ec!=null&&ec.prev==ec){ec.next=ec.prev=null;var ef=ec;ef.helper=null;ef.next=ah.zpp_pool;ah.zpp_pool=ef;ec=null;ec=ec}else{var eo=ec.next;ec.prev.next=ec.next;ec.next.prev=ec.prev;ec.next=ec.prev=null;var ed=ec;ed.helper=null;ed.next=ah.zpp_pool;ah.zpp_pool=ed;ec=null;ec=eo}ei=true;if(ec==null){ei=false;this.vertices=null;break}}}if(!ei){break}}return this.vertices==null};a.prototype.add_diagonal=function(eb,ea){eb.diagonals.add(ea);ea.diagonals.add(eb);eb.forced=ea.forced=true};a.prototype.extract_partitions=function(eg){if(eg==null){eg=new bu()}if(this.vertices!=null){var ej=this.vertices;var eh=this.vertices;if(ej!=null){var ee=ej;while(true){ee.sort();ee=ee.next;if(!(ee!=eh)){break}}}this.pull_partitions(this.vertices,eg);while(this.vertices!=null){var ef;if(this.vertices!=null&&this.vertices.prev==this.vertices){this.vertices.next=this.vertices.prev=null;var ea=this.vertices;ea.helper=null;ea.next=ah.zpp_pool;ah.zpp_pool=ea;ef=this.vertices=null}else{var ei=this.vertices.next;this.vertices.prev.next=this.vertices.next;this.vertices.next.prev=this.vertices.prev;this.vertices.next=this.vertices.prev=null;var ec=this.vertices;ec.helper=null;ec.next=ah.zpp_pool;ah.zpp_pool=ec;this.vertices=null;ef=ei}this.vertices=ef}var ed=null;var eb=eg.head;while(eb!=null){if(eb.elt.remove_collinear_vertices()){eg.erase(ed);continue}ed=eb;eb=eb.next}}return eg};a.prototype.pull_partitions=function(ec,eh){var ea;if(a.zpp_pool==null){ea=new a()}else{ea=a.zpp_pool;a.zpp_pool=ea.next;ea.next=null}var ef=ec;while(true){var ek;if(ah.zpp_pool==null){ek=new ah()}else{ek=ah.zpp_pool;ah.zpp_pool=ek.next;ek.next=null}ek.x=ef.x;ek.y=ef.y;ek.forced=ef.forced;var ee=ek;if(ea.vertices==null){ea.vertices=ee.prev=ee.next=ee}else{ee.prev=ea.vertices;ee.next=ea.vertices.next;ea.vertices.next.prev=ee;ea.vertices.next=ee}ea.vertices=ee;ea.vertices.forced=ef.forced;if(ef.diagonals.head!=null){var eg=ef.diagonals;var ej=eg.head.elt;eg.pop();if(ej==ec){break}else{ef=this.pull_partitions(ef,eh)}}else{ef=ef.next}if(!(ef!=ec)){break}}var eb=0;var em=ea.vertices;var ei=ea.vertices;if(em!=null){var ed=em;while(true){var el=ed;eb+=el.x*(el.next.y-el.prev.y);ed=ed.next;if(!(ed!=ei)){break}}}if(eb*0.5!=0){eh.add(ea)}return ef};a.prototype.extract=function(eb){if(eb==null){eb=new dA()}if(this.vertices!=null){var ed=this.vertices;var ea=this.vertices;if(ed!=null){var ef=ed;while(true){ef.sort();ef=ef.next;if(!(ef!=ea)){break}}}this.pull(this.vertices,eb);while(this.vertices!=null){var ec;if(this.vertices!=null&&this.vertices.prev==this.vertices){this.vertices.next=this.vertices.prev=null;var eh=this.vertices;eh.helper=null;eh.next=ah.zpp_pool;ah.zpp_pool=eh;ec=this.vertices=null}else{var eg=this.vertices.next;this.vertices.prev.next=this.vertices.next;this.vertices.next.prev=this.vertices.prev;this.vertices.next=this.vertices.prev=null;var ee=this.vertices;ee.helper=null;ee.next=ah.zpp_pool;ah.zpp_pool=ee;this.vertices=null;ec=eg}this.vertices=ec}}return eb};a.prototype.pull=function(ec,eG){var eg=null;var ex=ec;while(true){var em=ex.x;var ek=ex.y;var eh;if(dr.zpp_pool==null){eh=new dr()}else{eh=dr.zpp_pool;dr.zpp_pool=eh.next;eh.next=null}eh.forced=false;eh.x=em;eh.y=ek;var es=eh;if(eg==null){eg=es.prev=es.next=es}else{es.prev=eg;es.next=eg.next;eg.next.prev=es;eg.next=es}eg=es;es.forced=ex.forced;if(ex.diagonals.head!=null){var eA=ex.diagonals;var ef=eA.head.elt;eA.pop();if(ef==ec){break}else{ex=this.pull(ex,eG)}}else{ex=ex.next}if(!(ex!=ec)){break}}var eF=0;var er=eg;var ej=eg;if(er!=null){var eE=er;while(true){var eq=eE;eF+=eq.x*(eq.next.y-eq.prev.y);eE=eE.next;if(!(eE!=ej)){break}}}var ez=eF*0.5;if(ez*ez>=P.epsilon*P.epsilon){var ew=eg;var ey=true;while(ey||ew!=eg){ey=false;var eo=ew.x;var el=ew.y;var eD=ew.next.x;var eB=ew.next.y;var ep=0;var en=0;ep=eo-eD;en=el-eB;if(ep*ep+en*en<P.epsilon*P.epsilon){if(ew==eg){eg=ew.next;ey=true}if(ew.forced){ew.next.forced=true}if(ew!=null&&ew.prev==ew){ew.next=ew.prev=null;ew=null;ew=ew}else{var ei=ew.next;ew.prev.next=ew.next;ew.next.prev=ew.prev;ew.next=ew.prev=null;ew=null;ew=ei}if(ew==null){eg=null;break}}else{ew=ew.next}}if(eg!=null){var eC;while(true){eC=false;ew=eg;ey=true;while(ey||ew!=eg){ey=false;var ev=ew.prev;var ee=0;var ed=0;ee=ew.x-ev.x;ed=ew.y-ev.y;var eu=0;var et=0;eu=ew.next.x-ew.x;et=ew.next.y-ew.y;var eb=et*ee-eu*ed;if(eb*eb>=P.epsilon*P.epsilon){ew=ew.next}else{if(ew==eg){eg=ew.next;ey=true}if(ew!=null&&ew.prev==ew){ew.next=ew.prev=null;ew=null;ew=ew}else{var ea=ew.next;ew.prev.next=ew.next;ew.next.prev=ew.prev;ew.next=ew.prev=null;ew=null;ew=ea}eC=true;if(ew==null){eC=false;eg=null;break}}}if(!eC){break}}}if(eg!=null){eG.add(eg)}}return ex};a.prototype.__class__=a;var bf=zpp_nape.geom.ZPP_Ray=function(){this.zip_dir=false;this.absnormaly=0;this.absnormalx=0;this.normaly=0;this.normalx=0;this.idiry=0;this.idirx=0;this.diry=0;this.dirx=0;this.originy=0;this.originx=0;this.userData=null;this.maxdist=0;this.direction=null;this.origin=null;var eh;if(au.poolVec2==null){eh=new r()}else{eh=au.poolVec2;au.poolVec2=eh.zpp_pool;eh.zpp_pool=null}if(eh.zpp_inner==null){var el;if(bB.zpp_pool==null){el=new bB()}else{el=bB.zpp_pool;bB.zpp_pool=el.next;el.next=null}el.weak=false;el._immutable=false;el.x=0;el.y=0;eh.zpp_inner=el;eh.zpp_inner.outer=eh}else{var eb;var ef=eh.zpp_inner;if(ef._validate!=null){ef._validate()}if(eh.zpp_inner.x==0){var ei=eh.zpp_inner;if(ei._validate!=null){ei._validate()}eb=eh.zpp_inner.y==0}else{eb=false}if(!eb){eh.zpp_inner.x=0;eh.zpp_inner.y=0;var eg=eh.zpp_inner;if(eg._invalidate!=null){eg._invalidate(eg)}}}eh.zpp_inner.weak=false;this.origin=eh;this.origin.zpp_inner._invalidate=dX(this,this.origin_invalidate);var ek;if(au.poolVec2==null){ek=new r()}else{ek=au.poolVec2;au.poolVec2=ek.zpp_pool;ek.zpp_pool=null}if(ek.zpp_inner==null){var ej;if(bB.zpp_pool==null){ej=new bB()}else{ej=bB.zpp_pool;bB.zpp_pool=ej.next;ej.next=null}ej.weak=false;ej._immutable=false;ej.x=0;ej.y=0;ek.zpp_inner=ej;ek.zpp_inner.outer=ek}else{var ea;var ee=ek.zpp_inner;if(ee._validate!=null){ee._validate()}if(ek.zpp_inner.x==0){var ed=ek.zpp_inner;if(ed._validate!=null){ed._validate()}ea=ek.zpp_inner.y==0}else{ea=false}if(!ea){ek.zpp_inner.x=0;ek.zpp_inner.y=0;var ec=ek.zpp_inner;if(ec._invalidate!=null){ec._invalidate(ec)}}}ek.zpp_inner.weak=false;this.direction=ek;this.direction.zpp_inner._invalidate=dX(this,this.direction_invalidate);this.originx=0;this.originy=0;this.dirx=0;this.diry=0;this.zip_dir=false};bf.__name__=["zpp_nape","geom","ZPP_Ray"];bf.prototype.origin=null;bf.prototype.direction=null;bf.prototype.maxdist=null;bf.prototype.userData=null;bf.prototype.originx=null;bf.prototype.originy=null;bf.prototype.dirx=null;bf.prototype.diry=null;bf.prototype.idirx=null;bf.prototype.idiry=null;bf.prototype.normalx=null;bf.prototype.normaly=null;bf.prototype.absnormalx=null;bf.prototype.absnormaly=null;bf.prototype.origin_invalidate=function(ea){this.originx=ea.x;this.originy=ea.y};bf.prototype.direction_invalidate=function(ea){this.dirx=ea.x;this.diry=ea.y;this.zip_dir=true};bf.prototype.zip_dir=null;bf.prototype.invalidate_dir=function(){this.zip_dir=true};bf.prototype.validate_dir=function(){if(this.zip_dir){this.zip_dir=false;var ec=1/Math.sqrt(this.dirx*this.dirx+this.diry*this.diry);this.dirx*=ec;this.diry*=ec;this.idirx=1/this.dirx;this.idiry=1/this.diry;this.normalx=-this.diry;this.normaly=this.dirx;var ea=this.normalx;this.absnormalx=ea<0?-ea:ea;var eb=this.normaly;this.absnormaly=eb<0?-eb:eb}};bf.prototype.rayAABB=function(){var ed=this.originx;var eb=ed;var eg=this.originy;var ee=eg;if(this.maxdist>=Infinity){if(this.dirx>0){eb=Infinity}else{if(this.dirx<0){eb=-Infinity}}if(this.diry>0){ee=Infinity}else{if(this.diry<0){ee=-Infinity}}}else{eb+=this.maxdist*this.dirx;ee+=this.maxdist*this.diry}if(eb<ed){var ec=ed;ed=eb;eb=ec}if(ee<eg){var ef=eg;eg=ee;ee=ef}var ea;if(bT.zpp_pool==null){ea=new bT()}else{ea=bT.zpp_pool;bT.zpp_pool=ea.next;ea.next=null}ea.minx=ed;ea.miny=eg;ea.maxx=eb;ea.maxy=ee;return ea};bf.prototype.aabbtest=function(ea){var eb=this.normalx*(this.originx-0.5*(ea.minx+ea.maxx))+this.normaly*(this.originy-0.5*(ea.miny+ea.maxy));return(eb<0?-eb:eb)<this.absnormalx*0.5*(ea.maxx-ea.minx)+this.absnormaly*0.5*(ea.maxy-ea.miny)};bf.prototype.aabbsect=function(ek){var ec=this.originx>=ek.minx&&this.originx<=ek.maxx;var eb=this.originy>=ek.miny&&this.originy<=ek.maxy;if(ec&&eb){return 0}else{var eg=-1;while(!(this.dirx>=0&&this.originx>=ek.maxx)){if(this.dirx<=0&&this.originx<=ek.minx){break}if(this.diry>=0&&this.originy>=ek.maxy){break}if(this.diry<=0&&this.originy<=ek.miny){break}if(this.dirx>0){var el=(ek.minx-this.originx)*this.idirx;if(el>=0&&el<=this.maxdist){var eh=this.originy+el*this.diry;if(eh>=ek.miny&&eh<=ek.maxy){eg=el;break}}}else{if(this.dirx<0){var ef=(ek.maxx-this.originx)*this.idirx;if(ef>=0&&ef<=this.maxdist){var ej=this.originy+ef*this.diry;if(ej>=ek.miny&&ej<=ek.maxy){eg=ef;break}}}}if(this.diry>0){var ee=(ek.miny-this.originy)*this.idiry;if(ee>=0&&ee<=this.maxdist){var ei=this.originx+ee*this.dirx;if(ei>=ek.minx&&ei<=ek.maxx){eg=ee;break}}}else{if(this.diry<0){var ed=(ek.maxy-this.originy)*this.idiry;if(ed>=0&&ed<=this.maxdist){var ea=this.originx+ed*this.dirx;if(ea>=ek.minx&&ea<=ek.maxx){eg=ed;break}}}}break}return eg}};bf.prototype.circlesect=function(eZ,em,el){if(eZ.zip_worldCOM){if(eZ.body!=null){eZ.zip_worldCOM=false;if(eZ.zip_localCOM){eZ.zip_localCOM=false;if(eZ.type==1){var eb=eZ.polygon;if(eb.lverts.next.next==null){eb.localCOMx=eb.lverts.next.x;eb.localCOMy=eb.lverts.next.y}else{if(eb.lverts.next.next.next==null){eb.localCOMx=eb.lverts.next.x;eb.localCOMy=eb.lverts.next.y;eb.localCOMx+=eb.lverts.next.next.x;eb.localCOMy+=eb.lverts.next.next.y;eb.localCOMx*=0.5;eb.localCOMy*=0.5}else{eb.localCOMx=0;eb.localCOMy=0;var et=0;var ec=eb.lverts.next;var eQ=ec;ec=ec.next;var eO=ec;ec=ec.next;while(ec!=null){var eM=ec;et+=eO.x*(eM.y-eQ.y);var eq=eM.y*eO.x-eM.x*eO.y;eb.localCOMx+=(eO.x+eM.x)*eq;eb.localCOMy+=(eO.y+eM.y)*eq;eQ=eO;eO=eM;ec=ec.next}ec=eb.lverts.next;var ex=ec;et+=eO.x*(ex.y-eQ.y);var eI=ex.y*eO.x-ex.x*eO.y;eb.localCOMx+=(eO.x+ex.x)*eI;eb.localCOMy+=(eO.y+ex.y)*eI;eQ=eO;ec=ec.next;var ev=ec;et+=ex.x*(ev.y-eQ.y);var eG=ev.y*ex.x-ev.x*ex.y;eb.localCOMx+=(ex.x+ev.x)*eG;eb.localCOMy+=(ex.y+ev.y)*eG;et=1/(3*et);var eS=et;eb.localCOMx*=eS;eb.localCOMy*=eS}}}if(eZ.wrap_localCOM!=null){eZ.wrap_localCOM.zpp_inner.x=eZ.localCOMx;eZ.wrap_localCOM.zpp_inner.y=eZ.localCOMy}}var eR=eZ.body;if(eR.zip_axis){eR.zip_axis=false;eR.axisx=Math.sin(eR.rot);eR.axisy=Math.cos(eR.rot)}eZ.worldCOMx=eZ.body.posx+(eZ.body.axisy*eZ.localCOMx-eZ.body.axisx*eZ.localCOMy);eZ.worldCOMy=eZ.body.posy+(eZ.localCOMx*eZ.body.axisx+eZ.localCOMy*eZ.body.axisy)}}var ee=0;var ed=0;ee=this.originx-eZ.worldCOMx;ed=this.originy-eZ.worldCOMy;var ek=this.dirx*this.dirx+this.diry*this.diry;var ej=2*(ee*this.dirx+ed*this.diry);var ei=ee*ee+ed*ed-eZ.radius*eZ.radius;var ef=ej*ej-4*ek*ei;if(ef==0){var er=-ej/2*ek;if((!em||ei>0)&&er>0&&er<el&&er<=this.maxdist){var eV=0;var eU=0;eV=this.originx;eU=this.originy;eV+=this.dirx*er;eU+=this.diry*er;eV-=eZ.worldCOMx;eU-=eZ.worldCOMy;var eK=1/Math.sqrt(eV*eV+eU*eU);eV*=eK;eU*=eK;if(ei<=0){eV=-eV;eU=-eU}var ep;if(au.poolVec2==null){ep=new r()}else{ep=au.poolVec2;au.poolVec2=ep.zpp_pool;ep.zpp_pool=null}if(ep.zpp_inner==null){var eJ;if(bB.zpp_pool==null){eJ=new bB()}else{eJ=bB.zpp_pool;bB.zpp_pool=eJ.next;eJ.next=null}eJ.weak=false;eJ._immutable=false;eJ.x=eV;eJ.y=eU;ep.zpp_inner=eJ;ep.zpp_inner.outer=ep}else{var eT;var eP=ep.zpp_inner;if(eP._validate!=null){eP._validate()}if(ep.zpp_inner.x==eV){var eN=ep.zpp_inner;if(eN._validate!=null){eN._validate()}eT=ep.zpp_inner.y==eU}else{eT=false}if(!eT){ep.zpp_inner.x=eV;ep.zpp_inner.y=eU;var eL=ep.zpp_inner;if(eL._invalidate!=null){eL._invalidate(eL)}}}ep.zpp_inner.weak=false;return a4.getRay(ep,er,ei<=0,eZ.outer)}else{return null}}else{ef=Math.sqrt(ef);ek=1/(2*ek);var eu=(-ej-ef)*ek;var ea=(-ej+ef)*ek;if(eu>0){if(eu<el&&eu<=this.maxdist){var eo=0;var eh=0;eo=this.originx;eh=this.originy;eo+=this.dirx*eu;eh+=this.diry*eu;eo-=eZ.worldCOMx;eh-=eZ.worldCOMy;var ew=1/Math.sqrt(eo*eo+eh*eh);eo*=ew;eh*=ew;var eF;if(au.poolVec2==null){eF=new r()}else{eF=au.poolVec2;au.poolVec2=eF.zpp_pool;eF.zpp_pool=null}if(eF.zpp_inner==null){var eD;if(bB.zpp_pool==null){eD=new bB()}else{eD=bB.zpp_pool;bB.zpp_pool=eD.next;eD.next=null}eD.weak=false;eD._immutable=false;eD.x=eo;eD.y=eh;eF.zpp_inner=eD;eF.zpp_inner.outer=eF}else{var eY;var eH=eF.zpp_inner;if(eH._validate!=null){eH._validate()}if(eF.zpp_inner.x==eo){var eE=eF.zpp_inner;if(eE._validate!=null){eE._validate()}eY=eF.zpp_inner.y==eh}else{eY=false}if(!eY){eF.zpp_inner.x=eo;eF.zpp_inner.y=eh;var eC=eF.zpp_inner;if(eC._invalidate!=null){eC._invalidate(eC)}}}eF.zpp_inner.weak=false;return a4.getRay(eF,eu,false,eZ.outer)}else{return null}}else{if(ea>0&&em){if(ea<el&&ea<=this.maxdist){var en=0;var eg=0;en=this.originx;eg=this.originy;en+=this.dirx*ea;eg+=this.diry*ea;en-=eZ.worldCOMx;eg-=eZ.worldCOMy;var es=1/Math.sqrt(en*en+eg*eg);en*=es;eg*=es;en=-en;eg=-eg;var eB;if(au.poolVec2==null){eB=new r()}else{eB=au.poolVec2;au.poolVec2=eB.zpp_pool;eB.zpp_pool=null}if(eB.zpp_inner==null){var ez;if(bB.zpp_pool==null){ez=new bB()}else{ez=bB.zpp_pool;bB.zpp_pool=ez.next;ez.next=null}ez.weak=false;ez._immutable=false;ez.x=en;ez.y=eg;eB.zpp_inner=ez;eB.zpp_inner.outer=eB}else{var eX;var eA=eB.zpp_inner;if(eA._validate!=null){eA._validate()}if(eB.zpp_inner.x==en){var ey=eB.zpp_inner;if(ey._validate!=null){ey._validate()}eX=eB.zpp_inner.y==eg}else{eX=false}if(!eX){eB.zpp_inner.x=en;eB.zpp_inner.y=eg;var eW=eB.zpp_inner;if(eW._invalidate!=null){eW._invalidate(eW)}}}eB.zpp_inner.weak=false;return a4.getRay(eB,ea,true,eZ.outer)}else{return null}}else{return null}}}};bf.prototype.circlesect2=function(fh,ew,ev){if(fh.zip_worldCOM){if(fh.body!=null){fh.zip_worldCOM=false;if(fh.zip_localCOM){fh.zip_localCOM=false;if(fh.type==1){var ef=fh.polygon;if(ef.lverts.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y}else{if(ef.lverts.next.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y;ef.localCOMx+=ef.lverts.next.next.x;ef.localCOMy+=ef.lverts.next.next.y;ef.localCOMx*=0.5;ef.localCOMy*=0.5}else{ef.localCOMx=0;ef.localCOMy=0;var eF=0;var eh=ef.lverts.next;var e5=eh;eh=eh.next;var e2=eh;eh=eh.next;while(eh!=null){var e0=eh;eF+=e2.x*(e0.y-e5.y);var eA=e0.y*e2.x-e0.x*e2.y;ef.localCOMx+=(e2.x+e0.x)*eA;ef.localCOMy+=(e2.y+e0.y)*eA;e5=e2;e2=e0;eh=eh.next}eh=ef.lverts.next;var eI=eh;eF+=e2.x*(eI.y-e5.y);var eW=eI.y*e2.x-eI.x*e2.y;ef.localCOMx+=(e2.x+eI.x)*eW;ef.localCOMy+=(e2.y+eI.y)*eW;e5=e2;eh=eh.next;var eG=eh;eF+=eI.x*(eG.y-e5.y);var eU=eG.y*eI.x-eG.x*eI.y;ef.localCOMx+=(eI.x+eG.x)*eU;ef.localCOMy+=(eI.y+eG.y)*eU;eF=1/(3*eF);var e7=eF;ef.localCOMx*=e7;ef.localCOMy*=e7}}}if(fh.wrap_localCOM!=null){fh.wrap_localCOM.zpp_inner.x=fh.localCOMx;fh.wrap_localCOM.zpp_inner.y=fh.localCOMy}}var e6=fh.body;if(e6.zip_axis){e6.zip_axis=false;e6.axisx=Math.sin(e6.rot);e6.axisy=Math.cos(e6.rot)}fh.worldCOMx=fh.body.posx+(fh.body.axisy*fh.localCOMx-fh.body.axisx*fh.localCOMy);fh.worldCOMy=fh.body.posy+(fh.localCOMx*fh.body.axisx+fh.localCOMy*fh.body.axisy)}}var ej=0;var ei=0;ej=this.originx-fh.worldCOMx;ei=this.originy-fh.worldCOMy;var er=this.dirx*this.dirx+this.diry*this.diry;var eq=2*(ej*this.dirx+ei*this.diry);var eo=ej*ej+ei*ei-fh.radius*fh.radius;var ek=eq*eq-4*er*eo;if(ek==0){var eC=-eq/2*er;if((!ew||eo>0)&&eC>0&&eC<=this.maxdist){var fa=0;var e9=0;fa=this.originx;e9=this.originy;fa+=this.dirx*eC;e9+=this.diry*eC;fa-=fh.worldCOMx;e9-=fh.worldCOMy;var eY=1/Math.sqrt(fa*fa+e9*e9);fa*=eY;e9*=eY;if(eo<=0){fa=-fa;e9=-e9}var ez;if(au.poolVec2==null){ez=new r()}else{ez=au.poolVec2;au.poolVec2=ez.zpp_pool;ez.zpp_pool=null}if(ez.zpp_inner==null){var eX;if(bB.zpp_pool==null){eX=new bB()}else{eX=bB.zpp_pool;bB.zpp_pool=eX.next;eX.next=null}eX.weak=false;eX._immutable=false;eX.x=fa;eX.y=e9;ez.zpp_inner=eX;ez.zpp_inner.outer=ez}else{var e8;var e3=ez.zpp_inner;if(e3._validate!=null){e3._validate()}if(ez.zpp_inner.x==fa){var e1=ez.zpp_inner;if(e1._validate!=null){e1._validate()}e8=ez.zpp_inner.y==e9}else{e8=false}if(!e8){ez.zpp_inner.x=fa;ez.zpp_inner.y=e9;var eZ=ez.zpp_inner;if(eZ._invalidate!=null){eZ._invalidate(eZ)}}}ez.zpp_inner.weak=false;var eB=a4.getRay(ez,eC,eo<=0,fh.outer);var e4=null;var eu=ev.zpp_inner.inner.head;while(eu!=null){if(eB.zpp_inner.toiDistance<eu.elt.zpp_inner.toiDistance){break}e4=eu;eu=eu.next}var eV=ev.zpp_inner.inner;var eT;if(dp.zpp_pool==null){eT=new dp()}else{eT=dp.zpp_pool;dp.zpp_pool=eT.next;eT.next=null}eT.elt=eB;var eg=eT;if(e4==null){eg.next=eV.head;eV.head=eg}else{eg.next=e4.next;e4.next=eg}eV.pushmod=eV.modified=true;eV.length++}}else{ek=Math.sqrt(ek);er=1/(2*er);var eE=(-eq-ek)*er;var ee=(-eq+ek)*er;if(eE>0&&eE<=this.maxdist){var ey=0;var em=0;ey=this.originx;em=this.originy;ey+=this.dirx*eE;em+=this.diry*eE;ey-=fh.worldCOMx;em-=fh.worldCOMy;var eH=1/Math.sqrt(ey*ey+em*em);ey*=eH;em*=eH;var eR;if(au.poolVec2==null){eR=new r()}else{eR=au.poolVec2;au.poolVec2=eR.zpp_pool;eR.zpp_pool=null}if(eR.zpp_inner==null){var eP;if(bB.zpp_pool==null){eP=new bB()}else{eP=bB.zpp_pool;bB.zpp_pool=eP.next;eP.next=null}eP.weak=false;eP._immutable=false;eP.x=ey;eP.y=em;eR.zpp_inner=eP;eR.zpp_inner.outer=eR}else{var fg;var eS=eR.zpp_inner;if(eS._validate!=null){eS._validate()}if(eR.zpp_inner.x==ey){var eQ=eR.zpp_inner;if(eQ._validate!=null){eQ._validate()}fg=eR.zpp_inner.y==em}else{fg=false}if(!fg){eR.zpp_inner.x=ey;eR.zpp_inner.y=em;var eO=eR.zpp_inner;if(eO._invalidate!=null){eO._invalidate(eO)}}}eR.zpp_inner.weak=false;var ed=a4.getRay(eR,eE,false,fh.outer);var ep=null;var et=ev.zpp_inner.inner.head;while(et!=null){if(ed.zpp_inner.toiDistance<et.elt.zpp_inner.toiDistance){break}ep=et;et=et.next}var eN=ev.zpp_inner.inner;var eM;if(dp.zpp_pool==null){eM=new dp()}else{eM=dp.zpp_pool;dp.zpp_pool=eM.next;eM.next=null}eM.elt=ed;var eb=eM;if(ep==null){eb.next=eN.head;eN.head=eb}else{eb.next=ep.next;ep.next=eb}eN.pushmod=eN.modified=true;eN.length++}if(ee>0&&ee<=this.maxdist&&ew){var ex=0;var el=0;ex=this.originx;el=this.originy;ex+=this.dirx*ee;el+=this.diry*ee;ex-=fh.worldCOMx;el-=fh.worldCOMy;var eD=1/Math.sqrt(ex*ex+el*el);ex*=eD;el*=eD;ex=-ex;el=-el;var eL;if(au.poolVec2==null){eL=new r()}else{eL=au.poolVec2;au.poolVec2=eL.zpp_pool;eL.zpp_pool=null}if(eL.zpp_inner==null){var eK;if(bB.zpp_pool==null){eK=new bB()}else{eK=bB.zpp_pool;bB.zpp_pool=eK.next;eK.next=null}eK.weak=false;eK._immutable=false;eK.x=ex;eK.y=el;eL.zpp_inner=eK;eL.zpp_inner.outer=eL}else{var ff;var fe=eL.zpp_inner;if(fe._validate!=null){fe._validate()}if(eL.zpp_inner.x==ex){var fd=eL.zpp_inner;if(fd._validate!=null){fd._validate()}ff=eL.zpp_inner.y==el}else{ff=false}if(!ff){eL.zpp_inner.x=ex;eL.zpp_inner.y=el;var fc=eL.zpp_inner;if(fc._invalidate!=null){fc._invalidate(fc)}}}eL.zpp_inner.weak=false;var ec=a4.getRay(eL,ee,true,fh.outer);var en=null;var es=ev.zpp_inner.inner.head;while(es!=null){if(ec.zpp_inner.toiDistance<es.elt.zpp_inner.toiDistance){break}en=es;es=es.next}var fb=ev.zpp_inner.inner;var eJ;if(dp.zpp_pool==null){eJ=new dp()}else{eJ=dp.zpp_pool;dp.zpp_pool=eJ.next;eJ.next=null}eJ.elt=ec;var ea=eJ;if(en==null){ea.next=fb.head;fb.head=ea}else{ea.next=en.next;en.next=ea}fb.pushmod=fb.modified=true;fb.length++}}};bf.prototype.polysect=function(eC,eo,en){var eJ=en;var ef=null;var eH=eC.edges.head;var eA=eC.gverts.next;var ex=eA;var ez=eA.next;while(ez!=null){var ev=ez;var eG=eH.elt;if(eo||eG.gnormx*this.dirx+eG.gnormy*this.diry<0){var ej=0;var eh=0;ej=ev.x-ex.x;eh=ev.y-ex.y;var eg=0;var ee=0;eg=ex.x-this.originx;ee=ex.y-this.originy;var el=eh*this.dirx-ej*this.diry;if(el*el>P.epsilon){el=1/el;var ek=(eh*eg-ej*ee)*el;if(ek>0&&ek<eJ&&ek<=this.maxdist){var ed=(this.diry*eg-this.dirx*ee)*el;if(ed>-P.epsilon&&ed<1+P.epsilon){eJ=ek;ef=eH.elt}}}}eH=eH.next;eA=ez;ex=ev;ez=ez.next}while(true){ez=eC.gverts.next;var eK=ez;var ep=eH.elt;if(eo||ep.gnormx*this.dirx+ep.gnormy*this.diry<0){var es=0;var em=0;es=eK.x-ex.x;em=eK.y-ex.y;var ea=0;var et=0;ea=ex.x-this.originx;et=ex.y-this.originy;var eI=em*this.dirx-es*this.diry;if(eI*eI>P.epsilon){eI=1/eI;var er=(em*ea-es*et)*eI;if(er>0&&er<eJ&&er<=this.maxdist){var eb=(this.diry*ea-this.dirx*et)*eI;if(eb>-P.epsilon&&eb<1+P.epsilon){eJ=er;ef=eH.elt}}}}eH=eH.next;break}if(ef!=null){var eF=0;var eD=0;eF=ef.gnormx;eD=ef.gnormy;var eE=eF*this.dirx+eD*this.diry>0;if(eE){eF=-eF;eD=-eD}var eq;if(au.poolVec2==null){eq=new r()}else{eq=au.poolVec2;au.poolVec2=eq.zpp_pool;eq.zpp_pool=null}if(eq.zpp_inner==null){var eu;if(bB.zpp_pool==null){eu=new bB()}else{eu=bB.zpp_pool;bB.zpp_pool=eu.next;eu.next=null}eu.weak=false;eu._immutable=false;eu.x=eF;eu.y=eD;eq.zpp_inner=eu;eq.zpp_inner.outer=eq}else{var eB;var ec=eq.zpp_inner;if(ec._validate!=null){ec._validate()}if(eq.zpp_inner.x==eF){var ey=eq.zpp_inner;if(ey._validate!=null){ey._validate()}eB=eq.zpp_inner.y==eD}else{eB=false}if(!eB){eq.zpp_inner.x=eF;eq.zpp_inner.y=eD;var ew=eq.zpp_inner;if(ew._invalidate!=null){ew._invalidate(ew)}}}eq.zpp_inner.weak=false;return a4.getRay(eq,eJ,eE,eC.outer)}else{return null}};bf.prototype.polysect2=function(eY,ev,et){var e7=Infinity;var eu=-1;var ej=null;var ey=null;var e5=eY.edges.head;var eV=eY.gverts.next;var eS=eV;var eU=eV.next;while(eU!=null){var eP=eU;var e4=e5.elt;if(ev||e4.gnormx*this.dirx+e4.gnormy*this.diry<0){var em=0;var el=0;em=eP.x-eS.x;el=eP.y-eS.y;var ek=0;var eh=0;ek=eS.x-this.originx;eh=eS.y-this.originy;var eq=el*this.dirx-em*this.diry;if(eq*eq>P.epsilon){eq=1/eq;var eo=(el*ek-em*eh)*eq;if(eo>0&&eo<=this.maxdist&&(eo<e7||eo>eu)){var ee=(this.diry*ek-this.dirx*eh)*eq;if(ee>-P.epsilon&&ee<1+P.epsilon){if(eo<e7){e7=eo;ej=e5.elt}if(eo>eu){eu=eo;ey=e5.elt}}}}}e5=e5.next;eV=eU;eS=eP;eU=eU.next}while(true){eU=eY.gverts.next;var e8=eU;var ew=e5.elt;if(ev||ew.gnormx*this.dirx+ew.gnormy*this.diry<0){var eB=0;var er=0;eB=e8.x-eS.x;er=e8.y-eS.y;var ea=0;var eE=0;ea=eS.x-this.originx;eE=eS.y-this.originy;var e6=er*this.dirx-eB*this.diry;if(e6*e6>P.epsilon){e6=1/e6;var eA=(er*ea-eB*eE)*e6;if(eA>0&&eA<=this.maxdist&&(eA<e7||eA>eu)){var ec=(this.diry*ea-this.dirx*eE)*e6;if(ec>-P.epsilon&&ec<1+P.epsilon){if(eA<e7){e7=eA;ej=e5.elt}if(eA>eu){eu=eA;ey=e5.elt}}}}}e5=e5.next;break}if(ej!=null){var e2=0;var eZ=0;e2=ej.gnormx;eZ=ej.gnormy;var e0=e2*this.dirx+eZ*this.diry>0;if(e0){e2=-e2;eZ=-eZ}var ez;if(au.poolVec2==null){ez=new r()}else{ez=au.poolVec2;au.poolVec2=ez.zpp_pool;ez.zpp_pool=null}if(ez.zpp_inner==null){var eM;if(bB.zpp_pool==null){eM=new bB()}else{eM=bB.zpp_pool;bB.zpp_pool=eM.next;eM.next=null}eM.weak=false;eM._immutable=false;eM.x=e2;eM.y=eZ;ez.zpp_inner=eM;ez.zpp_inner.outer=ez}else{var eX;var ed=ez.zpp_inner;if(ed._validate!=null){ed._validate()}if(ez.zpp_inner.x==e2){var eT=ez.zpp_inner;if(eT._validate!=null){eT._validate()}eX=ez.zpp_inner.y==eZ}else{eX=false}if(!eX){ez.zpp_inner.x=e2;ez.zpp_inner.y=eZ;var eR=ez.zpp_inner;if(eR._invalidate!=null){eR._invalidate(eR)}}}ez.zpp_inner.weak=false;var eK=a4.getRay(ez,e7,e0,eY.outer);var eQ=null;var eg=et.zpp_inner.inner.head;while(eg!=null){if(eK.zpp_inner.toiDistance<eg.elt.zpp_inner.toiDistance){break}eQ=eg;eg=eg.next}var eO=et.zpp_inner.inner;var eI;if(dp.zpp_pool==null){eI=new dp()}else{eI=dp.zpp_pool;dp.zpp_pool=eI.next;eI.next=null}eI.elt=eK;var ef=eI;if(eQ==null){ef.next=eO.head;eO.head=ef}else{ef.next=eQ.next;eQ.next=ef}eO.pushmod=eO.modified=true;eO.length++}if(ey!=null&&ej!=ey){var ex=0;var en=0;ex=ey.gnormx;en=ey.gnormy;var eW=ex*this.dirx+en*this.diry>0;if(eW){ex=-ex;en=-en}var eG;if(au.poolVec2==null){eG=new r()}else{eG=au.poolVec2;au.poolVec2=eG.zpp_pool;eG.zpp_pool=null}if(eG.zpp_inner==null){var eF;if(bB.zpp_pool==null){eF=new bB()}else{eF=bB.zpp_pool;bB.zpp_pool=eF.next;eF.next=null}eF.weak=false;eF._immutable=false;eF.x=ex;eF.y=en;eG.zpp_inner=eF;eG.zpp_inner.outer=eG}else{var e3;var eN=eG.zpp_inner;if(eN._validate!=null){eN._validate()}if(eG.zpp_inner.x==ex){var eL=eG.zpp_inner;if(eL._validate!=null){eL._validate()}e3=eG.zpp_inner.y==en}else{e3=false}if(!e3){eG.zpp_inner.x=ex;eG.zpp_inner.y=en;var eJ=eG.zpp_inner;if(eJ._invalidate!=null){eJ._invalidate(eJ)}}}eG.zpp_inner.weak=false;var eD=a4.getRay(eG,eu,eW,eY.outer);var ep=null;var es=et.zpp_inner.inner.head;while(es!=null){if(eD.zpp_inner.toiDistance<es.elt.zpp_inner.toiDistance){break}ep=es;es=es.next}var eH=et.zpp_inner.inner;var eC;if(dp.zpp_pool==null){eC=new dp()}else{eC=dp.zpp_pool;dp.zpp_pool=eC.next;eC.next=null}eC.elt=eD;var eb=eC;if(ep==null){eb.next=eH.head;eH.head=eb}else{eb.next=ep.next;ep.next=eb}eH.pushmod=eH.modified=true;eH.length++}};bf.prototype.__class__=bf;var dG=zpp_nape.geom.ZPP_SimpleVert=function(){this.node=null;this.next=null;this.id=0;this.links=null;this.y=0;this.x=0;this.forced=false;this.id=cr.ZPP_SimpleVert();if(bX.zpp_pool==null){this.links=new bX()}else{this.links=bX.zpp_pool;bX.zpp_pool=this.links.next;this.links.next=null}this.links.lt=dG.less_xy};dG.__name__=["zpp_nape","geom","ZPP_SimpleVert"];dG.less_xy=function(eb,ea){if(!(eb.y<ea.y)){if(eb.y==ea.y){return eb.x<ea.x}else{return false}}else{return true}};dG.swap_nodes=function(ec,eb){var ea=ec.node;ec.node=eb.node;eb.node=ea};dG.get=function(ea,ec){var eb;if(dG.zpp_pool==null){eb=new dG()}else{eb=dG.zpp_pool;dG.zpp_pool=eb.next;eb.next=null}eb.x=ea;eb.y=ec;return eb};dG.prototype.forced=null;dG.prototype.x=null;dG.prototype.y=null;dG.prototype.links=null;dG.prototype.id=null;dG.prototype.next=null;dG.prototype.node=null;dG.prototype.free=function(){this.links.clear();this.node=null;this.forced=false};dG.prototype.alloc=function(){};dG.prototype.__class__=dG;var co=zpp_nape.geom.ZPP_SimpleSeg=function(){this.node=null;this.prev=null;this.next=null;this.id=0;this.vertices=null;this.right=null;this.left=null;this.id=cr.ZPP_SimpleSeg();if(bX.zpp_pool==null){this.vertices=new bX()}else{this.vertices=bX.zpp_pool;bX.zpp_pool=this.vertices.next;this.vertices.next=null}this.vertices.lt=dX(this,this.less_xy)};co.__name__=["zpp_nape","geom","ZPP_SimpleSeg"];co.get=function(ec,eb){var ea;if(co.zpp_pool==null){ea=new co()}else{ea=co.zpp_pool;co.zpp_pool=ea.next;ea.next=null}ea.left=ec;ea.right=eb;ea.vertices.insert(ec);ea.vertices.insert(eb);return ea};co.prototype.left=null;co.prototype.right=null;co.prototype.vertices=null;co.prototype.id=null;co.prototype.next=null;co.prototype.free=function(){this.left=this.right=null;this.prev=null;this.node=null;this.vertices.clear()};co.prototype.alloc=function(){};co.prototype.prev=null;co.prototype.node=null;co.prototype.less_xy=function(eb,ea){if(!(eb.x<ea.x)){if(eb.x==ea.x){return eb.y<ea.y}else{return false}}else{return true}};co.prototype.__class__=co;var dI=zpp_nape.geom.ZPP_SimpleEvent=function(){this.next=null;this.node=null;this.segment2=null;this.segment=null;this.vertex=null;this.type=0};dI.__name__=["zpp_nape","geom","ZPP_SimpleEvent"];dI.swap_nodes=function(eb,ea){var ec=eb.node;eb.node=ea.node;ea.node=ec};dI.less_xy=function(eb,ea){if(eb.vertex.x<ea.vertex.x){return true}else{if(eb.vertex.x>ea.vertex.x){return false}else{if(eb.vertex.y<ea.vertex.y){return true}else{if(eb.vertex.y>ea.vertex.y){return false}else{return eb.type<ea.type}}}}};dI.get=function(ea){var eb;if(dI.zpp_pool==null){eb=new dI()}else{eb=dI.zpp_pool;dI.zpp_pool=eb.next;eb.next=null}eb.vertex=ea;return eb};dI.prototype.type=null;dI.prototype.vertex=null;dI.prototype.segment=null;dI.prototype.segment2=null;dI.prototype.node=null;dI.prototype.next=null;dI.prototype.free=function(){this.vertex=null;this.segment=this.segment2=null;this.node=null};dI.prototype.alloc=function(){};dI.prototype.__class__=dI;var bz=zpp_nape.geom.ZPP_SimpleSweep=function(){this.tree=null;this.sweepx=0;if(bD.zpp_pool==null){this.tree=new bD()}else{this.tree=bD.zpp_pool;bD.zpp_pool=this.tree.next;this.tree.next=null}this.tree.lt=dX(this,this.edge_lt);this.tree.swapped=dX(this,this.swap_nodes)};bz.__name__=["zpp_nape","geom","ZPP_SimpleSweep"];bz.prototype.sweepx=null;bz.prototype.tree=null;bz.prototype.swap_nodes=function(ec,eb){var ea=ec.node;ec.node=eb.node;eb.node=ea};bz.prototype.edge_lt=function(ee,eb){var ec=0;var ea=0;var ei=0;var eh=0;var eg;if(ee.left==eb.left&&ee.right==eb.right){return false}else{if(ee.left==eb.right){if(ee.left.x==ee.right.x){if(ee.left.y<ee.right.y){return ee.left.y>eb.left.y}else{return ee.right.y>eb.left.y}}else{eg=ee.right.x<ee.left.x;ec=ee.right.x-ee.left.x;ea=ee.right.y-ee.left.y;ei=eb.left.x-ee.left.x;eh=eb.left.y-ee.left.y;return(eg?ea*ei-ec*eh:eh*ec-ei*ea)<0}}else{if(ee.right==eb.left){var ef;if(eb.left.x==eb.right.x){if(eb.left.y<eb.right.y){ef=eb.left.y>ee.left.y}else{ef=eb.right.y>ee.left.y}}else{eg=eb.right.x<eb.left.x;ec=eb.right.x-eb.left.x;ea=eb.right.y-eb.left.y;ei=ee.left.x-eb.left.x;eh=ee.left.y-eb.left.y;ef=(eg?ea*ei-ec*eh:eh*ec-ei*ea)<0}return !ef}else{if(ee.left==eb.left){if(ee.left.x==ee.right.x){if(ee.left.y<ee.right.y){return ee.left.y>eb.right.y}else{return ee.right.y>eb.right.y}}else{eg=ee.right.x<ee.left.x;ec=ee.right.x-ee.left.x;ea=ee.right.y-ee.left.y;ei=eb.right.x-ee.left.x;eh=eb.right.y-ee.left.y;return(eg?ea*ei-ec*eh:eh*ec-ei*ea)<0}}else{if(ee.right==eb.right){if(ee.left.x==ee.right.x){if(ee.left.y<ee.right.y){return ee.left.y>eb.left.y}else{return ee.right.y>eb.left.y}}else{eg=ee.right.x<ee.left.x;ec=ee.right.x-ee.left.x;ea=ee.right.y-ee.left.y;ei=eb.left.x-ee.left.x;eh=eb.left.y-ee.left.y;return(eg?ea*ei-ec*eh:eh*ec-ei*ea)<0}}}}}}if(ee.left.x==ee.right.x){if(eb.left.x==eb.right.x){return(ee.left.y<ee.right.y?ee.right:ee.left).y>(eb.left.y<eb.right.y?eb.right:eb.left).y}else{eg=eb.right.x<eb.left.x;ec=eb.right.x-eb.left.x;ea=eb.right.y-eb.left.y;ei=ee.left.x-eb.left.x;eh=ee.left.y-eb.left.y;var ed=eg?ea*ei-ec*eh:eh*ec-ei*ea;eg=eb.right.x<eb.left.x;ec=eb.right.x-eb.left.x;ea=eb.right.y-eb.left.y;ei=ee.right.x-eb.left.x;eh=ee.right.y-eb.left.y;if(ed*(eg?ea*ei-ec*eh:eh*ec-ei*ea)>=0){return ed>=0}else{return this.sweepx>=ee.left.x}}}else{if(eb.left.x==eb.right.x){eg=ee.right.x<ee.left.x;ec=ee.right.x-ee.left.x;ea=ee.right.y-ee.left.y;ei=eb.left.x-ee.left.x;eh=eb.left.y-ee.left.y;var ek=eg?ea*ei-ec*eh:eh*ec-ei*ea;eg=ee.right.x<ee.left.x;ec=ee.right.x-ee.left.x;ea=ee.right.y-ee.left.y;ei=eb.right.x-ee.left.x;eh=eb.right.y-ee.left.y;if(ek*(eg?ea*ei-ec*eh:eh*ec-ei*ea)>=0){return ek<0}else{return this.sweepx<eb.left.x}}else{eg=ee.right.x<ee.left.x;ec=ee.right.x-ee.left.x;ea=ee.right.y-ee.left.y;ei=eb.left.x-ee.left.x;eh=eb.left.y-ee.left.y;var ej=(eg?ea*ei-ec*eh:eh*ec-ei*ea)<0;eg=ee.right.x<ee.left.x;ec=ee.right.x-ee.left.x;ea=ee.right.y-ee.left.y;ei=eb.right.x-ee.left.x;eh=eb.right.y-ee.left.y;if(ej==(eg?ea*ei-ec*eh:eh*ec-ei*ea)<0){return ej}else{eg=eb.right.x<eb.left.x;ec=eb.right.x-eb.left.x;ea=eb.right.y-eb.left.y;ei=ee.left.x-eb.left.x;eh=ee.left.y-eb.left.y;var el=(eg?ea*ei-ec*eh:eh*ec-ei*ea)>=0;eg=eb.right.x<eb.left.x;ec=eb.right.x-eb.left.x;ea=eb.right.y-eb.left.y;ei=ee.right.x-eb.left.x;eh=ee.right.y-eb.left.y;if(el==(eg?ea*ei-ec*eh:eh*ec-ei*ea)>=0){return el}return(this.sweepx-ee.left.x)/(ee.right.x-ee.left.x)*(ee.right.y-ee.left.y)+ee.left.y>(this.sweepx-eb.left.x)/(eb.right.x-eb.left.x)*(eb.right.y-eb.left.y)+eb.left.y}}}};bz.prototype.clear=function(){this.tree.clear()};bz.prototype.add=function(ec){ec.node=this.tree.insert(ec);var ea=this.tree.successor_node(ec.node);var eb=this.tree.predecessor_node(ec.node);if(ea!=null){ec.next=ea.data;ea.data.prev=ec}if(eb!=null){ec.prev=eb.data;eb.data.next=ec}return ec};bz.prototype.remove=function(ec){var ea=this.tree.successor_node(ec.node);var eb=this.tree.predecessor_node(ec.node);if(ea!=null){ea.data.prev=ec.prev}if(eb!=null){eb.data.next=ec.next}this.tree.remove_node(ec.node);ec.node=null};bz.prototype.intersect=function(ee,ed){if(ee==null||ed==null){return false}else{if(ee.left==ed.left||ee.left==ed.right||ee.right==ed.left||ee.right==ed.right){return false}else{var ea=(ed.left.x-ee.left.x)*(ee.right.y-ee.left.y)-(ee.right.x-ee.left.x)*(ed.left.y-ee.left.y);var eb=(ed.right.x-ee.left.x)*(ee.right.y-ee.left.y)-(ee.right.x-ee.left.x)*(ed.right.y-ee.left.y);if(ea*eb>0){return false}else{var ec=(ee.left.x-ed.left.x)*(ed.right.y-ed.left.y)-(ed.right.x-ed.left.x)*(ee.left.y-ed.left.y);var ef=(ee.right.x-ed.left.x)*(ed.right.y-ed.left.y)-(ed.right.x-ed.left.x)*(ee.right.y-ed.left.y);if(ec*ef>0){return false}else{if(ea*eb>=0&&ec*ef>=0){return true}else{return true}}}}}};bz.prototype.intersection=function(ed,eb){if(ed==null||eb==null){return null}else{if(ed.left==eb.left||ed.left==eb.right||ed.right==eb.left||ed.right==eb.right){return null}else{var ec=0;var ea=0;ec=ed.right.x-ed.left.x;ea=ed.right.y-ed.left.y;var en=0;var ek=0;en=eb.right.x-eb.left.x;ek=eb.right.y-eb.left.y;var eh=ek*ec-en*ea;if(eh==0){return null}eh=1/eh;var ef=0;var ee=0;ef=eb.left.x-ed.left.x;ee=eb.left.y-ed.left.y;var ep=(ek*ef-en*ee)*eh;if(ep<0||ep>1){return null}var eq=(ea*ef-ec*ee)*eh;if(eq<0||eq>1){return null}var eg;if(eq==0||eq==1||ep==0||ep==1){if(eq==0){eg=eb.left}else{if(eq==1){eg=eb.right}else{if(ep==0){eg=ed.left}else{eg=ed.right}}}}else{var eo=0.5*(ed.left.x+ec*ep+eb.left.x+en*eq);var em=0.5*(ed.left.y+ea*ep+eb.left.y+ek*eq);var ei;if(dG.zpp_pool==null){ei=new dG()}else{ei=dG.zpp_pool;dG.zpp_pool=ei.next;ei.next=null}ei.x=eo;ei.y=em;eg=ei}var el;if(dI.zpp_pool==null){el=new dI()}else{el=dI.zpp_pool;dI.zpp_pool=el.next;el.next=null}el.vertex=eg;var ej=el;ej.type=0;ej.segment=ed;ej.segment2=eb;return ej}}};bz.prototype.__class__=bz;var bv=zpp_nape.geom.ZPP_Simple=function(){};bv.__name__=["zpp_nape","geom","ZPP_Simple"];bv.decompose=function(eO,e9){if(bv.sweep==null){bv.sweep=new bz();bv.inthash=new bK()}if(bv.vertices==null){if(bX.zpp_pool==null){bv.vertices=new bX()}else{bv.vertices=bX.zpp_pool;bX.zpp_pool=bv.vertices.next;bv.vertices.next=null}bv.vertices.lt=dG.less_xy;bv.vertices.swapped=dG.swap_nodes}if(bv.queue==null){if(bl.zpp_pool==null){bv.queue=new bl()}else{bv.queue=bl.zpp_pool;bl.zpp_pool=bv.queue.next;bv.queue.next=null}bv.queue.lt=dI.less_xy;bv.queue.swapped=dI.swap_nodes}var fr=null;var fh=null;if(eO!=null){var eG=eO;while(true){var e8=eG;var e7=e8.x;var e5=e8.y;var fd;if(dG.zpp_pool==null){fd=new dG()}else{fd=dG.zpp_pool;dG.zpp_pool=fd.next;fd.next=null}fd.x=e7;fd.y=e5;var f9=fd;var eY=bv.vertices.parent;while(eY!=null){if(bv.vertices.lt(f9,eY.data)){eY=eY.prev}else{if(bv.vertices.lt(eY.data,f9)){eY=eY.next}else{break}}}var eF=eY;if(eF!=null){var fc=f9;fc.links.clear();fc.node=null;fc.forced=false;fc.next=dG.zpp_pool;dG.zpp_pool=fc;f9=eF.data}else{f9.node=bv.vertices.insert(f9)}if(fh!=null){var f5;if(dI.zpp_pool==null){f5=new dI()}else{f5=dI.zpp_pool;dI.zpp_pool=f5.next;f5.next=null}f5.vertex=fh;var e4=f5;var f3;if(dI.zpp_pool==null){f3=new dI()}else{f3=dI.zpp_pool;dI.zpp_pool=f3.next;f3.next=null}f3.vertex=f9;var e3=f3;var fi;if(dI.less_xy(e4,e3)){e4.type=1;e3.type=2;fi=co.get(fh,f9)}else{e4.type=2;e3.type=1;fi=co.get(f9,fh)}e4.segment=e3.segment=fi;bv.queue.insert(e4);bv.queue.insert(e3);fh.links.insert(f9);f9.links.insert(fh)}fh=f9;if(fr==null){fr=f9}eG=eG.next;if(!(eG!=eO)){break}}}var f1;if(dI.zpp_pool==null){f1=new dI()}else{f1=dI.zpp_pool;dI.zpp_pool=f1.next;f1.next=null}f1.vertex=fh;var fH=f1;var fY;if(dI.zpp_pool==null){fY=new dI()}else{fY=dI.zpp_pool;dI.zpp_pool=fY.next;fY.next=null}fY.vertex=fr;var fj=fY;var gb;if(dI.less_xy(fH,fj)){fH.type=1;fj.type=2;gb=co.get(fh,fr)}else{fH.type=2;fj.type=1;gb=co.get(fr,fh)}fH.segment=fj.segment=gb;bv.queue.insert(fH);bv.queue.insert(fj);fh.links.insert(fr);fr.links.insert(fh);if(bv.ints==null){if(bl.zpp_pool==null){bv.ints=new bl()}else{bv.ints=bl.zpp_pool;bl.zpp_pool=bv.ints.next;bv.ints.next=null}bv.ints.lt=dI.less_xy}while(!bv.queue.empty()){var fl=bv.queue.pop_front();bv.sweep.sweepx=fl.vertex.x;if(fl.type==1){var fb=fl.segment;bv.sweep.add(fb);if(fb.next!=null&&fb!=null&&!(fb.next.id<fb.id?bv.inthash.has(fb.next.id,fb.id):bv.inthash.has(fb.id,fb.next.id))){var ga=bv.sweep.intersection(fb.next,fb);if(ga!=null){if(ga.vertex.x>=bv.sweep.sweepx){var et=bv.queue.parent;while(et!=null){if(bv.queue.lt(ga,et.data)){et=et.prev}else{if(bv.queue.lt(et.data,ga)){et=et.next}else{break}}}if(et==null){var es=bv.ints.parent;while(es!=null){if(bv.ints.lt(ga,es.data)){es=es.prev}else{if(bv.ints.lt(es.data,ga)){es=es.next}else{break}}}var fC=es;if(fC!=null){var f6=ga.vertex;f6.links.clear();f6.node=null;f6.forced=false;f6.next=dG.zpp_pool;dG.zpp_pool=f6;ga.vertex=fC.data.vertex;fC.data=ga;bv.queue.insert(ga)}else{bv.queue.insert(ga);bv.ints.insert(ga)}if(fb.next.id<fb.id){var ff=fb.next.id;var eE=fb.id;var fV;if(ca.zpp_pool==null){fV=new ca()}else{fV=ca.zpp_pool;ca.zpp_pool=fV.next;fV.next=null}fV.id=ff;fV.di=eE;var fS=fV;fS.value=true;bv.inthash.add(fS)}else{var eD=fb.id;var fD=fb.next.id;var fP;if(ca.zpp_pool==null){fP=new ca()}else{fP=ca.zpp_pool;ca.zpp_pool=fP.next;fP.next=null}fP.id=eD;fP.di=fD;var fN=fP;fN.value=true;bv.inthash.add(fN)}}else{var f4=ga.vertex;f4.links.clear();f4.node=null;f4.forced=false;f4.next=dG.zpp_pool;dG.zpp_pool=f4;ga.vertex=null;ga.segment=ga.segment2=null;ga.node=null;ga.next=dI.zpp_pool;dI.zpp_pool=ga}}else{var f2=ga.vertex;f2.links.clear();f2.node=null;f2.forced=false;f2.next=dG.zpp_pool;dG.zpp_pool=f2;ga.vertex=null;ga.segment=ga.segment2=null;ga.node=null;ga.next=dI.zpp_pool;dI.zpp_pool=ga}}}if(fb!=null&&fb.prev!=null&&!(fb.id<fb.prev.id?bv.inthash.has(fb.id,fb.prev.id):bv.inthash.has(fb.prev.id,fb.id))){var fZ=bv.sweep.intersection(fb,fb.prev);if(fZ!=null){if(fZ.vertex.x>=bv.sweep.sweepx){var er=bv.queue.parent;while(er!=null){if(bv.queue.lt(fZ,er.data)){er=er.prev}else{if(bv.queue.lt(er.data,fZ)){er=er.next}else{break}}}if(er==null){var ep=bv.ints.parent;while(ep!=null){if(bv.ints.lt(fZ,ep.data)){ep=ep.prev}else{if(bv.ints.lt(ep.data,fZ)){ep=ep.next}else{break}}}var fA=ep;if(fA!=null){var f0=fZ.vertex;f0.links.clear();f0.node=null;f0.forced=false;f0.next=dG.zpp_pool;dG.zpp_pool=f0;fZ.vertex=fA.data.vertex;fA.data=fZ;bv.queue.insert(fZ)}else{bv.queue.insert(fZ);bv.ints.insert(fZ)}if(fb.id<fb.prev.id){var eC=fb.id;var fB=fb.prev.id;var fK;if(ca.zpp_pool==null){fK=new ca()}else{fK=ca.zpp_pool;ca.zpp_pool=fK.next;fK.next=null}fK.id=eC;fK.di=fB;var e0=fK;e0.value=true;bv.inthash.add(e0)}else{var eB=fb.prev.id;var fz=fb.id;var eX;if(ca.zpp_pool==null){eX=new ca()}else{eX=ca.zpp_pool;ca.zpp_pool=eX.next;eX.next=null}eX.id=eB;eX.di=fz;var eV=eX;eV.value=true;bv.inthash.add(eV)}}else{var fX=fZ.vertex;fX.links.clear();fX.node=null;fX.forced=false;fX.next=dG.zpp_pool;dG.zpp_pool=fX;fZ.vertex=null;fZ.segment=fZ.segment2=null;fZ.node=null;fZ.next=dI.zpp_pool;dI.zpp_pool=fZ}}else{var fU=fZ.vertex;fU.links.clear();fU.node=null;fU.forced=false;fU.next=dG.zpp_pool;dG.zpp_pool=fU;fZ.vertex=null;fZ.segment=fZ.segment2=null;fZ.node=null;fZ.next=dI.zpp_pool;dI.zpp_pool=fZ}}}}else{if(fl.type==2){var ee=fl.segment;if(ee.node!=null){var fk=ee.next;var fT=ee.prev;bv.sweep.remove(ee);ee.left=ee.right=null;ee.prev=null;ee.node=null;ee.vertices.clear();ee.next=co.zpp_pool;co.zpp_pool=ee;if(fk!=null&&fT!=null&&!(fk.id<fT.id?bv.inthash.has(fk.id,fT.id):bv.inthash.has(fT.id,fk.id))){var fW=bv.sweep.intersection(fk,fT);if(fW!=null){if(fW.vertex.x>=bv.sweep.sweepx){var en=bv.queue.parent;while(en!=null){if(bv.queue.lt(fW,en.data)){en=en.prev}else{if(bv.queue.lt(en.data,fW)){en=en.next}else{break}}}if(en==null){var el=bv.ints.parent;while(el!=null){if(bv.ints.lt(fW,el.data)){el=el.prev}else{if(bv.ints.lt(el.data,fW)){el=el.next}else{break}}}var fy=el;if(fy!=null){var fQ=fW.vertex;fQ.links.clear();fQ.node=null;fQ.forced=false;fQ.next=dG.zpp_pool;dG.zpp_pool=fQ;fW.vertex=fy.data.vertex;fy.data=fW;bv.queue.insert(fW)}else{bv.queue.insert(fW);bv.ints.insert(fW)}if(fk.id<fT.id){var eA=fk.id;var fx=fT.id;var eT;if(ca.zpp_pool==null){eT=new ca()}else{eT=ca.zpp_pool;ca.zpp_pool=eT.next;eT.next=null}eT.id=eA;eT.di=fx;var eR=eT;eR.value=true;bv.inthash.add(eR)}else{var ez=fT.id;var fv=fk.id;var eP;if(ca.zpp_pool==null){eP=new ca()}else{eP=ca.zpp_pool;ca.zpp_pool=eP.next;eP.next=null}eP.id=ez;eP.di=fv;var eM=eP;eM.value=true;bv.inthash.add(eM)}}else{var fM=fW.vertex;fM.links.clear();fM.node=null;fM.forced=false;fM.next=dG.zpp_pool;dG.zpp_pool=fM;fW.vertex=null;fW.segment=fW.segment2=null;fW.node=null;fW.next=dI.zpp_pool;dI.zpp_pool=fW}}else{var fJ=fW.vertex;fJ.links.clear();fJ.node=null;fJ.forced=false;fJ.next=dG.zpp_pool;dG.zpp_pool=fJ;fW.vertex=null;fW.segment=fW.segment2=null;fW.node=null;fW.next=dI.zpp_pool;dI.zpp_pool=fW}}}}}else{var fR=fl.vertex;var gd=fR.node==null;var fn=fl.segment;var fm=fl.segment2;if(fm.next!=fn){var fa=fn;fn=fm;fm=fa}var ej=fn.vertices.parent;while(ej!=null){if(fn.vertices.lt(fR,ej.data)){ej=ej.prev}else{if(fn.vertices.lt(ej.data,fR)){ej=ej.next}else{break}}}var ec=ej==null;var eh=fm.vertices.parent;while(eh!=null){if(fm.vertices.lt(fR,eh.data)){eh=eh.prev}else{if(fm.vertices.lt(eh.data,fR)){eh=eh.next}else{break}}}var ef=eh==null;if(ec){var f7=fn.vertices.insert(fR);var e6=fR==fn.left?fR:fn.vertices.predecessor_node(f7).data;var ed=fR==fn.right?fR:fn.vertices.successor_node(f7).data;e6.links.remove(ed);if(fR!=e6){e6.links.insert(fR)}ed.links.remove(e6);if(fR!=ed){ed.links.insert(fR)}if(fR!=e6){fR.links.insert(e6)}if(fR!=ed){fR.links.insert(ed)}}if(ef){var f8=fm.vertices.insert(fR);var ex=fR==fm.left?fR:fm.vertices.predecessor_node(f8).data;var eH=fR==fm.right?fR:fm.vertices.successor_node(f8).data;ex.links.remove(eH);if(fR!=ex){ex.links.insert(fR)}eH.links.remove(ex);if(fR!=eH){eH.links.insert(fR)}if(fR!=ex){fR.links.insert(ex)}if(fR!=eH){fR.links.insert(eH)}}if(gd){fR.node=bv.vertices.insert(fR)}fR.forced=true;if(gd){var fI=fn.node;var fp=fm.node;fI.data=fm;fp.data=fn;fn.node=fp;fm.node=fI;fm.next=fn.next;fn.next=fm;fn.prev=fm.prev;fm.prev=fn;if(fn.prev!=null){fn.prev.next=fn}if(fm.next!=null){fm.next.prev=fm}}if(fm.next!=null&&fm!=null&&!(fm.next.id<fm.id?bv.inthash.has(fm.next.id,fm.id):bv.inthash.has(fm.id,fm.next.id))){var fO=bv.sweep.intersection(fm.next,fm);if(fO!=null){if(fO.vertex.x>=bv.sweep.sweepx){var eg=bv.queue.parent;while(eg!=null){if(bv.queue.lt(fO,eg.data)){eg=eg.prev}else{if(bv.queue.lt(eg.data,fO)){eg=eg.next}else{break}}}if(eg==null){var fG=bv.ints.parent;while(fG!=null){if(bv.ints.lt(fO,fG.data)){fG=fG.prev}else{if(bv.ints.lt(fG.data,fO)){fG=fG.next}else{break}}}var fw=fG;if(fw!=null){var eZ=fO.vertex;eZ.links.clear();eZ.node=null;eZ.forced=false;eZ.next=dG.zpp_pool;dG.zpp_pool=eZ;fO.vertex=fw.data.vertex;fw.data=fO;bv.queue.insert(fO)}else{bv.queue.insert(fO);bv.ints.insert(fO)}if(fm.next.id<fm.id){var ey=fm.next.id;var ft=fm.id;var eK;if(ca.zpp_pool==null){eK=new ca()}else{eK=ca.zpp_pool;ca.zpp_pool=eK.next;eK.next=null}eK.id=ey;eK.di=ft;var eJ=eK;eJ.value=true;bv.inthash.add(eJ)}else{var ew=fm.id;var fs=fm.next.id;var eI;if(ca.zpp_pool==null){eI=new ca()}else{eI=ca.zpp_pool;ca.zpp_pool=eI.next;eI.next=null}eI.id=ew;eI.di=fs;var eq=eI;eq.value=true;bv.inthash.add(eq)}}else{var eW=fO.vertex;eW.links.clear();eW.node=null;eW.forced=false;eW.next=dG.zpp_pool;dG.zpp_pool=eW;fO.vertex=null;fO.segment=fO.segment2=null;fO.node=null;fO.next=dI.zpp_pool;dI.zpp_pool=fO}}else{var eU=fO.vertex;eU.links.clear();eU.node=null;eU.forced=false;eU.next=dG.zpp_pool;dG.zpp_pool=eU;fO.vertex=null;fO.segment=fO.segment2=null;fO.node=null;fO.next=dI.zpp_pool;dI.zpp_pool=fO}}}if(fn!=null&&fn.prev!=null&&!(fn.id<fn.prev.id?bv.inthash.has(fn.id,fn.prev.id):bv.inthash.has(fn.prev.id,fn.id))){var fL=bv.sweep.intersection(fn,fn.prev);if(fL!=null){if(fL.vertex.x>=bv.sweep.sweepx){var fF=bv.queue.parent;while(fF!=null){if(bv.queue.lt(fL,fF.data)){fF=fF.prev}else{if(bv.queue.lt(fF.data,fL)){fF=fF.next}else{break}}}if(fF==null){var fE=bv.ints.parent;while(fE!=null){if(bv.ints.lt(fL,fE.data)){fE=fE.prev}else{if(bv.ints.lt(fE.data,fL)){fE=fE.next}else{break}}}var fu=fE;if(fu!=null){var eS=fL.vertex;eS.links.clear();eS.node=null;eS.forced=false;eS.next=dG.zpp_pool;dG.zpp_pool=eS;fL.vertex=fu.data.vertex;fu.data=fL;bv.queue.insert(fL)}else{bv.queue.insert(fL);bv.ints.insert(fL)}if(fn.id<fn.prev.id){var ev=fn.id;var fq=fn.prev.id;var eo;if(ca.zpp_pool==null){eo=new ca()}else{eo=ca.zpp_pool;ca.zpp_pool=eo.next;eo.next=null}eo.id=ev;eo.di=fq;var em=eo;em.value=true;bv.inthash.add(em)}else{var eu=fn.prev.id;var fo=fn.id;var ek;if(ca.zpp_pool==null){ek=new ca()}else{ek=ca.zpp_pool;ca.zpp_pool=ek.next;ek.next=null}ek.id=eu;ek.di=fo;var ei=ek;ei.value=true;bv.inthash.add(ei)}}else{var eQ=fL.vertex;eQ.links.clear();eQ.node=null;eQ.forced=false;eQ.next=dG.zpp_pool;dG.zpp_pool=eQ;fL.vertex=null;fL.segment=fL.segment2=null;fL.node=null;fL.next=dI.zpp_pool;dI.zpp_pool=fL}}else{var eN=fL.vertex;eN.links.clear();eN.node=null;eN.forced=false;eN.next=dG.zpp_pool;dG.zpp_pool=eN;fL.vertex=null;fL.segment=fL.segment2=null;fL.node=null;fL.next=dI.zpp_pool;dI.zpp_pool=fL}}}bv.ints.remove(fl)}}fl.vertex=null;fl.segment=fl.segment2=null;fl.node=null;fl.next=dI.zpp_pool;dI.zpp_pool=fl}var eb=0;var ea=bv.inthash.table.length;while(eb<ea){var fg=eb++;var fe=bv.inthash.table[fg];if(fe==null){continue}while(fe!=null){var gc=fe.hnext;fe.hnext=null;var eL=fe;eL.next=ca.zpp_pool;ca.zpp_pool=eL;fe=gc}bv.inthash.table[fg]=null}if(e9==null){e9=new dA()}while(!bv.vertices.empty()){bv.clip_polygon(bv.vertices,e9)}return e9};bv.clip_polygon=function(ed,eb){var ex=null;var ef=ed.first();var er=ef;var eA=ef.links.parent;var ej=eA.prev==null?eA.next:eA.prev;var eH=eA.data;var eM=ej.data;var ev=0;var et=0;ev=ef.x-eH.x;et=ef.y-eH.y;var eh=0;var eg=0;eh=eM.x-ef.x;eg=eM.y-ef.y;if(eg*ev-eh*et<0){eM=eH}var eE=ef.x;var eC=ef.y;var eF;if(dr.zpp_pool==null){eF=new dr()}else{eF=dr.zpp_pool;dr.zpp_pool=eF.next;eF.next=null}eF.forced=false;eF.x=eE;eF.y=eC;var ec=eF;if(ex==null){ex=ec.prev=ec.next=ec}else{ec.prev=ex;ec.next=ex.next;ex.next.prev=ec;ex.next=ec}ex=ec;ec.forced=ef.forced;while(true){ef.links.remove(eM);eM.links.remove(ef);if(eM==er){if(ef.links.empty()){ed.remove(ef);var eL=ef;eL.links.clear();eL.node=null;eL.forced=false;eL.next=dG.zpp_pool;dG.zpp_pool=eL}break}var em=eM.x;var eO=eM.y;var eD;if(dr.zpp_pool==null){eD=new dr()}else{eD=dr.zpp_pool;dr.zpp_pool=eD.next;eD.next=null}eD.forced=false;eD.x=em;eD.y=eO;var ee=eD;if(ex==null){ex=ee.prev=ee.next=ee}else{ee.prev=ex;ee.next=ex.next;ex.next.prev=ee;ex.next=ee}ex=ee;ee.forced=eM.forced;if(eM.links.singular()){if(ef.links.empty()){ed.remove(ef);var ek=ef;ek.links.clear();ek.node=null;ek.forced=false;ek.next=dG.zpp_pool;dG.zpp_pool=ek}ef=eM;eM=eM.links.parent.data}else{var eN=null;var eu=0;if(!eM.links.empty()){var ew=eM.links.parent;while(ew.prev!=null){ew=ew.prev}while(ew!=null){var eK=ew.data;if(eN==null){eN=eK;var eJ=0;var es=0;eJ=eM.x-ef.x;es=eM.y-ef.y;var eB=0;var eo=0;eB=eK.x-eM.x;eo=eK.y-eM.y;eu=eo*eJ-eB*es}else{var eI=0;var eq=0;eI=eM.x-ef.x;eq=eM.y-ef.y;var ez=0;var en=0;ez=eK.x-eM.x;en=eK.y-eM.y;var ea=en*eI-ez*eq;if(ea>0&&eu<=0){eN=eK;eu=ea}else{if(eu*ea>=0){var eG=0;var ep=0;eG=eM.x-eK.x;ep=eM.y-eK.y;var ey=0;var el=0;ey=eN.x-eM.x;el=eN.y-eM.y;if(el*eG-ey*ep>0){eN=eK;eu=ea}}}}if(ew.next!=null){ew=ew.next;while(ew.prev!=null){ew=ew.prev}}else{while(ew.parent!=null&&ew==ew.parent.next){ew=ew.parent}ew=ew.parent}}}if(ef.links.empty()){ed.remove(ef);var ei=ef;ei.links.clear();ei.node=null;ei.forced=false;ei.next=dG.zpp_pool;dG.zpp_pool=ei}ef=eM;eM=eN}}ed.remove(er);er.links.clear();er.node=null;er.forced=false;er.next=dG.zpp_pool;dG.zpp_pool=er;eb.add(ex)};bv.isSimple=function(ep){if(bv.sweep==null){bv.sweep=new bz();bv.inthash=new bK()}var eb=bv.list_vertices;if(eb==null){eb=bv.list_vertices=new a8()}if(ep!=null){var ec=ep;while(true){var eA=ec;var ey=eA.x;var ew=eA.y;var eq;if(dG.zpp_pool==null){eq=new dG()}else{eq=dG.zpp_pool;dG.zpp_pool=eq.next;eq.next=null}eq.x=ey;eq.y=ew;eb.add(eq);ec=ec.next;if(!(ec!=ep)){break}}}var ef=bv.list_queue;if(ef==null){ef=bv.list_queue=new dC()}var eg=eb.head;var eB=eg.elt;eg=eg.next;while(eg!=null){var eK=eg.elt;var ez;if(dI.zpp_pool==null){ez=new dI()}else{ez=dI.zpp_pool;dI.zpp_pool=ez.next;ez.next=null}ez.vertex=eB;var eo=ef.add(ez);var ex;if(dI.zpp_pool==null){ex=new dI()}else{ex=dI.zpp_pool;dI.zpp_pool=ex.next;ex.next=null}ex.vertex=eK;var en=ef.add(ex);var eD;if(dI.less_xy(eo,en)){eo.type=1;en.type=2;eD=co.get(eB,eK)}else{eo.type=2;en.type=1;eD=co.get(eK,eB)}eo.segment=en.segment=eD;eB=eK;eg=eg.next}var eJ=eb.head.elt;var ev;if(dI.zpp_pool==null){ev=new dI()}else{ev=dI.zpp_pool;dI.zpp_pool=ev.next;ev.next=null}ev.vertex=eB;var eC=ef.add(ev);var eu;if(dI.zpp_pool==null){eu=new dI()}else{eu=dI.zpp_pool;dI.zpp_pool=eu.next;eu.next=null}eu.vertex=eJ;var ek=ef.add(eu);var eI;if(dI.less_xy(eC,ek)){eC.type=1;ek.type=2;eI=co.get(eB,eJ)}else{eC.type=2;ek.type=1;eI=co.get(eJ,eB)}eC.segment=ek.segment=eI;var em=ef;if(em.head!=null&&em.head.next!=null){var ei=em.head;var eL=null;var ee=null;var eE=null;var eG=null;var ej=1;var ed;var er;var ea;while(true){ed=0;ee=ei;ei=null;eL=ei;while(ee!=null){++ed;eE=ee;er=0;ea=ej;while(eE!=null&&er<ej){++er;eE=eE.next}while(er>0||ea>0&&eE!=null){if(er==0){eG=eE;eE=eE.next;--ea}else{if(ea==0||eE==null){eG=ee;ee=ee.next;--er}else{if(dI.less_xy(ee.elt,eE.elt)){eG=ee;ee=ee.next;--er}else{eG=eE;eE=eE.next;--ea}}}if(eL!=null){eL.next=eG}else{ei=eG}eL=eG}ee=eE}eL.next=null;ej<<=1;if(!(ed>1)){break}}em.head=ei;em.modified=true;em.pushmod=true}var et=true;while(ef.head!=null){var eH=ef.pop_unsafe();var es=eH.segment;if(eH.type==1){bv.sweep.add(es);if(bv.sweep.intersect(es,es.next)||bv.sweep.intersect(es,es.prev)){et=false;break}}else{if(eH.type==2){if(bv.sweep.intersect(es.prev,es.next)){et=false;break}bv.sweep.remove(es);es.left=es.right=null;es.prev=null;es.node=null;es.vertices.clear();es.next=co.zpp_pool;co.zpp_pool=es}}eH.vertex=null;eH.segment=eH.segment2=null;eH.node=null;eH.next=dI.zpp_pool;dI.zpp_pool=eH}while(ef.head!=null){var el=ef.pop_unsafe();if(el.type==2){var eF=el.segment;eF.left=eF.right=null;eF.prev=null;eF.node=null;eF.vertices.clear();eF.next=co.zpp_pool;co.zpp_pool=eF}el.vertex=null;el.segment=el.segment2=null;el.node=null;el.next=dI.zpp_pool;dI.zpp_pool=el}bv.sweep.clear();while(eb.head!=null){var eh=eb.pop_unsafe();eh.links.clear();eh.node=null;eh.forced=false;eh.next=dG.zpp_pool;dG.zpp_pool=eh}return et};bv.prototype.__class__=bv;var cD=zpp_nape.geom.ZPP_SimplifyV=function(){this.forced=false;this.flag=false;this.prev=null;this.next=null;this.y=0;this.x=0};cD.__name__=["zpp_nape","geom","ZPP_SimplifyV"];cD.get=function(ea){var eb;if(cD.zpp_pool==null){eb=new cD()}else{eb=cD.zpp_pool;cD.zpp_pool=eb.next;eb.next=null}eb.x=ea.x;eb.y=ea.y;eb.flag=false;return eb};cD.prototype.x=null;cD.prototype.y=null;cD.prototype.next=null;cD.prototype.prev=null;cD.prototype.flag=null;cD.prototype.forced=null;cD.prototype.free=function(){};cD.prototype.alloc=function(){};cD.prototype.__class__=cD;var cG=zpp_nape.geom.ZPP_SimplifyP=function(){this.max=null;this.min=null;this.next=null};cG.__name__=["zpp_nape","geom","ZPP_SimplifyP"];cG.get=function(ec,ea){var eb;if(cG.zpp_pool==null){eb=new cG()}else{eb=cG.zpp_pool;cG.zpp_pool=eb.next;eb.next=null}eb.min=ec;eb.max=ea;return eb};cG.prototype.next=null;cG.prototype.min=null;cG.prototype.max=null;cG.prototype.free=function(){this.min=this.max=null};cG.prototype.alloc=function(){};cG.prototype.__class__=cG;var aL=zpp_nape.geom.ZPP_Simplify=function(){};aL.__name__=["zpp_nape","geom","ZPP_Simplify"];aL.lessval=function(eb,ea){return eb.x-ea.x+(eb.y-ea.y)};aL.less=function(eb,ea){return eb.x-ea.x+(eb.y-ea.y)<0};aL.distance=function(ej,ei,eh){var ee=0;var ed=0;ee=eh.x-ei.x;ed=eh.y-ei.y;var ec=0;var eb=0;ec=ej.x-ei.x;eb=ej.y-ei.y;if(ee*ee+ed*ed==0){return ec*ec+eb*eb}else{var el=(ec*ee+eb*ed)/(ee*ee+ed*ed);if(el<=0){return ec*ec+eb*eb}else{if(el>=1){var ea=ej.x;var en=ej.y;var eg=eh.x;var ef=eh.y;var em=0;var ek=0;em=ea-eg;ek=en-ef;return em*em+ek*ek}else{ec-=ee*el;eb-=ed*el;return ec*ec+eb*eb}}}};aL.simplify=function(ee,eE){var ep=null;var eK=null;var en=null;eE*=eE;if(aL.stack==null){aL.stack=new c0()}var eD=null;var em=null;var ef=ee;while(true){var eA;if(cD.zpp_pool==null){eA=new cD()}else{eA=cD.zpp_pool;cD.zpp_pool=eA.next;eA.next=null}eA.x=ef.x;eA.y=ef.y;eA.flag=false;var eC=eA;eC.forced=ef.forced;if(eC.forced){eC.flag=true;if(eD!=null){var ey;if(cG.zpp_pool==null){ey=new cG()}else{ey=cG.zpp_pool;cG.zpp_pool=ey.next;ey.next=null}ey.min=eD;ey.max=eC;aL.stack.add(ey)}else{em=eC}eD=eC}if(ep==null){ep=eC.prev=eC.next=eC}else{eC.prev=ep;eC.next=ep.next;ep.next.prev=eC;ep.next=eC}ep=eC;if(eK==null){eK=eC;en=eC}else{if(eC.x-eK.x+(eC.y-eK.y)<0){eK=eC}if(en.x-eC.x+(en.y-eC.y)<0){en=eC}}ef=ef.next;if(!(ef!=ee)){break}}if(aL.stack.head==null){if(em==null){eK.flag=en.flag=true;var ew;if(cG.zpp_pool==null){ew=new cG()}else{ew=cG.zpp_pool;cG.zpp_pool=ew.next;ew.next=null}ew.min=eK;ew.max=en;aL.stack.add(ew);var ev;if(cG.zpp_pool==null){ev=new cG()}else{ev=cG.zpp_pool;cG.zpp_pool=ev.next;ev.next=null}ev.min=en;ev.max=eK;aL.stack.add(ev)}else{var eI=eK.x-em.x+(eK.y-em.y);if(eI<0){eI=-eI}var eG=en.x-em.x+(en.y-em.y);if(eG<0){eG=-eG}if(eI>eG){eK.flag=em.flag=true;var eu;if(cG.zpp_pool==null){eu=new cG()}else{eu=cG.zpp_pool;cG.zpp_pool=eu.next;eu.next=null}eu.min=eK;eu.max=em;aL.stack.add(eu);var et;if(cG.zpp_pool==null){et=new cG()}else{et=cG.zpp_pool;cG.zpp_pool=et.next;et.next=null}et.min=em;et.max=eK;aL.stack.add(et)}else{en.flag=em.flag=true;var es;if(cG.zpp_pool==null){es=new cG()}else{es=cG.zpp_pool;cG.zpp_pool=es.next;es.next=null}es.min=en;es.max=em;aL.stack.add(es);var er;if(cG.zpp_pool==null){er=new cG()}else{er=cG.zpp_pool;cG.zpp_pool=er.next;er.next=null}er.min=em;er.max=en;aL.stack.add(er)}}}else{var eq;if(cG.zpp_pool==null){eq=new cG()}else{eq=cG.zpp_pool;cG.zpp_pool=eq.next;eq.next=null}eq.min=eD;eq.max=em;aL.stack.add(eq)}while(aL.stack.head!=null){var el=aL.stack.pop_unsafe();var eg=el.min;var eH=el.max;el.min=el.max=null;el.next=cG.zpp_pool;cG.zpp_pool=el;var eo=eE;var ec=null;var eJ=eg.next;while(eJ!=eH){var ed=aL.distance(eJ,eg,eH);if(ed>eo){eo=ed;ec=eJ}eJ=eJ.next}if(ec!=null){ec.flag=true;var ek;if(cG.zpp_pool==null){ek=new cG()}else{ek=cG.zpp_pool;cG.zpp_pool=ek.next;ek.next=null}ek.min=eg;ek.max=ec;aL.stack.add(ek);var ej;if(cG.zpp_pool==null){ej=new cG()}else{ej=cG.zpp_pool;cG.zpp_pool=ej.next;ej.next=null}ej.min=ec;ej.max=eH;aL.stack.add(ej)}}var eb=null;while(ep!=null){if(ep.flag){var ez=ep.x;var ex=ep.y;var ei;if(dr.zpp_pool==null){ei=new dr()}else{ei=dr.zpp_pool;dr.zpp_pool=ei.next;ei.next=null}ei.forced=false;ei.x=ez;ei.y=ex;var ea=ei;if(eb==null){eb=ea.prev=ea.next=ea}else{ea.prev=eb;ea.next=eb.next;eb.next.prev=ea;eb.next=ea}eb=ea;ea.forced=ep.forced}if(ep!=null&&ep.prev==ep){ep.next=ep.prev=null;var eF=ep;eF.next=cD.zpp_pool;cD.zpp_pool=eF;ep=null;ep=ep}else{var eB=ep.next;ep.prev.next=ep.next;ep.next.prev=ep.prev;ep.next=ep.prev=null;var eh=ep;eh.next=cD.zpp_pool;cD.zpp_pool=eh;ep=null;ep=eB}}return eb};aL.prototype.__class__=aL;var ct=zpp_nape.geom.ZPP_ToiEvent=function(){this.kinematic=false;this.failed=false;this.slipped=false;this.axis=null;this.c2=null;this.c1=null;this.frozen2=false;this.frozen1=false;this.arbiter=null;this.s2=null;this.s1=null;this.toi=0;this.next=null;this.c1=new bB();this.c2=new bB();this.axis=new bB()};ct.__name__=["zpp_nape","geom","ZPP_ToiEvent"];ct.prototype.next=null;ct.prototype.alloc=function(){this.failed=false;this.s1=this.s2=null;this.arbiter=null};ct.prototype.free=function(){};ct.prototype.toi=null;ct.prototype.s1=null;ct.prototype.s2=null;ct.prototype.arbiter=null;ct.prototype.frozen1=null;ct.prototype.frozen2=null;ct.prototype.c1=null;ct.prototype.c2=null;ct.prototype.axis=null;ct.prototype.slipped=null;ct.prototype.failed=null;ct.prototype.kinematic=null;ct.prototype.__class__=ct;var de=zpp_nape.geom.ZPP_SweepDistance=function(){};de.__name__=["zpp_nape","geom","ZPP_SweepDistance"];de.dynamicSweep=function(eC,h7,gR,kq,hj){if(hj==null){hj=false}var gx=eC.s1;var gv=eC.s2;var kp=gx.body;var ko=gv.body;var jS=0;var jQ=0;jS=ko.velx-kp.velx;jQ=ko.vely-kp.vely;var gZ=kp.angvel;if(gZ<0){gZ=-gZ}var gY=ko.angvel;if(gY<0){gY=-gY}var fF=gx.sweepCoef*gZ+gv.sweepCoef*gY;if(!hj&&!eC.kinematic&&jS*jS+jQ*jQ<P.dynamicSweepLinearThreshold*P.dynamicSweepLinearThreshold&&fF<P.dynamicSweepAngularThreshold){eC.toi=-1;eC.failed=true;return}var ka=eC.c1;var j9=eC.c2;var iH=eC.axis;var iQ=gR;var eS=0;while(true){var jc=iQ*h7;var ev=jc-kp.sweepTime;if(ev!=0){kp.sweepTime=jc;kp.posx+=kp.velx*ev;kp.posy+=kp.vely*ev;if(kp.angvel!=0){var jd=kp.sweep_angvel*ev;kp.rot+=jd;if(jd*jd>0.0001){kp.axisx=Math.sin(kp.rot);kp.axisy=Math.cos(kp.rot)}else{var jZ=jd*jd;var jC=1-0.5*jZ;var jF=1-jZ*jZ/8;var g6=(jC*kp.axisx+jd*kp.axisy)*jF;kp.axisy=(jC*kp.axisy-jd*kp.axisx)*jF;kp.axisx=g6}}}if(gx.type==0){gx.worldCOMx=kp.posx+(kp.axisy*gx.localCOMx-kp.axisx*gx.localCOMy);gx.worldCOMy=kp.posy+(gx.localCOMx*kp.axisx+gx.localCOMy*kp.axisy)}else{var hf=gx.polygon;var hs=hf.lverts.next;var iG=hf.gverts.next;while(iG!=null){var jL=iG;var jG=hs;hs=hs.next;jL.x=kp.posx+(kp.axisy*jG.x-kp.axisx*jG.y);jL.y=kp.posy+(jG.x*kp.axisx+jG.y*kp.axisy);iG=iG.next}var iw=hf.edges.head;var fv=hf.gverts.next;var jr=fv;fv=fv.next;while(fv!=null){var jp=fv;var jO=iw.elt;iw=iw.next;jO.gnormx=kp.axisy*jO.lnormx-kp.axisx*jO.lnormy;jO.gnormy=jO.lnormx*kp.axisx+jO.lnormy*kp.axisy;jO.gprojection=kp.posx*jO.gnormx+kp.posy*jO.gnormy+jO.lprojection;jO.tp0=jr.y*jO.gnormx-jr.x*jO.gnormy;jO.tp1=jp.y*jO.gnormx-jp.x*jO.gnormy;jr=jp;fv=fv.next}var fB=hf.gverts.next;var jD=iw.elt;jD.gnormx=kp.axisy*jD.lnormx-kp.axisx*jD.lnormy;jD.gnormy=jD.lnormx*kp.axisx+jD.lnormy*kp.axisy;jD.gprojection=kp.posx*jD.gnormx+kp.posy*jD.gnormy+jD.lprojection;jD.tp0=jr.y*jD.gnormx-jr.x*jD.gnormy;jD.tp1=fB.y*jD.gnormx-fB.x*jD.gnormy}var ki=iQ*h7;var km=ki-ko.sweepTime;if(km!=0){ko.sweepTime=ki;ko.posx+=ko.velx*km;ko.posy+=ko.vely*km;if(ko.angvel!=0){var eB=ko.sweep_angvel*km;ko.rot+=eB;if(eB*eB>0.0001){ko.axisx=Math.sin(ko.rot);ko.axisy=Math.cos(ko.rot)}else{var iv=eB*eB;var he=1-0.5*iv;var hG=1-iv*iv/8;var gk=(he*ko.axisx+eB*ko.axisy)*hG;ko.axisy=(he*ko.axisy-eB*ko.axisx)*hG;ko.axisx=gk}}}if(gv.type==0){gv.worldCOMx=ko.posx+(ko.axisy*gv.localCOMx-ko.axisx*gv.localCOMy);gv.worldCOMy=ko.posy+(gv.localCOMx*ko.axisx+gv.localCOMy*ko.axisy)}else{var hc=gv.polygon;var gX=hc.lverts.next;var ft=hc.gverts.next;while(ft!=null){var iZ=ft;var hZ=gX;gX=gX.next;iZ.x=ko.posx+(ko.axisy*hZ.x-ko.axisx*hZ.y);iZ.y=ko.posy+(hZ.x*ko.axisx+hZ.y*ko.axisy);ft=ft.next}var fM=hc.edges.head;var fr=hc.gverts.next;var fJ=fr;fr=fr.next;while(fr!=null){var fA=fr;var jB=fM.elt;fM=fM.next;jB.gnormx=ko.axisy*jB.lnormx-ko.axisx*jB.lnormy;jB.gnormy=jB.lnormx*ko.axisx+jB.lnormy*ko.axisy;jB.gprojection=ko.posx*jB.gnormx+ko.posy*jB.gnormy+jB.lprojection;jB.tp0=fJ.y*jB.gnormx-fJ.x*jB.gnormy;jB.tp1=fA.y*jB.gnormx-fA.x*jB.gnormy;fJ=fA;fr=fr.next}var fz=hc.gverts.next;var jz=fM.elt;jz.gnormx=ko.axisy*jz.lnormx-ko.axisx*jz.lnormy;jz.gnormy=jz.lnormx*ko.axisx+jz.lnormy*ko.axisy;jz.gprojection=ko.posx*jz.gnormx+ko.posy*jz.gnormy+jz.lprojection;jz.tp0=fJ.y*jz.gnormx-fJ.x*jz.gnormy;jz.tp1=fz.y*jz.gnormx-fz.x*jz.gnormy}var jP=gx;var jn=gv;var fe=ka;var fd=j9;var eY;if(gx.type==0&&gv.type==0){var j4=gx.circle;var jU=gv.circle;var hM;var gj=0;var g5=0;gj=jU.worldCOMx-j4.worldCOMx;g5=jU.worldCOMy-j4.worldCOMy;var ho=Math.sqrt(gj*gj+g5*g5);hM=ho-(j4.radius+jU.radius);if(hM<1e+100){if(ho==0){gj=1;g5=0}else{var ju=1/ho;gj*=ju;g5*=ju}var f4=j4.radius;ka.x=j4.worldCOMx+gj*f4;ka.y=j4.worldCOMy+g5*f4;var f2=-jU.radius;j9.x=jU.worldCOMx+gj*f2;j9.y=jU.worldCOMy+g5*f2;iH.x=gj;iH.y=g5}eY=hM}else{var jA=false;if(gx.type==0&&gv.type==1){var gB=gx;jP=gv;jn=gB;var gz=ka;fe=j9;fd=gz;jA=true}if(jP.type==1&&jn.type==0){var fN=jP.polygon;var h2=jn.circle;var fZ=-1e+100;var es=null;var fp=fN.edges.head;while(fp!=null){var jR=fp.elt;var kg=jR.gnormx*h2.worldCOMx+jR.gnormy*h2.worldCOMy-jR.gprojection-h2.radius;if(kg>1e+100){fZ=kg;break}if(kg>0){if(kg>fZ){fZ=kg;es=jR}}else{if(fZ<0&&kg>fZ){fZ=kg;es=jR}}fp=fp.next}if(fZ<1e+100){var fC=es.gp0;var eZ=es.gp1;var kh=h2.worldCOMy*es.gnormx-h2.worldCOMx*es.gnormy;if(kh<=fC.y*es.gnormx-fC.x*es.gnormy){var gi=0;var fS=0;gi=h2.worldCOMx-fC.x;fS=h2.worldCOMy-fC.y;var fc=Math.sqrt(gi*gi+fS*fS);fZ=fc-h2.radius;if(fZ<1e+100){if(fc==0){gi=1;fS=0}else{var f1=1/fc;gi*=f1;fS*=f1}fe.x=fC.x+gi*0;fe.y=fC.y+fS*0;var f0=-h2.radius;fd.x=h2.worldCOMx+gi*f0;fd.y=h2.worldCOMy+fS*f0;iH.x=gi;iH.y=fS}}else{if(kh>=eZ.y*es.gnormx-eZ.x*es.gnormy){var gh=0;var fR=0;gh=h2.worldCOMx-eZ.x;fR=h2.worldCOMy-eZ.y;var fb=Math.sqrt(gh*gh+fR*fR);fZ=fb-h2.radius;if(fZ<1e+100){if(fb==0){gh=1;fR=0}else{var fY=1/fb;gh*=fY;fR*=fY}fe.x=eZ.x+gh*0;fe.y=eZ.y+fR*0;var fX=-h2.radius;fd.x=h2.worldCOMx+gh*fX;fd.y=h2.worldCOMy+fR*fX;iH.x=gh;iH.y=fR}}else{var fW=-h2.radius;fd.x=h2.worldCOMx+es.gnormx*fW;fd.y=h2.worldCOMy+es.gnormy*fW;var fU=-fZ;fe.x=fd.x+es.gnormx*fU;fe.y=fd.y+es.gnormy*fU;iH.x=es.gnormx;iH.y=es.gnormy}}}if(jA){iH.x=-iH.x;iH.y=-iH.y}eY=fZ}else{var iz=jP.polygon;var h6=jn.polygon;var hn=-1e+100;var er=null;var eq=null;var g4=0;var fn=iz.edges.head;while(fn!=null){var eo=fn.elt;var eE=1e+100;var fm=h6.gverts.next;while(fm!=null){var fy=fm;var jH=eo.gnormx*fy.x+eo.gnormy*fy.y;if(jH<eE){eE=jH}fm=fm.next}eE-=eo.gprojection;if(eE>1e+100){hn=eE;break}if(eE>0){if(eE>hn){hn=eE;er=eo;g4=1}}else{if(hn<0&&eE>hn){hn=eE;er=eo;g4=1}}fn=fn.next}if(hn<1e+100){var fl=h6.edges.head;while(fl!=null){var en=fl.elt;var gq=1e+100;var fk=iz.gverts.next;while(fk!=null){var fx=fk;var ik=en.gnormx*fx.x+en.gnormy*fx.y;if(ik<gq){gq=ik}fk=fk.next}gq-=en.gprojection;if(gq>1e+100){hn=gq;break}if(gq>0){if(gq>hn){hn=gq;eq=en;g4=2}}else{if(hn<0&&gq>hn){hn=gq;eq=en;g4=2}}fl=fl.next}if(hn<1e+100){var gP;var j7;if(g4==1){gP=h6;j7=er}else{gP=iz;j7=eq;var gy=fe;fe=fd;fd=gy;jA=!jA}var j6=null;var go=1e+100;var fi=gP.edges.head;while(fi!=null){var em=fi.elt;var ii=j7.gnormx*em.gnormx+j7.gnormy*em.gnormy;if(ii<go){go=ii;j6=em}fi=fi.next}if(jA){iH.x=-j7.gnormx;iH.y=-j7.gnormy}else{iH.x=j7.gnormx;iH.y=j7.gnormy}if(hn>=0){var fj=j7.gp0;var eX=j7.gp1;var gT=j6.gp0;var gQ=j6.gp1;var eO=0;var eN=0;var gs=0;var gr=0;eO=eX.x-fj.x;eN=eX.y-fj.y;gs=gQ.x-gT.x;gr=gQ.y-gT.y;var jo=1/(eO*eO+eN*eN);var eF=1/(gs*gs+gr*gr);var io=-(eO*(fj.x-gT.x)+eN*(fj.y-gT.y))*jo;var h3=-(eO*(fj.x-gQ.x)+eN*(fj.y-gQ.y))*jo;var jN=-(gs*(gT.x-fj.x)+gr*(gT.y-fj.y))*eF;var jm=-(gs*(gT.x-eX.x)+gr*(gT.y-eX.y))*eF;if(io<0){io=0}else{if(io>1){io=1}}if(h3<0){h3=0}else{if(h3>1){h3=1}}if(jN<0){jN=0}else{if(jN>1){jN=1}}if(jm<0){jm=0}else{if(jm>1){jm=1}}var eJ=0;var eI=0;var fT=io;eJ=fj.x+eO*fT;eI=fj.y+eN*fT;var eu=0;var et=0;var iq=h3;eu=fj.x+eO*iq;et=fj.y+eN*iq;var jf=0;var je=0;var im=jN;jf=gT.x+gs*im;je=gT.y+gr*im;var iX=0;var iV=0;var il=jm;iX=gT.x+gs*il;iV=gT.y+gr*il;var jX=gT.x;var jW=gT.y;var jb=0;var ja=0;jb=eJ-jX;ja=eI-jW;var j0=jb*jb+ja*ja;var gH=gQ.x;var gf=gQ.y;var i9=0;var iU=0;i9=eu-gH;iU=et-gf;var iu=i9*i9+iU*iU;var gG=fj.x;var gd=fj.y;var i8=0;var iT=0;i8=jf-gG;iT=je-gd;var hg=i8*i8+iT*iT;var gF=eX.x;var gb=eX.y;var i7=0;var iS=0;i7=iX-gF;iS=iV-gb;var gS=i7*i7+iS*iS;var eL=0;var eK=0;var fE=null;if(j0<iu){eL=eJ;eK=eI;fE=gT}else{eL=eu;eK=et;fE=gQ;j0=iu}var ex=0;var ew=0;var fD=null;if(hg<gS){ex=jf;ew=je;fD=fj}else{ex=iX;ew=iV;fD=eX;hg=gS}if(j0<hg){fe.x=eL;fe.y=eK;fd.x=fE.x;fd.y=fE.y;hn=Math.sqrt(j0)}else{fd.x=ex;fd.y=ew;fe.x=fD.x;fe.y=fD.y;hn=Math.sqrt(hg)}if(hn!=0){iH.x=fd.x-fe.x;iH.y=fd.y-fe.y;var ij=1/hn;iH.x*=ij;iH.y*=ij;if(jA){iH.x=-iH.x;iH.y=-iH.y}}eY=hn}else{var jJ=0;var jI=0;jJ=j6.gp0.x;jI=j6.gp0.y;var jj=0;var jh=0;jj=j6.gp1.x;jh=j6.gp1.y;var i1=0;var i0=0;i1=jj-jJ;i0=jh-jI;var j1=j7.gnormy*jJ-j7.gnormx*jI;var iE=j7.gnormy*jj-j7.gnormx*jh;var hr=1/(iE-j1);var ih=(-j7.tp1-j1)*hr;if(ih>P.epsilon){jJ+=i1*ih;jI+=i0*ih}var ig=(-j7.tp0-iE)*hr;if(ig<-P.epsilon){jj+=i1*ig;jh+=i0*ig}var jY=jJ*j7.gnormx+jI*j7.gnormy-j7.gprojection;var jw=jj*j7.gnormx+jh*j7.gnormy-j7.gprojection;if(jY<jw){fd.x=jJ;fd.y=jI;var id=-jY;fe.x=fd.x+j7.gnormx*id;fe.y=fd.y+j7.gnormy*id;eY=jY}else{fd.x=jj;fd.y=jh;var ib=-jw;fe.x=fd.x+j7.gnormx*ib;fe.y=fd.y+j7.gnormy*ib;eY=jw}}}else{eY=1e+100}}else{eY=1e+100}}}var iI=eY+kq;var eM=jS*iH.x+jQ*iH.y;if(iI<P.distanceThresholdCCD){if(hj){break}var hV=0;var hS=0;hV=ka.x-kp.posx;hS=ka.y-kp.posy;var hD=0;var hA=0;hD=j9.x-ko.posx;hA=j9.y-ko.posy;var gN=eM-kp.sweep_angvel*(iH.y*hV-iH.x*hS)+ko.sweep_angvel*(iH.y*hD-iH.x*hA);if(gN>0){eC.slipped=true}if(gN<=0||iI<P.distanceThresholdCCD*0.5){break}}var iL=(fF-eM)*h7;if(iL<=0){iQ=-1;break}var kl=iI/iL;if(kl<0.000001){kl=0.000001}iQ+=kl;if(iQ>=1){iQ=1;var kf=iQ*h7;var kk=kf-kp.sweepTime;if(kk!=0){kp.sweepTime=kf;kp.posx+=kp.velx*kk;kp.posy+=kp.vely*kk;if(kp.angvel!=0){var ez=kp.sweep_angvel*kk;kp.rot+=ez;if(ez*ez>0.0001){kp.axisx=Math.sin(kp.rot);kp.axisy=Math.cos(kp.rot)}else{var it=ez*ez;var hb=1-0.5*it;var hE=1-it*it/8;var gg=(hb*kp.axisx+ez*kp.axisy)*hE;kp.axisy=(hb*kp.axisy-ez*kp.axisx)*hE;kp.axisx=gg}}}if(gx.type==0){gx.worldCOMx=kp.posx+(kp.axisy*gx.localCOMx-kp.axisx*gx.localCOMy);gx.worldCOMy=kp.posy+(gx.localCOMx*kp.axisx+gx.localCOMy*kp.axisy)}else{var ha=gx.polygon;var gW=ha.lverts.next;var el=ha.gverts.next;while(el!=null){var iY=el;var hX=gW;gW=gW.next;iY.x=kp.posx+(kp.axisy*hX.x-kp.axisx*hX.y);iY.y=kp.posy+(hX.x*kp.axisx+hX.y*kp.axisy);el=el.next}var fL=ha.edges.head;var ej=ha.gverts.next;var fI=ej;ej=ej.next;while(ej!=null){var fw=ej;var jy=fL.elt;fL=fL.next;jy.gnormx=kp.axisy*jy.lnormx-kp.axisx*jy.lnormy;jy.gnormy=jy.lnormx*kp.axisx+jy.lnormy*kp.axisy;jy.gprojection=kp.posx*jy.gnormx+kp.posy*jy.gnormy+jy.lprojection;jy.tp0=fI.y*jy.gnormx-fI.x*jy.gnormy;jy.tp1=fw.y*jy.gnormx-fw.x*jy.gnormy;fI=fw;ej=ej.next}var fu=ha.gverts.next;var jv=fL.elt;jv.gnormx=kp.axisy*jv.lnormx-kp.axisx*jv.lnormy;jv.gnormy=jv.lnormx*kp.axisx+jv.lnormy*kp.axisy;jv.gprojection=kp.posx*jv.gnormx+kp.posy*jv.gnormy+jv.lprojection;jv.tp0=fI.y*jv.gnormx-fI.x*jv.gnormy;jv.tp1=fu.y*jv.gnormx-fu.x*jv.gnormy}var kd=iQ*h7;var kj=kd-ko.sweepTime;if(kj!=0){ko.sweepTime=kd;ko.posx+=ko.velx*kj;ko.posy+=ko.vely*kj;if(ko.angvel!=0){var ey=ko.sweep_angvel*kj;ko.rot+=ey;if(ey*ey>0.0001){ko.axisx=Math.sin(ko.rot);ko.axisy=Math.cos(ko.rot)}else{var ir=ey*ey;var g9=1-0.5*ir;var hB=1-ir*ir/8;var ge=(g9*ko.axisx+ey*ko.axisy)*hB;ko.axisy=(g9*ko.axisy-ey*ko.axisx)*hB;ko.axisx=ge}}}if(gv.type==0){gv.worldCOMx=ko.posx+(ko.axisy*gv.localCOMx-ko.axisx*gv.localCOMy);gv.worldCOMy=ko.posy+(gv.localCOMx*ko.axisx+gv.localCOMy*ko.axisy)}else{var g8=gv.polygon;var gU=g8.lverts.next;var eh=g8.gverts.next;while(eh!=null){var iW=eh;var hU=gU;gU=gU.next;iW.x=ko.posx+(ko.axisy*hU.x-ko.axisx*hU.y);iW.y=ko.posy+(hU.x*ko.axisx+hU.y*ko.axisy);eh=eh.next}var fK=g8.edges.head;var eg=g8.gverts.next;var fH=eg;eg=eg.next;while(eg!=null){var fs=eg;var jt=fK.elt;fK=fK.next;jt.gnormx=ko.axisy*jt.lnormx-ko.axisx*jt.lnormy;jt.gnormy=jt.lnormx*ko.axisx+jt.lnormy*ko.axisy;jt.gprojection=ko.posx*jt.gnormx+ko.posy*jt.gnormy+jt.lprojection;jt.tp0=fH.y*jt.gnormx-fH.x*jt.gnormy;jt.tp1=fs.y*jt.gnormx-fs.x*jt.gnormy;fH=fs;eg=eg.next}var fq=g8.gverts.next;var jq=fK.elt;jq.gnormx=ko.axisy*jq.lnormx-ko.axisx*jq.lnormy;jq.gnormy=jq.lnormx*ko.axisx+jq.lnormy*ko.axisy;jq.gprojection=ko.posx*jq.gnormx+ko.posy*jq.gnormy+jq.lprojection;jq.tp0=fH.y*jq.gnormx-fH.x*jq.gnormy;jq.tp1=fq.y*jq.gnormx-fq.x*jq.gnormy}var jM=gx;var jl=gv;var jE=ka;var jg=j9;var gw;if(gx.type==0&&gv.type==0){var j3=gx.circle;var jT=gv.circle;var ke;var gc=0;var fQ=0;gc=jT.worldCOMx-j3.worldCOMx;fQ=jT.worldCOMy-j3.worldCOMy;var fa=Math.sqrt(gc*gc+fQ*fQ);ke=fa-(j3.radius+jT.radius);if(ke<1e+100){if(fa==0){gc=1;fQ=0}else{var h9=1/fa;gc*=h9;fQ*=h9}var h4=j3.radius;ka.x=j3.worldCOMx+gc*h4;ka.y=j3.worldCOMy+fQ*h4;var h1=-jT.radius;j9.x=jT.worldCOMx+gc*h1;j9.y=jT.worldCOMy+fQ*h1;iH.x=gc;iH.y=fQ}gw=ke}else{var hL=false;if(gx.type==0&&gv.type==1){var gu=gx;jM=gv;jl=gu;var j2=ka;jE=j9;jg=j2;hL=true}if(jM.type==1&&jl.type==0){var iA=jM.polygon;var eH=jl.circle;var hm=-1e+100;var hp=null;var ee=iA.edges.head;while(ee!=null){var ek=ee.elt;var kc=ek.gnormx*eH.worldCOMx+ek.gnormy*eH.worldCOMy-ek.gprojection-eH.radius;if(kc>1e+100){hm=kc;break}if(kc>0){if(kc>hm){hm=kc;hp=ek}}else{if(hm<0&&kc>hm){hm=kc;hp=ek}}ee=ee.next}if(hm<1e+100){var fh=hp.gp0;var eW=hp.gp1;var kb=eH.worldCOMy*hp.gnormx-eH.worldCOMx*hp.gnormy;if(kb<=fh.y*hp.gnormx-fh.x*hp.gnormy){var ga=0;var fP=0;ga=eH.worldCOMx-fh.x;fP=eH.worldCOMy-fh.y;var e9=Math.sqrt(ga*ga+fP*fP);hm=e9-eH.radius;if(hm<1e+100){if(e9==0){ga=1;fP=0}else{var h0=1/e9;ga*=h0;fP*=h0}jE.x=fh.x+ga*0;jE.y=fh.y+fP*0;var hY=-eH.radius;jg.x=eH.worldCOMx+ga*hY;jg.y=eH.worldCOMy+fP*hY;iH.x=ga;iH.y=fP}}else{if(kb>=eW.y*hp.gnormx-eW.x*hp.gnormy){var f8=0;var fO=0;f8=eH.worldCOMx-eW.x;fO=eH.worldCOMy-eW.y;var e8=Math.sqrt(f8*f8+fO*fO);hm=e8-eH.radius;if(hm<1e+100){if(e8==0){f8=1;fO=0}else{var hW=1/e8;f8*=hW;fO*=hW}jE.x=eW.x+f8*0;jE.y=eW.y+fO*0;var hT=-eH.radius;jg.x=eH.worldCOMx+f8*hT;jg.y=eH.worldCOMy+fO*hT;iH.x=f8;iH.y=fO}}else{var hR=-eH.radius;jg.x=eH.worldCOMx+hp.gnormx*hR;jg.y=eH.worldCOMy+hp.gnormy*hR;var hQ=-hm;jE.x=jg.x+hp.gnormx*hQ;jE.y=jg.y+hp.gnormy*hQ;iH.x=hp.gnormx;iH.y=hp.gnormy}}}if(hL){iH.x=-iH.x;iH.y=-iH.y}gw=hm}else{var iy=jM.polygon;var h5=jl.polygon;var hl=-1e+100;var hi=null;var g0=null;var eD=0;var ec=iy.edges.head;while(ec!=null){var ei=ec.elt;var gn=1e+100;var eb=h5.gverts.next;while(eb!=null){var e0=eb;var ie=ei.gnormx*e0.x+ei.gnormy*e0.y;if(ie<gn){gn=ie}eb=eb.next}gn-=ei.gprojection;if(gn>1e+100){hl=gn;break}if(gn>0){if(gn>hl){hl=gn;hi=ei;eD=1}}else{if(hl<0&&gn>hl){hl=gn;hi=ei;eD=1}}ec=ec.next}if(hl<1e+100){var ea=h5.edges.head;while(ea!=null){var ef=ea.elt;var gm=1e+100;var ks=iy.gverts.next;while(ks!=null){var eV=ks;var ic=ef.gnormx*eV.x+ef.gnormy*eV.y;if(ic<gm){gm=ic}ks=ks.next}gm-=ef.gprojection;if(gm>1e+100){hl=gm;break}if(gm>0){if(gm>hl){hl=gm;g0=ef;eD=2}}else{if(hl<0&&gm>hl){hl=gm;g0=ef;eD=2}}ea=ea.next}if(hl<1e+100){var gK;var hN;if(eD==1){gK=h5;hN=hi}else{gK=iy;hN=g0;var gt=jE;jE=jg;jg=gt;hL=!hL}var hv=null;var gl=1e+100;var kr=gK.edges.head;while(kr!=null){var ed=kr.elt;var ia=hN.gnormx*ed.gnormx+hN.gnormy*ed.gnormy;if(ia<gl){gl=ia;hv=ed}kr=kr.next}if(hL){iH.x=-hN.gnormx;iH.y=-hN.gnormy}else{iH.x=hN.gnormx;iH.y=hN.gnormy}if(hl>=0){var fg=hN.gp0;var eT=hN.gp1;var hh=hv.gp0;var gV=hv.gp1;var fV=0;var fG=0;var hu=0;var hq=0;fV=eT.x-fg.x;fG=eT.y-fg.y;hu=gV.x-hh.x;hq=gV.y-hh.y;var j8=1/(fV*fV+fG*fG);var gp=1/(hu*hu+hq*hq);var ep=-(fV*(fg.x-hh.x)+fG*(fg.y-hh.y))*j8;var hP=-(fV*(fg.x-gV.x)+fG*(fg.y-gV.y))*j8;var jK=-(hu*(hh.x-fg.x)+hq*(hh.y-fg.y))*gp;var jk=-(hu*(hh.x-eT.x)+hq*(hh.y-eT.y))*gp;if(ep<0){ep=0}else{if(ep>1){ep=1}}if(hP<0){hP=0}else{if(hP>1){hP=1}}if(jK<0){jK=0}else{if(jK>1){jK=1}}if(jk<0){jk=0}else{if(jk>1){jk=1}}var j5=0;var jV=0;var hK=ep;j5=fg.x+fV*hK;jV=fg.y+fG*hK;var iF=0;var ix=0;var hJ=hP;iF=fg.x+fV*hJ;ix=fg.y+fG*hJ;var eP=0;var eA=0;var hI=jK;eP=hh.x+hu*hI;eA=hh.y+hq*hI;var ji=0;var i2=0;var hH=jk;ji=hh.x+hu*hH;i2=hh.y+hq*hH;var gE=hh.x;var f9=hh.y;var i6=0;var iR=0;i6=j5-gE;iR=jV-f9;var iD=i6*i6+iR*iR;var gD=gV.x;var f7=gV.y;var i5=0;var iP=0;i5=iF-gD;iP=ix-f7;var ip=i5*i5+iP*iP;var gC=fg.x;var f6=fg.y;var i4=0;var iO=0;i4=eP-gC;iO=eA-f6;var hd=i4*i4+iO*iO;var gA=eT.x;var f5=eT.y;var i3=0;var iN=0;i3=ji-gA;iN=i2-f5;var gO=i3*i3+iN*iN;var gL=0;var gI=0;var iM=null;if(iD<ip){gL=j5;gI=jV;iM=hh}else{gL=iF;gI=ix;iM=gV;iD=ip}var eR=0;var eG=0;var hw=null;if(hd<gO){eR=eP;eG=eA;hw=fg}else{eR=ji;eG=i2;hw=eT;hd=gO}if(iD<hd){jE.x=gL;jE.y=gI;jg.x=iM.x;jg.y=iM.y;hl=Math.sqrt(iD)}else{jg.x=eR;jg.y=eG;jE.x=hw.x;jE.y=hw.y;hl=Math.sqrt(hd)}if(hl!=0){iH.x=jg.x-jE.x;iH.y=jg.y-jE.y;var hF=1/hl;iH.x*=hF;iH.y*=hF;if(hL){iH.x=-iH.x;iH.y=-iH.y}}gw=hl}else{var iJ=0;var iB=0;iJ=hv.gp0.x;iB=hv.gp0.y;var hk=0;var g7=0;hk=hv.gp1.x;g7=hv.gp1.y;var ff=0;var eU=0;ff=hk-iJ;eU=g7-iB;var iK=hN.gnormy*iJ-hN.gnormx*iB;var iC=hN.gnormy*hk-hN.gnormx*g7;var jx=1/(iC-iK);var hC=(-hN.tp1-iK)*jx;if(hC>P.epsilon){iJ+=ff*hC;iB+=eU*hC}var hz=(-hN.tp0-iC)*jx;if(hz<-P.epsilon){hk+=ff*hz;g7+=eU*hz}var ht=iJ*hN.gnormx+iB*hN.gnormy-hN.gprojection;var f3=hk*hN.gnormx+g7*hN.gnormy-hN.gprojection;if(ht<f3){jg.x=iJ;jg.y=iB;var hy=-ht;jE.x=jg.x+hN.gnormx*hy;jE.y=jg.y+hN.gnormy*hy;gw=ht}else{jg.x=hk;jg.y=g7;var hx=-f3;jE.x=jg.x+hN.gnormx*hx;jE.y=jg.y+hN.gnormy*hx;gw=f3}}}else{gw=1e+100}}else{gw=1e+100}}}var fo=gw+kq;var eQ=jS*iH.x+jQ*iH.y;if(fo<P.distanceThresholdCCD){if(hj){break}var h8=0;var hO=0;h8=ka.x-kp.posx;hO=ka.y-kp.posy;var gM=0;var gJ=0;gM=j9.x-ko.posx;gJ=j9.y-ko.posy;var kn=eQ-kp.sweep_angvel*(iH.y*h8-iH.x*hO)+ko.sweep_angvel*(iH.y*gM-iH.x*gJ);if(kn>0){eC.slipped=true}if(kn<=0||fo<P.distanceThresholdCCD*0.5){break}}iQ=-1;break}if(++eS>=40){if(iI>kq){eC.failed=true}break}}eC.toi=iQ};de.staticSweep=function(ey,hx,gy,jE){var gg=ey.s1;var ge=ey.s2;var jD=gg.body;var ja=0;var i8=0;ja=-jD.velx;i8=-jD.vely;var gC=jD.sweep_angvel;if(gC<0){gC=-gC}var fu=gg.sweepCoef*gC;var jt=ey.c1;var jr=ey.c2;var h2=ey.axis;var ib=gy;var eO=0;while(true){var iy=ib*hx;var et=iy-jD.sweepTime;if(et!=0){jD.sweepTime=iy;jD.posx+=jD.velx*et;jD.posy+=jD.vely*et;if(jD.angvel!=0){var iz=jD.sweep_angvel*et;jD.rot+=iz;if(iz*iz>0.0001){jD.axisx=Math.sin(jD.rot);jD.axisy=Math.cos(jD.rot)}else{var jh=iz*iz;var iU=1-0.5*jh;var iX=1-jh*jh/8;var gG=(iU*jD.axisx+iz*jD.axisy)*iX;jD.axisy=(iU*jD.axisy-iz*jD.axisx)*iX;jD.axisx=gG}}}if(gg.type==0){gg.worldCOMx=jD.posx+(jD.axisy*gg.localCOMx-jD.axisx*gg.localCOMy);gg.worldCOMy=jD.posy+(gg.localCOMx*jD.axisx+gg.localCOMy*jD.axisy)}else{var gM=gg.polygon;var gY=gM.lverts.next;var h1=gM.gverts.next;while(h1!=null){var i3=h1;var iY=gY;gY=gY.next;i3.x=jD.posx+(jD.axisy*iY.x-jD.axisx*iY.y);i3.y=jD.posy+(iY.x*jD.axisx+iY.y*jD.axisy);h1=h1.next}var hR=gM.edges.head;var fk=gM.gverts.next;var iM=fk;fk=fk.next;while(fk!=null){var iL=fk;var i6=hR.elt;hR=hR.next;i6.gnormx=jD.axisy*i6.lnormx-jD.axisx*i6.lnormy;i6.gnormy=i6.lnormx*jD.axisx+i6.lnormy*jD.axisy;i6.gprojection=jD.posx*i6.gnormx+jD.posy*i6.gnormy+i6.lprojection;i6.tp0=iM.y*i6.gnormx-iM.x*i6.gnormy;i6.tp1=iL.y*i6.gnormx-iL.x*i6.gnormy;iM=iL;fk=fk.next}var fq=gM.gverts.next;var iV=hR.elt;iV.gnormx=jD.axisy*iV.lnormx-jD.axisx*iV.lnormy;iV.gnormy=iV.lnormx*jD.axisx+iV.lnormy*jD.axisy;iV.gprojection=jD.posx*iV.gnormx+jD.posy*iV.gnormy+iV.lprojection;iV.tp0=iM.y*iV.gnormx-iM.x*iV.gnormy;iV.tp1=fq.y*iV.gnormx-fq.x*iV.gnormy}var i7=gg;var iJ=ge;var e5=jt;var e0=jr;var eT;if(gg.type==0&&ge.type==0){var jm=gg.circle;var jc=ge.circle;var hf;var f3=0;var gF=0;f3=jc.worldCOMx-jm.worldCOMx;gF=jc.worldCOMy-jm.worldCOMy;var gU=Math.sqrt(f3*f3+gF*gF);hf=gU-(jm.radius+jc.radius);if(hf<1e+100){if(gU==0){f3=1;gF=0}else{var iN=1/gU;f3*=iN;gF*=iN}var fP=jm.radius;jt.x=jm.worldCOMx+f3*fP;jt.y=jm.worldCOMy+gF*fP;var fN=-jc.radius;jr.x=jc.worldCOMx+f3*fN;jr.y=jc.worldCOMy+gF*fN;h2.x=f3;h2.y=gF}eT=hf}else{var iS=false;if(gg.type==0&&ge.type==1){var gk=gg;i7=ge;iJ=gk;var gi=jt;e5=jr;e0=gi;iS=true}if(i7.type==1&&iJ.type==0){var fy=i7.polygon;var ht=iJ.circle;var fK=-1e+100;var eq=null;var fi=fy.edges.head;while(fi!=null){var i9=fi.elt;var jx=i9.gnormx*ht.worldCOMx+i9.gnormy*ht.worldCOMy-i9.gprojection-ht.radius;if(jx>1e+100){fK=jx;break}if(jx>0){if(jx>fK){fK=jx;eq=i9}}else{if(fK<0&&jx>fK){fK=jx;eq=i9}}fi=fi.next}if(fK<1e+100){var fr=eq.gp0;var eU=eq.gp1;var jz=ht.worldCOMy*eq.gnormx-ht.worldCOMx*eq.gnormy;if(jz<=fr.y*eq.gnormx-fr.x*eq.gnormy){var f2=0;var fD=0;f2=ht.worldCOMx-fr.x;fD=ht.worldCOMy-fr.y;var eZ=Math.sqrt(f2*f2+fD*fD);fK=eZ-ht.radius;if(fK<1e+100){if(eZ==0){f2=1;fD=0}else{var fM=1/eZ;f2*=fM;fD*=fM}e5.x=fr.x+f2*0;e5.y=fr.y+fD*0;var fL=-ht.radius;e0.x=ht.worldCOMx+f2*fL;e0.y=ht.worldCOMy+fD*fL;h2.x=f2;h2.y=fD}}else{if(jz>=eU.y*eq.gnormx-eU.x*eq.gnormy){var f1=0;var fC=0;f1=ht.worldCOMx-eU.x;fC=ht.worldCOMy-eU.y;var eY=Math.sqrt(f1*f1+fC*fC);fK=eY-ht.radius;if(fK<1e+100){if(eY==0){f1=1;fC=0}else{var fJ=1/eY;f1*=fJ;fC*=fJ}e5.x=eU.x+f1*0;e5.y=eU.y+fC*0;var fI=-ht.radius;e0.x=ht.worldCOMx+f1*fI;e0.y=ht.worldCOMy+fC*fI;h2.x=f1;h2.y=fC}}else{var fG=-ht.radius;e0.x=ht.worldCOMx+eq.gnormx*fG;e0.y=ht.worldCOMy+eq.gnormy*fG;var fF=-fK;e5.x=e0.x+eq.gnormx*fF;e5.y=e0.y+eq.gnormy*fF;h2.x=eq.gnormx;h2.y=eq.gnormy}}}if(iS){h2.x=-h2.x;h2.y=-h2.y}eT=fK}else{var hU=i7.polygon;var gL=iJ.polygon;var gT=-1e+100;var ep=null;var eo=null;var gE=0;var fh=hU.edges.head;while(fh!=null){var em=fh.elt;var eA=1e+100;var fg=gL.gverts.next;while(fg!=null){var fp=fg;var iZ=em.gnormx*fp.x+em.gnormy*fp.y;if(iZ<eA){eA=iZ}fg=fg.next}eA-=em.gprojection;if(eA>1e+100){gT=eA;break}if(eA>0){if(eA>gT){gT=eA;ep=em;gE=1}}else{if(gT<0&&eA>gT){gT=eA;ep=em;gE=1}}fh=fh.next}if(gT<1e+100){var fe=gL.edges.head;while(fe!=null){var el=fe.elt;var f9=1e+100;var fd=hU.gverts.next;while(fd!=null){var fo=fd;var hJ=el.gnormx*fo.x+el.gnormy*fo.y;if(hJ<f9){f9=hJ}fd=fd.next}f9-=el.gprojection;if(f9>1e+100){gT=f9;break}if(f9>0){if(f9>gT){gT=f9;eo=el;gE=2}}else{if(gT<0&&f9>gT){gT=f9;eo=el;gE=2}}fe=fe.next}if(gT<1e+100){var gv;var jp;if(gE==1){gv=gL;jp=ep}else{gv=hU;jp=eo;var gh=e5;e5=e0;e0=gh;iS=!iS}var jo=null;var f7=1e+100;var fc=gv.edges.head;while(fc!=null){var ek=fc.elt;var hH=jp.gnormx*ek.gnormx+jp.gnormy*ek.gnormy;if(hH<f7){f7=hH;jo=ek}fc=fc.next}if(iS){h2.x=-jp.gnormx;h2.y=-jp.gnormy}else{h2.x=jp.gnormx;h2.y=jp.gnormy}if(gT>=0){var fa=jp.gp0;var eS=jp.gp1;var gz=jo.gp0;var gx=jo.gp1;var eK=0;var eJ=0;var gb=0;var ga=0;eK=eS.x-fa.x;eJ=eS.y-fa.y;gb=gx.x-gz.x;ga=gx.y-gz.y;var iK=1/(eK*eK+eJ*eJ);var eB=1/(gb*gb+ga*ga);var hM=-(eK*(fa.x-gz.x)+eJ*(fa.y-gz.y))*iK;var hu=-(eK*(fa.x-gx.x)+eJ*(fa.y-gx.y))*iK;var i5=-(gb*(gz.x-fa.x)+ga*(gz.y-fa.y))*eB;var iI=-(gb*(gz.x-eS.x)+ga*(gz.y-eS.y))*eB;if(hM<0){hM=0}else{if(hM>1){hM=1}}if(hu<0){hu=0}else{if(hu>1){hu=1}}if(i5<0){i5=0}else{if(i5>1){i5=1}}if(iI<0){iI=0}else{if(iI>1){iI=1}}var eF=0;var eE=0;var fE=hM;eF=fa.x+eK*fE;eE=fa.y+eJ*fE;var es=0;var er=0;var hN=hu;es=fa.x+eK*hN;er=fa.y+eJ*hN;var iB=0;var iA=0;var hL=i5;iB=gz.x+gb*hL;iA=gz.y+ga*hL;var ii=0;var ih=0;var hK=iI;ii=gz.x+gb*hK;ih=gz.y+ga*hK;var jf=gz.x;var je=gz.y;var ix=0;var iw=0;ix=eF-jf;iw=eE-je;var ji=ix*ix+iw*iw;var gq=gx.x;var fY=gx.y;var iv=0;var ig=0;iv=es-gq;ig=er-fY;var hQ=iv*iv+ig*ig;var gp=fa.x;var fW=fa.y;var iu=0;var ie=0;iu=iB-gp;ie=iA-fW;var gN=iu*iu+ie*ie;var go=eS.x;var fU=eS.y;var it=0;var id=0;it=ii-go;id=ih-fU;var iT=it*it+id*id;var eH=0;var eG=0;var ft=null;if(ji<hQ){eH=eF;eG=eE;ft=gz}else{eH=es;eG=er;ft=gx;ji=hQ}var ev=0;var eu=0;var fs=null;if(gN<iT){ev=iB;eu=iA;fs=fa}else{ev=ii;eu=ih;fs=eS;gN=iT}if(ji<gN){e5.x=eH;e5.y=eG;e0.x=ft.x;e0.y=ft.y;gT=Math.sqrt(ji)}else{e0.x=ev;e0.y=eu;e5.x=fs.x;e5.y=fs.y;gT=Math.sqrt(gN)}if(gT!=0){h2.x=e0.x-e5.x;h2.y=e0.y-e5.y;var hI=1/gT;h2.x*=hI;h2.y*=hI;if(iS){h2.x=-h2.x;h2.y=-h2.y}}eT=gT}else{var i1=0;var i0=0;i1=jo.gp0.x;i0=jo.gp0.y;var iE=0;var iD=0;iE=jo.gp1.x;iD=jo.gp1.y;var il=0;var ik=0;il=iE-i1;ik=iD-i0;var jj=jp.gnormy*i1-jp.gnormx*i0;var hZ=jp.gnormy*iE-jp.gnormx*iD;var gX=1/(hZ-jj);var hG=(-jp.tp1-jj)*gX;if(hG>P.epsilon){i1+=il*hG;i0+=ik*hG}var hE=(-jp.tp0-hZ)*gX;if(hE<-P.epsilon){iE+=il*hE;iD+=ik*hE}var jg=i1*jp.gnormx+i0*jp.gnormy-jp.gprojection;var iO=iE*jp.gnormx+iD*jp.gnormy-jp.gprojection;if(jg<iO){e0.x=i1;e0.y=i0;var hC=-jg;e5.x=e0.x+jp.gnormx*hC;e5.y=e0.y+jp.gnormy*hC;eT=jg}else{e0.x=iE;e0.y=iD;var hA=-iO;e5.x=e0.x+jp.gnormx*hA;e5.y=e0.y+jp.gnormy*hA;eT=iO}}}else{eT=1e+100}}else{eT=1e+100}}}var h3=eT+jE;var eI=ja*h2.x+i8*h2.y;if(h3<P.distanceThresholdCCD){var hn=0;var hl=0;hn=jt.x-jD.posx;hl=jt.y-jD.posy;var gu=eI-jD.sweep_angvel*(h2.y*hn-h2.x*hl);if(gu>0){ey.slipped=true}if(gu<=0||h3<P.distanceThresholdCCD*0.5){break}}var h6=(fu-eI)*hx;if(h6<=0){ib=-1;break}var jB=h3/h6;if(jB<0.000001){jB=0.000001}ib+=jB;if(ib>=1){ib=1;var jy=ib*hx;var jA=jy-jD.sweepTime;if(jA!=0){jD.sweepTime=jy;jD.posx+=jD.velx*jA;jD.posy+=jD.vely*jA;if(jD.angvel!=0){var ew=jD.sweep_angvel*jA;jD.rot+=ew;if(ew*ew>0.0001){jD.axisx=Math.sin(jD.rot);jD.axisy=Math.cos(jD.rot)}else{var hP=ew*ew;var gJ=1-0.5*hP;var g9=1-hP*hP/8;var f0=(gJ*jD.axisx+ew*jD.axisy)*g9;jD.axisy=(gJ*jD.axisy-ew*jD.axisx)*g9;jD.axisx=f0}}}if(gg.type==0){gg.worldCOMx=jD.posx+(jD.axisy*gg.localCOMx-jD.axisx*gg.localCOMy);gg.worldCOMy=jD.posy+(gg.localCOMx*jD.axisx+gg.localCOMy*jD.axisy)}else{var gI=gg.polygon;var gB=gI.lverts.next;var fb=gI.gverts.next;while(fb!=null){var ij=fb;var hq=gB;gB=gB.next;ij.x=jD.posx+(jD.axisy*hq.x-jD.axisx*hq.y);ij.y=jD.posy+(hq.x*jD.axisx+hq.y*jD.axisy);fb=fb.next}var fx=gI.edges.head;var e9=gI.gverts.next;var fw=e9;e9=e9.next;while(e9!=null){var fn=e9;var iR=fx.elt;fx=fx.next;iR.gnormx=jD.axisy*iR.lnormx-jD.axisx*iR.lnormy;iR.gnormy=iR.lnormx*jD.axisx+iR.lnormy*jD.axisy;iR.gprojection=jD.posx*iR.gnormx+jD.posy*iR.gnormy+iR.lprojection;iR.tp0=fw.y*iR.gnormx-fw.x*iR.gnormy;iR.tp1=fn.y*iR.gnormx-fn.x*iR.gnormy;fw=fn;e9=e9.next}var fm=gI.gverts.next;var iQ=fx.elt;iQ.gnormx=jD.axisy*iQ.lnormx-jD.axisx*iQ.lnormy;iQ.gnormy=iQ.lnormx*jD.axisx+iQ.lnormy*jD.axisy;iQ.gprojection=jD.posx*iQ.gnormx+jD.posy*iQ.gnormy+iQ.lprojection;iQ.tp0=fw.y*iQ.gnormx-fw.x*iQ.gnormy;iQ.tp1=fm.y*iQ.gnormx-fm.x*iQ.gnormy}var i4=gg;var iH=ge;var iW=jt;var iC=jr;var gf;if(gg.type==0&&ge.type==0){var jl=gg.circle;var jb=ge.circle;var jv;var fZ=0;var fB=0;fZ=jb.worldCOMx-jl.worldCOMx;fB=jb.worldCOMy-jl.worldCOMy;var eX=Math.sqrt(fZ*fZ+fB*fB);jv=eX-(jl.radius+jb.radius);if(jv<1e+100){if(eX==0){fZ=1;fB=0}else{var hz=1/eX;fZ*=hz;fB*=hz}var hv=jl.radius;jt.x=jl.worldCOMx+fZ*hv;jt.y=jl.worldCOMy+fB*hv;var hs=-jb.radius;jr.x=jb.worldCOMx+fZ*hs;jr.y=jb.worldCOMy+fB*hs;h2.x=fZ;h2.y=fB}gf=jv}else{var he=false;if(gg.type==0&&ge.type==1){var gd=gg;i4=ge;iH=gd;var jk=jt;iW=jr;iC=jk;he=true}if(i4.type==1&&iH.type==0){var hV=i4.polygon;var eD=iH.circle;var gS=-1e+100;var gV=null;var ej=hV.edges.head;while(ej!=null){var ei=ej.elt;var ju=ei.gnormx*eD.worldCOMx+ei.gnormy*eD.worldCOMy-ei.gprojection-eD.radius;if(ju>1e+100){gS=ju;break}if(ju>0){if(ju>gS){gS=ju;gV=ei}}else{if(gS<0&&ju>gS){gS=ju;gV=ei}}ej=ej.next}if(gS<1e+100){var e8=gV.gp0;var eR=gV.gp1;var jw=eD.worldCOMy*gV.gnormx-eD.worldCOMx*gV.gnormy;if(jw<=e8.y*gV.gnormx-e8.x*gV.gnormy){var fX=0;var fA=0;fX=eD.worldCOMx-e8.x;fA=eD.worldCOMy-e8.y;var eW=Math.sqrt(fX*fX+fA*fA);gS=eW-eD.radius;if(gS<1e+100){if(eW==0){fX=1;fA=0}else{var hr=1/eW;fX*=hr;fA*=hr}iW.x=e8.x+fX*0;iW.y=e8.y+fA*0;var hp=-eD.radius;iC.x=eD.worldCOMx+fX*hp;iC.y=eD.worldCOMy+fA*hp;h2.x=fX;h2.y=fA}}else{if(jw>=eR.y*gV.gnormx-eR.x*gV.gnormy){var fV=0;var fz=0;fV=eD.worldCOMx-eR.x;fz=eD.worldCOMy-eR.y;var eV=Math.sqrt(fV*fV+fz*fz);gS=eV-eD.radius;if(gS<1e+100){if(eV==0){fV=1;fz=0}else{var ho=1/eV;fV*=ho;fz*=ho}iW.x=eR.x+fV*0;iW.y=eR.y+fz*0;var hm=-eD.radius;iC.x=eD.worldCOMx+fV*hm;iC.y=eD.worldCOMy+fz*hm;h2.x=fV;h2.y=fz}}else{var hk=-eD.radius;iC.x=eD.worldCOMx+gV.gnormx*hk;iC.y=eD.worldCOMy+gV.gnormy*hk;var hj=-gS;iW.x=iC.x+gV.gnormx*hj;iW.y=iC.y+gV.gnormy*hj;h2.x=gV.gnormx;h2.y=gV.gnormy}}}if(he){h2.x=-h2.x;h2.y=-h2.y}gf=gS}else{var hT=i4.polygon;var hw=iH.polygon;var gR=-1e+100;var gP=null;var gD=null;var ez=0;var eh=hT.edges.head;while(eh!=null){var eg=eh.elt;var f6=1e+100;var ef=hw.gverts.next;while(ef!=null){var fl=ef;var hF=eg.gnormx*fl.x+eg.gnormy*fl.y;if(hF<f6){f6=hF}ef=ef.next}f6-=eg.gprojection;if(f6>1e+100){gR=f6;break}if(f6>0){if(f6>gR){gR=f6;gP=eg;ez=1}}else{if(gR<0&&f6>gR){gR=f6;gP=eg;ez=1}}eh=eh.next}if(gR<1e+100){var ed=hw.edges.head;while(ed!=null){var ee=ed.elt;var f5=1e+100;var ec=hT.gverts.next;while(ec!=null){var fj=ec;var hD=ee.gnormx*fj.x+ee.gnormy*fj.y;if(hD<f5){f5=hD}ec=ec.next}f5-=ee.gprojection;if(f5>1e+100){gR=f5;break}if(f5>0){if(f5>gR){gR=f5;gD=ee;ez=2}}else{if(gR<0&&f5>gR){gR=f5;gD=ee;ez=2}}ed=ed.next}if(gR<1e+100){var gs;var hg;if(ez==1){gs=hw;hg=gP}else{gs=hT;hg=gD;var gc=iW;iW=iC;iC=gc;he=!he}var g2=null;var f4=1e+100;var ea=gs.edges.head;while(ea!=null){var eb=ea.elt;var hB=hg.gnormx*eb.gnormx+hg.gnormy*eb.gnormy;if(hB<f4){f4=hB;g2=eb}ea=ea.next}if(he){h2.x=-hg.gnormx;h2.y=-hg.gnormy}else{h2.x=hg.gnormx;h2.y=hg.gnormy}if(gR>=0){var e7=hg.gp0;var eQ=hg.gp1;var gO=g2.gp0;var gA=g2.gp1;var fH=0;var fv=0;var g0=0;var gW=0;fH=eQ.x-e7.x;fv=eQ.y-e7.y;g0=gA.x-gO.x;gW=gA.y-gO.y;var jq=1/(fH*fH+fv*fv);var f8=1/(g0*g0+gW*gW);var en=-(fH*(e7.x-gO.x)+fv*(e7.y-gO.y))*jq;var hi=-(fH*(e7.x-gA.x)+fv*(e7.y-gA.y))*jq;var i2=-(g0*(gO.x-e7.x)+gW*(gO.y-e7.y))*f8;var iG=-(g0*(gO.x-eQ.x)+gW*(gO.y-eQ.y))*f8;if(en<0){en=0}else{if(en>1){en=1}}if(hi<0){hi=0}else{if(hi>1){hi=1}}if(i2<0){i2=0}else{if(i2>1){i2=1}}if(iG<0){iG=0}else{if(iG>1){iG=1}}var jn=0;var jd=0;var hd=en;jn=e7.x+fH*hd;jd=e7.y+fv*hd;var h0=0;var hS=0;var hc=hi;h0=e7.x+fH*hc;hS=e7.y+fv*hc;var eL=0;var ex=0;var hb=i2;eL=gO.x+g0*hb;ex=gO.y+gW*hb;var iF=0;var im=0;var ha=iG;iF=gO.x+g0*ha;im=gO.y+gW*ha;var gn=gO.x;var fT=gO.y;var ir=0;var ic=0;ir=jn-gn;ic=jd-fT;var hY=ir*ir+ic*ic;var gm=gA.x;var fS=gA.y;var iq=0;var ia=0;iq=h0-gm;ia=hS-fS;var hO=iq*iq+ia*ia;var gl=e7.x;var fR=e7.y;var ip=0;var h9=0;ip=eL-gl;h9=ex-fR;var gK=ip*ip+h9*h9;var gj=eQ.x;var fQ=eQ.y;var io=0;var h8=0;io=iF-gj;h8=im-fQ;var gw=io*io+h8*h8;var gt=0;var gr=0;var h7=null;if(hY<hO){gt=jn;gr=jd;h7=gO}else{gt=h0;gr=hS;h7=gA;hY=hO}var eN=0;var eC=0;var g3=null;if(gK<gw){eN=eL;eC=ex;g3=e7}else{eN=iF;eC=im;g3=eQ;gK=gw}if(hY<gK){iW.x=gt;iW.y=gr;iC.x=h7.x;iC.y=h7.y;gR=Math.sqrt(hY)}else{iC.x=eN;iC.y=eC;iW.x=g3.x;iW.y=g3.y;gR=Math.sqrt(gK)}if(gR!=0){h2.x=iC.x-iW.x;h2.y=iC.y-iW.y;var g8=1/gR;h2.x*=g8;h2.y*=g8;if(he){h2.x=-h2.x;h2.y=-h2.y}}gf=gR}else{var h4=0;var hW=0;h4=g2.gp0.x;hW=g2.gp0.y;var gQ=0;var gH=0;gQ=g2.gp1.x;gH=g2.gp1.y;var e6=0;var eP=0;e6=gQ-h4;eP=gH-hW;var h5=hg.gnormy*h4-hg.gnormx*hW;var hX=hg.gnormy*gQ-hg.gnormx*gH;var iP=1/(hX-h5);var g7=(-hg.tp1-h5)*iP;if(g7>P.epsilon){h4+=e6*g7;hW+=eP*g7}var g6=(-hg.tp0-hX)*iP;if(g6<-P.epsilon){gQ+=e6*g6;gH+=eP*g6}var gZ=h4*hg.gnormx+hW*hg.gnormy-hg.gprojection;var fO=gQ*hg.gnormx+gH*hg.gnormy-hg.gprojection;if(gZ<fO){iC.x=h4;iC.y=hW;var g5=-gZ;iW.x=iC.x+hg.gnormx*g5;iW.y=iC.y+hg.gnormy*g5;gf=gZ}else{iC.x=gQ;iC.y=gH;var g4=-fO;iW.x=iC.x+hg.gnormx*g4;iW.y=iC.y+hg.gnormy*g4;gf=fO}}}else{gf=1e+100}}else{gf=1e+100}}}var ff=gf+jE;var eM=ja*h2.x+i8*h2.y;if(ff<P.distanceThresholdCCD){var hy=0;var hh=0;hy=jt.x-jD.posx;hh=jt.y-jD.posy;var jC=eM-jD.sweep_angvel*(h2.y*hy-h2.x*hh);if(jC>0){ey.slipped=true}if(jC<=0||ff<P.distanceThresholdCCD*0.5){break}}ib=-1;break}if(++eO>=40){if(h3>jE){ey.failed=true}break}}ey.toi=ib};de.distanceBody=function(gu,gt,eI,eH){var fu;if(bB.zpp_pool==null){fu=new bB()}else{fu=bB.zpp_pool;bB.zpp_pool=fu.next;fu.next=null}fu.weak=false;var ft;if(bB.zpp_pool==null){ft=new bB()}else{ft=bB.zpp_pool;bB.zpp_pool=ft.next;ft.next=null}ft.weak=false;var gh;if(bB.zpp_pool==null){gh=new bB()}else{gh=bB.zpp_pool;bB.zpp_pool=gh.next;gh.next=null}gh.weak=false;var fQ=1e+100;var eo=gu.shapes.head;while(eo!=null){var fC=eo.elt;var e0=gt.shapes.head;while(e0!=null){var fB=e0.elt;var fa=fC;var eQ=fB;var e6=fu;var eG=ft;var fF;if(fC.type==0&&fB.type==0){var gp=fC.circle;var go=fB.circle;var fw;var f5=0;var f4=0;f5=go.worldCOMx-gp.worldCOMx;f4=go.worldCOMy-gp.worldCOMy;var fA=Math.sqrt(f5*f5+f4*f4);fw=fA-(gp.radius+go.radius);if(fw<fQ){if(fA==0){f5=1;f4=0}else{var fK=1/fA;f5*=fK;f4*=fK}var fs=gp.radius;e6.x=gp.worldCOMx+f5*fs;e6.y=gp.worldCOMy+f4*fs;var fr=-go.radius;eG.x=go.worldCOMx+f5*fr;eG.y=go.worldCOMy+f4*fr;gh.x=f5;gh.y=f4}fF=fw}else{var fx=false;if(fC.type==0&&fB.type==1){var gb=fC;fa=fB;eQ=gb;var fj=e6;e6=eG;eG=fj;fx=true}if(fa.type==1&&eQ.type==0){var fM=fa.polygon;var ey=eQ.circle;var eB=-1e+100;var ef=null;var eZ=fM.edges.head;while(eZ!=null){var fV=eZ.elt;var fv=fV.gnormx*ey.worldCOMx+fV.gnormy*ey.worldCOMy-fV.gprojection-ey.radius;if(fv>fQ){eB=fv;break}if(fv>0){if(fv>eB){eB=fv;ef=fV}}else{if(eB<0&&fv>eB){eB=fv;ef=fV}}eZ=eZ.next}if(eB<fQ){var e8=ef.gp0;var e7=ef.gp1;var fG=ey.worldCOMy*ef.gnormx-ey.worldCOMx*ef.gnormy;if(fG<=e8.y*ef.gnormx-e8.x*ef.gnormy){var eq=0;var ei=0;eq=ey.worldCOMx-e8.x;ei=ey.worldCOMy-e8.y;var gw=Math.sqrt(eq*eq+ei*ei);eB=gw-ey.radius;if(eB<fQ){if(gw==0){eq=1;ei=0}else{var fq=1/gw;eq*=fq;ei*=fq}e6.x=e8.x+eq*0;e6.y=e8.y+ei*0;var fp=-ey.radius;eG.x=ey.worldCOMx+eq*fp;eG.y=ey.worldCOMy+ei*fp;gh.x=eq;gh.y=ei}}else{if(fG>=e7.y*ef.gnormx-e7.x*ef.gnormy){var ep=0;var eh=0;ep=ey.worldCOMx-e7.x;eh=ey.worldCOMy-e7.y;var gv=Math.sqrt(ep*ep+eh*eh);eB=gv-ey.radius;if(eB<fQ){if(gv==0){ep=1;eh=0}else{var fo=1/gv;ep*=fo;eh*=fo}e6.x=e7.x+ep*0;e6.y=e7.y+eh*0;var fn=-ey.radius;eG.x=ey.worldCOMx+ep*fn;eG.y=ey.worldCOMy+eh*fn;gh.x=ep;gh.y=eh}}else{var fm=-ey.radius;eG.x=ey.worldCOMx+ef.gnormx*fm;eG.y=ey.worldCOMy+ef.gnormy*fm;var gn=-eB;e6.x=eG.x+ef.gnormx*gn;e6.y=eG.y+ef.gnormy*gn;gh.x=ef.gnormx;gh.y=ef.gnormy}}}if(fx){gh.x=-gh.x;gh.y=-gh.y}fF=eB}else{var f9=fa.polygon;var f8=eQ.polygon;var ex=-1e+100;var ee=null;var ed=null;var eg=0;var eY=f9.edges.head;while(eY!=null){var ec=eY.elt;var el=1e+100;var eW=f8.gverts.next;while(eW!=null){var fI=eW;var fR=ec.gnormx*fI.x+ec.gnormy*fI.y;if(fR<el){el=fR}eW=eW.next}el-=ec.gprojection;if(el>fQ){ex=el;break}if(el>0){if(el>ex){ex=el;ee=ec;eg=1}}else{if(ex<0&&el>ex){ex=el;ee=ec;eg=1}}eY=eY.next}if(ex<fQ){var eV=f8.edges.head;while(eV!=null){var eb=eV.elt;var ek=1e+100;var eU=f9.gverts.next;while(eU!=null){var e5=eU;var eD=eb.gnormx*e5.x+eb.gnormy*e5.y;if(eD<ek){ek=eD}eU=eU.next}ek-=eb.gprojection;if(ek>fQ){ex=ek;break}if(ek>0){if(ek>ex){ex=ek;ed=eb;eg=2}}else{if(ex<0&&ek>ex){ex=ek;ed=eb;eg=2}}eV=eV.next}if(ex<fQ){var fS;var f0;if(eg==1){fS=f8;f0=ee}else{fS=f9;f0=ed;var fl=e6;e6=eG;eG=fl;fx=!fx}var gf=null;var ej=1e+100;var eS=fS.edges.head;while(eS!=null){var ea=eS.elt;var eC=f0.gnormx*ea.gnormx+f0.gnormy*ea.gnormy;if(eC<ej){ej=eC;gf=ea}eS=eS.next}if(fx){gh.x=-f0.gnormx;gh.y=-f0.gnormy}else{gh.x=f0.gnormx;gh.y=f0.gnormy}if(ex>=0){var gs=f0.gp0;var gd=f0.gp1;var fU=gf.gp0;var fT=gf.gp1;var en=0;var em=0;var fz=0;var fy=0;en=gd.x-gs.x;em=gd.y-gs.y;fz=fT.x-fU.x;fy=fT.y-fU.y;var fe=1/(en*en+em*em);var eX=1/(fz*fz+fy*fy);var gm=-(en*(gs.x-fU.x)+em*(gs.y-fU.y))*fe;var fY=-(en*(gs.x-fT.x)+em*(gs.y-fT.y))*fe;var e9=-(fz*(fU.x-gs.x)+fy*(fU.y-gs.y))*eX;var eP=-(fz*(fU.x-gd.x)+fy*(fU.y-gd.y))*eX;if(gm<0){gm=0}else{if(gm>1){gm=1}}if(fY<0){fY=0}else{if(fY>1){fY=1}}if(e9<0){e9=0}else{if(e9>1){e9=1}}if(eP<0){eP=0}else{if(eP>1){eP=1}}var f7=0;var f6=0;var gl=gm;f7=gs.x+en*gl;f6=gs.y+em*gl;var fO=0;var fN=0;var gk=fY;fO=gs.x+en*gk;fN=gs.y+em*gk;var eT=0;var eR=0;var gj=e9;eT=fU.x+fz*gj;eR=fU.y+fy*gj;var eA=0;var ez=0;var gi=eP;eA=fU.x+fz*gi;ez=fU.y+fy*gi;var fX=fU.x;var fW=fU.y;var fE=0;var fD=0;fE=f7-fX;fD=f6-fW;var f2=fE*fE+fD*fD;var eO=fT.x;var ew=fT.y;var eL=0;var et=0;eL=fO-eO;et=fN-ew;var f1=eL*eL+et*et;var eN=gs.x;var ev=gs.y;var eK=0;var es=0;eK=eT-eN;es=eR-ev;var fL=eK*eK+es*es;var eM=gd.x;var eu=gd.y;var eJ=0;var er=0;eJ=eA-eM;er=ez-eu;var fJ=eJ*eJ+er*er;var fi=0;var fh=0;var gy=null;if(f2<f1){fi=f7;fh=f6;gy=fU}else{fi=fO;fh=fN;gy=fT;f2=f1}var fc=0;var fb=0;var gx=null;if(fL<fJ){fc=eT;fb=eR;gx=gs}else{fc=eA;fb=ez;gx=gd;fL=fJ}if(f2<fL){e6.x=fi;e6.y=fh;eG.x=gy.x;eG.y=gy.y;ex=Math.sqrt(f2)}else{eG.x=fc;eG.y=fb;e6.x=gx.x;e6.y=gx.y;ex=Math.sqrt(fL)}if(ex!=0){gh.x=eG.x-e6.x;gh.y=eG.y-e6.y;var gg=1/ex;gh.x*=gg;gh.y*=gg;if(fx){gh.x=-gh.x;gh.y=-gh.y}}fF=ex}else{var fg=0;var ff=0;fg=gf.gp0.x;ff=gf.gp0.y;var e4=0;var e3=0;e4=gf.gp1.x;e3=gf.gp1.y;var eF=0;var eE=0;eF=e4-fg;eE=e3-ff;var f3=f0.gnormy*fg-f0.gnormx*ff;var gz=f0.gnormy*e4-f0.gnormx*e3;var fH=1/(gz-f3);var ge=(-f0.tp1-f3)*fH;if(ge>P.epsilon){fg+=eF*ge;ff+=eE*ge}var gc=(-f0.tp0-gz)*fH;if(gc<-P.epsilon){e4+=eF*gc;e3+=eE*gc}var fk=fg*f0.gnormx+ff*f0.gnormy-f0.gprojection;var fd=e4*f0.gnormx+e3*f0.gnormy-f0.gprojection;if(fk<fd){eG.x=fg;eG.y=ff;var ga=-fk;e6.x=eG.x+f0.gnormx*ga;e6.y=eG.y+f0.gnormy*ga;fF=fk}else{eG.x=e4;eG.y=e3;var fZ=-fd;e6.x=eG.x+f0.gnormx*fZ;e6.y=eG.y+f0.gnormy*fZ;fF=fd}}}else{fF=fQ}}else{fF=fQ}}}if(fF<fQ){fQ=fF;eI.x=fu.x;eI.y=fu.y;eH.x=ft.x;eH.y=ft.y}e0=e0.next}eo=eo.next}var fP=fu;if(fP.outer!=null){fP.outer.zpp_inner=null;fP.outer=null}fP._isimmutable=null;fP._validate=null;fP._invalidate=null;fP.next=bB.zpp_pool;bB.zpp_pool=fP;var gr=ft;if(gr.outer!=null){gr.outer.zpp_inner=null;gr.outer=null}gr._isimmutable=null;gr._validate=null;gr._invalidate=null;gr.next=bB.zpp_pool;bB.zpp_pool=gr;var gq=gh;if(gq.outer!=null){gq.outer.zpp_inner=null;gq.outer=null}gq._isimmutable=null;gq._validate=null;gq._invalidate=null;gq.next=bB.zpp_pool;bB.zpp_pool=gq;return fQ};de.distance=function(ep,en,fl,fk,eC,fZ){if(fZ==null){fZ=1e+100}if(ep.type==0&&en.type==0){var fY=ep.circle;var fX=en.circle;var ek;var fA=0;var fy=0;fA=fX.worldCOMx-fY.worldCOMx;fy=fX.worldCOMy-fY.worldCOMy;var fS=Math.sqrt(fA*fA+fy*fy);ek=fS-(fY.radius+fX.radius);if(ek<fZ){if(fS==0){fA=1;fy=0}else{var fd=1/fS;fA*=fd;fy*=fd}var gb=fY.radius;fl.x=fY.worldCOMx+fA*gb;fl.y=fY.worldCOMy+fy*gb;var ga=-fX.radius;fk.x=fX.worldCOMx+fA*ga;fk.y=fX.worldCOMy+fy*ga;eC.x=fA;eC.y=fy}return ek}else{var eX=false;if(ep.type==0&&en.type==1){var eq=ep;ep=en;en=eq;var eL=fl;fl=fk;fk=eL;eX=true}if(ep.type==1&&en.type==0){var e4=ep.polygon;var fq=en.circle;var ez=-1e+100;var ea=null;var fW=e4.edges.head;while(fW!=null){var fv=fW.elt;var eV=fv.gnormx*fq.worldCOMx+fv.gnormy*fq.worldCOMy-fv.gprojection-fq.radius;if(eV>fZ){ez=eV;break}if(eV>0){if(eV>ez){ez=eV;ea=fv}}else{if(ez<0&&eV>ez){ez=eV;ea=fv}}fW=fW.next}if(ez<fZ){var fN=ea.gp0;var fL=ea.gp1;var eK=fq.worldCOMy*ea.gnormx-fq.worldCOMx*ea.gnormy;if(eK<=fN.y*ea.gnormx-fN.x*ea.gnormy){var f1=0;var fV=0;f1=fq.worldCOMx-fN.x;fV=fq.worldCOMy-fN.y;var fC=Math.sqrt(f1*f1+fV*fV);ez=fC-fq.radius;if(ez<fZ){if(fC==0){f1=1;fV=0}else{var f9=1/fC;f1*=f9;fV*=f9}fl.x=fN.x+f1*0;fl.y=fN.y+fV*0;var f8=-fq.radius;fk.x=fq.worldCOMx+f1*f8;fk.y=fq.worldCOMy+fV*f8;eC.x=f1;eC.y=fV}}else{if(eK>=fL.y*ea.gnormx-fL.x*ea.gnormy){var f0=0;var fT=0;f0=fq.worldCOMx-fL.x;fT=fq.worldCOMy-fL.y;var fB=Math.sqrt(f0*f0+fT*fT);ez=fB-fq.radius;if(ez<fZ){if(fB==0){f0=1;fT=0}else{var f7=1/fB;f0*=f7;fT*=f7}fl.x=fL.x+f0*0;fl.y=fL.y+fT*0;var f6=-fq.radius;fk.x=fq.worldCOMx+f0*f6;fk.y=fq.worldCOMy+fT*f6;eC.x=f0;eC.y=fT}}else{var f4=-fq.radius;fk.x=fq.worldCOMx+ea.gnormx*f4;fk.y=fq.worldCOMy+ea.gnormy*f4;var f3=-ez;fl.x=fk.x+ea.gnormx*f3;fl.y=fk.y+ea.gnormy*f3;eC.x=ea.gnormx;eC.y=ea.gnormy}}}if(eX){eC.x=-eC.x;eC.y=-eC.y}return ez}else{var fG=ep.polygon;var fE=en.polygon;var fu=-1e+100;var gl=null;var gk=null;var eS=0;var fP=fG.edges.head;while(fP!=null){var gj=fP.elt;var ge=1e+100;var fO=fE.gverts.next;while(fO!=null){var fc=fO;var fm=gj.gnormx*fc.x+gj.gnormy*fc.y;if(fm<ge){ge=fm}fO=fO.next}ge-=gj.gprojection;if(ge>fZ){fu=ge;break}if(ge>0){if(ge>fu){fu=ge;gl=gj;eS=1}}else{if(fu<0&&ge>fu){fu=ge;gl=gj;eS=1}}fP=fP.next}if(fu<fZ){var fM=fE.edges.head;while(fM!=null){var gi=fM.elt;var fo=1e+100;var fK=fG.gverts.next;while(fK!=null){var fJ=fK;var fb=gi.gnormx*fJ.x+gi.gnormy*fJ.y;if(fb<fo){fo=fb}fK=fK.next}fo-=gi.gprojection;if(fo>fZ){fu=fo;break}if(fo>0){if(fo>fu){fu=fo;gk=gi;eS=2}}else{if(fu<0&&fo>fu){fu=fo;gk=gi;eS=2}}fM=fM.next}if(fu<fZ){var ff;var fR;if(eS==1){ff=fE;fR=gl}else{ff=fG;fR=gk;var eP=fl;fl=fk;fk=eP;eX=!eX}var fQ=null;var fn=1e+100;var fI=ff.edges.head;while(fI!=null){var gg=fI.elt;var fa=fR.gnormx*gg.gnormx+fR.gnormy*gg.gnormy;if(fa<fn){fn=fa;fQ=gg}fI=fI.next}if(eX){eC.x=-fR.gnormx;eC.y=-fR.gnormy}else{eC.x=fR.gnormx;eC.y=fR.gnormy}if(fu>=0){var e3=fR.gp0;var es=fR.gp1;var fi=fQ.gp0;var fh=fQ.gp1;var e0=0;var eZ=0;var ei=0;var eh=0;e0=es.x-e3.x;eZ=es.y-e3.y;ei=fh.x-fi.x;eh=fh.y-fi.y;var e7=1/(e0*e0+eZ*eZ);var eU=1/(ei*ei+eh*eh);var eI=-(e0*(e3.x-fi.x)+eZ*(e3.y-fi.y))*e7;var gh=-(e0*(e3.x-fh.x)+eZ*(e3.y-fh.y))*e7;var eO=-(ei*(fi.x-e3.x)+eh*(fi.y-e3.y))*eU;var ed=-(ei*(fi.x-es.x)+eh*(fi.y-es.y))*eU;if(eI<0){eI=0}else{if(eI>1){eI=1}}if(gh<0){gh=0}else{if(gh>1){gh=1}}if(eO<0){eO=0}else{if(eO>1){eO=1}}if(ed<0){ed=0}else{if(ed>1){ed=1}}var eY=0;var eW=0;var f2=eI;eY=e3.x+e0*f2;eW=e3.y+eZ*f2;var el=0;var ej=0;var eJ=gh;el=e3.x+e0*eJ;ej=e3.y+eZ*eJ;var eR=0;var eN=0;var eH=eO;eR=fi.x+ei*eH;eN=fi.y+eh*eH;var ef=0;var ec=0;var eF=ed;ef=fi.x+ei*eF;ec=fi.y+eh*eF;var fs=fi.x;var fp=fi.y;var eG=0;var eE=0;eG=eY-fs;eE=eW-fp;var fx=eG*eG+eE*eE;var eT=fh.x;var eg=fh.y;var eB=0;var gf=0;eB=el-eT;gf=ej-eg;var fw=eB*eB+gf*gf;var eQ=e3.x;var ee=e3.y;var ey=0;var gd=0;ey=eR-eQ;gd=eN-ee;var e9=ey*ey+gd*gd;var eM=es.x;var eb=es.y;var ew=0;var gc=0;ew=ef-eM;gc=ec-eb;var e8=ew*ew+gc*gc;var fF=0;var fD=0;var eu=null;if(fx<fw){fF=eY;fD=eW;eu=fi}else{fF=el;fD=ej;eu=fh;fx=fw}var fg=0;var fe=0;var er=null;if(e9<e8){fg=eR;fe=eN;er=e3}else{fg=ef;fe=ec;er=es;e9=e8}if(fx<e9){fl.x=fF;fl.y=fD;fk.x=eu.x;fk.y=eu.y;fu=Math.sqrt(fx)}else{fk.x=fg;fk.y=fe;fl.x=er.x;fl.y=er.y;fu=Math.sqrt(e9)}if(fu!=0){eC.x=fk.x-fl.x;eC.y=fk.y-fl.y;var eD=1/fu;eC.x*=eD;eC.y*=eD;if(eX){eC.x=-eC.x;eC.y=-eC.y}}return fu}else{var ft=0;var fr=0;ft=fQ.gp0.x;fr=fQ.gp0.y;var e6=0;var e5=0;e6=fQ.gp1.x;e5=fQ.gp1.y;var eo=0;var em=0;eo=e6-ft;em=e5-fr;var fz=fR.gnormy*ft-fR.gnormx*fr;var fU=fR.gnormy*e6-fR.gnormx*e5;var f5=1/(fU-fz);var eA=(-fR.tp1-fz)*f5;if(eA>P.epsilon){ft+=eo*eA;fr+=em*eA}var ex=(-fR.tp0-fU)*f5;if(ex<-P.epsilon){e6+=eo*ex;e5+=em*ex}var fH=ft*fR.gnormx+fr*fR.gnormy-fR.gprojection;var fj=e6*fR.gnormx+e5*fR.gnormy-fR.gprojection;if(fH<fj){fk.x=ft;fk.y=fr;var ev=-fH;fl.x=fk.x+fR.gnormx*ev;fl.y=fk.y+fR.gnormy*ev;return fH}else{fk.x=e6;fk.y=e5;var et=-fj;fl.x=fk.x+fR.gnormx*et;fl.y=fk.y+fR.gnormy*et;return fj}}}else{return fZ}}else{return fZ}}}};de.prototype.__class__=de;var k=zpp_nape.geom.ZPP_PartitionPair=function(){this.node=null;this.di=0;this.id=0;this.b=null;this.a=null;this.length=0;this.pushmod=false;this.modified=false;this._inuse=false;this.next=null};k.__name__=["zpp_nape","geom","ZPP_PartitionPair"];k.get=function(eb,ea){var ec;if(k.zpp_pool==null){ec=new k()}else{ec=k.zpp_pool;k.zpp_pool=ec.next;ec.next=null}ec.a=eb;ec.b=ea;if(eb.id<ea.id){ec.id=eb.id;ec.di=ea.id}else{ec.id=ea.id;ec.di=eb.id}return ec};k.edge_swap=function(eb,ea){var ec=eb.node;eb.node=ea.node;ea.node=ec};k.edge_lt=function(eb,ea){if(eb.id>=ea.id){if(eb.id==ea.id){return eb.di<ea.di}else{return false}}else{return true}};k.prototype.next=null;k.prototype.elem=function(){return this};k.prototype.begin=function(){return this.next};k.prototype._inuse=null;k.prototype.modified=null;k.prototype.pushmod=null;k.prototype.length=null;k.prototype.setbegin=function(ea){this.next=ea;this.modified=true;this.pushmod=true};k.prototype.add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};k.prototype.inlined_add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};k.prototype.addAll=function(ea){var eb=ea.next;while(eb!=null){this.add(eb);eb=eb.next}};k.prototype.insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};k.prototype.inlined_insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};k.prototype.pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};k.prototype.inlined_pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};k.prototype.pop_unsafe=function(){var ea=this.next;this.pop();return ea};k.prototype.inlined_pop_unsafe=function(){var ea=this.next;this.pop();return ea};k.prototype.remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};k.prototype.try_remove=function(ec){var eb=null;var ed=this.next;var ea=false;while(ed!=null){if(ed==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};k.prototype.inlined_remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};k.prototype.inlined_try_remove=function(ee){var ed=null;var ef=this.next;var eb=false;while(ef!=null){if(ef==ee){var ea;var ec;if(ed==null){ea=this.next;ec=ea.next;this.next=ec;if(this.next==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=ef;ef=ef.next}return eb};k.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};k.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};k.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};k.prototype.clear=function(){};k.prototype.inlined_clear=function(){};k.prototype.reverse=function(){var ec=this.next;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.next=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};k.prototype.empty=function(){return this.next==null};k.prototype.size=function(){return this.length};k.prototype.has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};k.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};k.prototype.front=function(){return this.next};k.prototype.back=function(){var ea=this.next;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea};k.prototype.iterator_at=function(eb){var ea=this.next;while(eb-->0&&ea!=null){ea=ea.next}return ea};k.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea}else{return null}};k.prototype.free=function(){this.a=this.b=null;this.node=null};k.prototype.alloc=function(){};k.prototype.a=null;k.prototype.b=null;k.prototype.id=null;k.prototype.di=null;k.prototype.node=null;k.prototype.__class__=k;var z=zpp_nape.geom.ZPP_Triangular=function(){};z.__name__=["zpp_nape","geom","ZPP_Triangular"];z.lt=function(eb,ea){if(!(eb.y<ea.y)){if(eb.y==ea.y){return eb.x<ea.x}else{return false}}else{return true}};z.right_turn=function(eb,ea,eg){var ed=0;var ec=0;ed=eg.x-ea.x;ec=eg.y-ea.y;var ef=0;var ee=0;ef=ea.x-eb.x;ee=ea.y-eb.y;return ee*ed-ef*ec};z.delaunay=function(ef,ee,ec,ea){var ed=0;var eb=0;var ek=0;var ej=0;var ei;var eh;var eg;ed=ec.x-ee.x;eb=ec.y-ee.y;ek=ee.x-ef.x;ej=ee.y-ef.y;if(!(ej*ed-ek*eb>=0)){ed=ea.x-ec.x;eb=ea.y-ec.y;ek=ec.x-ee.x;ej=ec.y-ee.y;eg=ej*ed-ek*eb>=0}else{eg=true}if(!eg){ed=ef.x-ea.x;eb=ef.y-ea.y;ek=ea.x-ec.x;ej=ea.y-ec.y;eh=ej*ed-ek*eb>=0}else{eh=true}if(!eh){ed=ee.x-ef.x;eb=ee.y-ef.y;ek=ef.x-ea.x;ej=ef.y-ea.y;ei=ej*ed-ek*eb>=0}else{ei=true}if(ei){return true}return ee.x*(ec.y*ea.mag-ec.mag*ea.y)-ec.x*(ee.y*ea.mag-ee.mag*ea.y)+ea.x*(ee.y*ec.mag-ee.mag*ec.y)-(ef.x*(ec.y*ea.mag-ec.mag*ea.y)-ec.x*(ef.y*ea.mag-ef.mag*ea.y)+ea.x*(ef.y*ec.mag-ef.mag*ec.y))+(ef.x*(ee.y*ea.mag-ee.mag*ea.y)-ee.x*(ef.y*ea.mag-ef.mag*ea.y)+ea.x*(ef.y*ee.mag-ef.mag*ee.y))-(ef.x*(ee.y*ec.mag-ee.mag*ec.y)-ee.x*(ef.y*ec.mag-ef.mag*ec.y)+ec.x*(ef.y*ee.mag-ef.mag*ee.y))>0};z.optimise=function(ee){var eh=ee.vertices;var ef=ee.vertices;if(eh!=null){var ew=eh;while(true){var eq=ew;eq.sort();eq.mag=eq.x*eq.x+eq.y*eq.y;ew=ew.next;if(!(ew!=ef)){break}}}if(z.edgeSet==null){if(am.zpp_pool==null){z.edgeSet=new am()}else{z.edgeSet=am.zpp_pool;am.zpp_pool=z.edgeSet.next;z.edgeSet.next=null}z.edgeSet.lt=k.edge_lt;z.edgeSet.swapped=k.edge_swap}var eu;if(k.zpp_pool==null){eu=new k()}else{eu=k.zpp_pool;k.zpp_pool=eu.next;eu.next=null}var ev=ee.vertices;var ex=ee.vertices;if(ev!=null){var ea=ev;while(true){var ec=ea;var eg=ec.next;ec.diagonals.reverse();var et=ec.diagonals.head;while(et!=null){var en=et.elt;if(en.id<ec.id){eg=en;et=et.next;continue}if(!z.delaunay(ec,eg,en,et.next==null?ec.prev:et.next.elt)){var ey;if(k.zpp_pool==null){ey=new k()}else{ey=k.zpp_pool;k.zpp_pool=ey.next;ey.next=null}ey.a=ec;ey.b=en;if(ec.id<en.id){ey.id=ec.id;ey.di=en.id}else{ey.id=en.id;ey.di=ec.id}var ed=ey;eu.add(ed);ed.node=z.edgeSet.insert(ed)}eg=en;et=et.next}ea=ea.next;if(!(ea!=ex)){break}}}while(eu.next!=null){var ei=eu.pop_unsafe();var ep=ei.a;var ek=ei.b;var em=ep.next;var ej=null;var es=ep.diagonals.head;while(es!=null){var eb=es.elt;if(eb==ek){es=es.next;if(es==null){ej=ep.prev}else{ej=es.elt}break}em=eb;es=es.next}ep.diagonals.remove(ek);ek.diagonals.remove(ep);if(ek==em.next){em.diagonals.add(ej)}else{var eo=em.diagonals.head;while(eo!=null){if(eo.elt==ek){em.diagonals.insert(eo,ej);break}eo=eo.next}}if(ep==ej.next){ej.diagonals.add(em)}else{var el=ej.diagonals.head;while(el!=null){if(el.elt==ep){ej.diagonals.insert(el,em);break}el=el.next}}z.edgeSet.remove_node(ei.node);ei.a=ei.b=null;ei.node=null;ei.next=k.zpp_pool;k.zpp_pool=ei}var er=eu;er.a=er.b=null;er.node=null;er.next=k.zpp_pool;k.zpp_pool=er};z.triangulate=function(ef){var eq=ef.vertices;var er=ef.vertices;var ej=ef.vertices.next;var eg=ef.vertices;if(ej!=null){var es=ej;while(true){var ep=es;if(ep.y<eq.y||ep.y==eq.y&&ep.x<eq.x){eq=ep}if(er.y<ep.y||er.y==ep.y&&er.x<ep.x){er=ep}es=es.next;if(!(es!=eg)){break}}}if(z.queue==null){z.queue=new dO()}var ei=er.prev;var eh=er.next;z.queue.add(er);while(ei!=eq||eh!=eq){if(ei==eq||eh!=eq&&(ei.y<eh.y||ei.y==eh.y&&ei.x<eh.x)){z.queue.add(eh);eh.rightchain=false;eh=eh.next}else{z.queue.add(ei);ei.rightchain=true;ei=ei.prev}}z.queue.add(eq);if(z.stack==null){z.stack=new dO()}z.stack.add(z.queue.pop_unsafe());var eo=z.queue.pop_unsafe();z.stack.add(eo);while(true){var eb=z.queue.pop_unsafe();if(z.queue.head==null){break}if(eb.rightchain!=z.stack.head.elt.rightchain){while(true){var ek=z.stack.pop_unsafe();if(z.stack.head==null){break}ef.add_diagonal(ek,eb)}z.stack.add(eo)}else{var em=z.stack.pop_unsafe();while(z.stack.head!=null){var ec=z.stack.head.elt;var ee=0;var ed=0;ee=eb.x-em.x;ed=eb.y-em.y;var en=0;var el=0;en=em.x-ec.x;el=em.y-ec.y;var et=el*ee-en*ed;if(eb.rightchain&&et>=0||!eb.rightchain&&et<=0){break}ef.add_diagonal(ec,eb);em=ec;z.stack.pop()}z.stack.add(em)}z.stack.add(eb);eo=eb}if(z.stack.head!=null){z.stack.pop();while(z.stack.head!=null){var ea=z.stack.pop_unsafe();if(z.stack.head==null){break}ef.add_diagonal(er,ea)}}return ef};z.prototype.__class__=z;var bB=zpp_nape.geom.ZPP_Vec2=function(){this.y=0;this.x=0;this.length=0;this.pushmod=false;this.modified=false;this._inuse=false;this.next=null;this.weak=false;this.outer=null;this._isimmutable=null;this._immutable=false;this._validate=null;this._invalidate=null};bB.__name__=["zpp_nape","geom","ZPP_Vec2"];bB.get=function(ea,ed,ec){if(ec==null){ec=false}var eb;if(bB.zpp_pool==null){eb=new bB()}else{eb=bB.zpp_pool;bB.zpp_pool=eb.next;eb.next=null}eb.weak=false;eb._immutable=ec;eb.x=ea;eb.y=ed;return eb};bB.prototype._invalidate=null;bB.prototype._validate=null;bB.prototype.validate=function(){if(this._validate!=null){this._validate()}};bB.prototype.invalidate=function(){if(this._invalidate!=null){this._invalidate(this)}};bB.prototype._immutable=null;bB.prototype._isimmutable=null;bB.prototype.immutable=function(){};bB.prototype.outer=null;bB.prototype.wrapper=function(){if(this.outer==null){this.outer=new r();var ea=this.outer.zpp_inner;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea._isimmutable=null;ea._validate=null;ea._invalidate=null;ea.next=bB.zpp_pool;bB.zpp_pool=ea;this.outer.zpp_inner=this}return this.outer};bB.prototype.weak=null;bB.prototype.free=function(){if(this.outer!=null){this.outer.zpp_inner=null;this.outer=null}this._isimmutable=null;this._validate=null;this._invalidate=null};bB.prototype.alloc=function(){this.weak=false};bB.prototype.next=null;bB.prototype.elem=function(){return this};bB.prototype.begin=function(){return this.next};bB.prototype._inuse=null;bB.prototype.modified=null;bB.prototype.pushmod=null;bB.prototype.length=null;bB.prototype.setbegin=function(ea){this.next=ea;this.modified=true;this.pushmod=true};bB.prototype.add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};bB.prototype.inlined_add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};bB.prototype.addAll=function(ea){var eb=ea.next;while(eb!=null){this.add(eb);eb=eb.next}};bB.prototype.insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bB.prototype.inlined_insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bB.prototype.pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};bB.prototype.inlined_pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};bB.prototype.pop_unsafe=function(){var ea=this.next;this.pop();return ea};bB.prototype.inlined_pop_unsafe=function(){var ea=this.next;this.pop();return ea};bB.prototype.remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};bB.prototype.try_remove=function(ec){var eb=null;var ed=this.next;var ea=false;while(ed!=null){if(ed==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bB.prototype.inlined_remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};bB.prototype.inlined_try_remove=function(ee){var ed=null;var ef=this.next;var eb=false;while(ef!=null){if(ef==ee){var ea;var ec;if(ed==null){ea=this.next;ec=ea.next;this.next=ec;if(this.next==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=ef;ef=ef.next}return eb};bB.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};bB.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};bB.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bB.prototype.clear=function(){};bB.prototype.inlined_clear=function(){};bB.prototype.reverse=function(){var ec=this.next;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.next=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bB.prototype.empty=function(){return this.next==null};bB.prototype.size=function(){return this.length};bB.prototype.has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};bB.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};bB.prototype.front=function(){return this.next};bB.prototype.back=function(){var ea=this.next;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea};bB.prototype.iterator_at=function(eb){var ea=this.next;while(eb-->0&&ea!=null){ea=ea.next}return ea};bB.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea}else{return null}};bB.prototype.x=null;bB.prototype.y=null;bB.prototype.copy=function(){var ea=this.x;var ec=this.y;var eb;if(bB.zpp_pool==null){eb=new bB()}else{eb=bB.zpp_pool;bB.zpp_pool=eb.next;eb.next=null}eb.weak=false;eb._immutable=false;eb.x=ea;eb.y=ec;return eb};bB.prototype.toString=function(){return"{ x: "+this.x+" y: "+this.y+" }"};bB.prototype.__class__=bB;var bA=zpp_nape.geom.ZPP_Vec3=function(){this._validate=null;this.immutable=false;this.z=0;this.y=0;this.x=0;this.outer=null;this.immutable=false;this._validate=null};bA.__name__=["zpp_nape","geom","ZPP_Vec3"];bA.prototype.outer=null;bA.prototype.x=null;bA.prototype.y=null;bA.prototype.z=null;bA.prototype.immutable=null;bA.prototype._validate=null;bA.prototype.validate=function(){if(this._validate!=null){this._validate()}};bA.prototype.__class__=bA;var c9=zpp_nape.geom.ZPP_VecMath=function(){};c9.__name__=["zpp_nape","geom","ZPP_VecMath"];c9.vec_dsq=function(ed,ec,ef,ee){var eb=0;var ea=0;eb=ed-ef;ea=ec-ee;return eb*eb+ea*ea};c9.vec_distance=function(ed,ec,ef,ee){var eb=0;var ea=0;eb=ed-ef;ea=ec-ee;return Math.sqrt(eb*eb+ea*ea)};c9.prototype.__class__=c9;var dM=zpp_nape.phys.ZPP_Interactor=function(){this.wrap_cbTypes=null;this.cbSet=null;this.cbTypes=null;this.group=null;this.cbsets=null;this.icompound=null;this.ibody=null;this.ishape=null;this.userData=null;this.id=0;this.outer_i=null;this.id=cr.Interactor();this.cbsets=new dF();this.cbTypes=new x()};dM.__name__=["zpp_nape","phys","ZPP_Interactor"];dM.get=function(eg,ee){var eh=eg.id<ee.id?eg.id:ee.id;var ef=eg.id<ee.id?ee.id:eg.id;var ec=eg.cbsets.length<ee.cbsets.length?eg.cbsets:ee.cbsets;var eb=null;var ed=ec.head;while(ed!=null){var ea=ed.elt;if(ea.id==eh&&ea.di==ef){eb=ea;break}ed=ed.next}return eb};dM.int_callback=function(ei,eh,ed){var eb=ei.int1;var ea=ei.int2;var ee;var ef=eh.options1;var ec=eb.cbTypes;if(ef.nonemptyintersection(ec,ef.includes)&&!ef.nonemptyintersection(ec,ef.excludes)){var eg=eh.options2;var ej=ea.cbTypes;if(eg.nonemptyintersection(ej,eg.includes)){ee=!eg.nonemptyintersection(ej,eg.excludes)}else{ee=false}}else{ee=false}if(ee){ed.int1=eb;ed.int2=ea}else{ed.int1=ea;ed.int2=eb}};dM.prototype.outer_i=null;dM.prototype.id=null;dM.prototype.userData=null;dM.prototype.ishape=null;dM.prototype.ibody=null;dM.prototype.icompound=null;dM.prototype.isShape=function(){return this.ishape!=null};dM.prototype.isBody=function(){return this.ibody!=null};dM.prototype.isCompound=function(){return this.icompound!=null};dM.prototype.__iaddedToSpace=function(){if(this.group!=null){this.group.interactors.add(this)}var ea=this.cbTypes.head;while(ea!=null){ea.elt.interactors.add(this);ea=ea.next}this.alloc_cbSet()};dM.prototype.__iremovedFromSpace=function(){if(this.group!=null){this.group.interactors.remove(this)}var ea=this.cbTypes.head;while(ea!=null){ea.elt.interactors.remove(this);ea=ea.next}this.dealloc_cbSet()};dM.prototype.wake=function(){if(this.ishape!=null){var ea=this.ishape.body;if(ea!=null&&ea.space!=null){ea.space.non_inlined_wake(ea)}}else{if(this.ibody!=null){if(this.ibody.space!=null){this.ibody.space.non_inlined_wake(this.ibody)}}else{if(this.icompound.space!=null){this.icompound.space.wakeCompound(this.icompound)}}}};dM.prototype.cbsets=null;dM.prototype.getSpace=function(){if(this.ishape!=null){if(this.ishape.body==null){return null}else{return this.ishape.body.space}}else{if(this.ibody!=null){return this.ibody.space}else{return this.icompound.space}}};dM.prototype.group=null;dM.prototype.cbTypes=null;dM.prototype.cbSet=null;dM.prototype.wrap_cbTypes=null;dM.prototype.setupcbTypes=function(){this.wrap_cbTypes=cy.get(this.cbTypes);this.wrap_cbTypes.zpp_inner.adder=dX(this,this.wrap_cbTypes_adder);this.wrap_cbTypes.zpp_inner.subber=dX(this,this.wrap_cbTypes_subber);this.wrap_cbTypes.zpp_inner.dontremove=true};dM.prototype.wrap_cbTypes_subber=function(eb){var ea=eb.zpp_inner;if(this.cbTypes.has(ea)){var ec=this.ishape!=null?this.ishape.body==null?null:this.ishape.body.space:this.ibody!=null?this.ibody.space:this.icompound.space;if(ec!=null){this.dealloc_cbSet();ea.interactors.remove(this)}this.cbTypes.remove(ea);if(ec!=null){this.alloc_cbSet();this.wake()}}};dM.prototype.wrap_cbTypes_adder=function(ea){this.insert_cbtype(ea.zpp_inner);return false};dM.prototype.insert_cbtype=function(ea){if(!this.cbTypes.has(ea)){var ee=this.ishape!=null?this.ishape.body==null?null:this.ishape.body.space:this.ibody!=null?this.ibody.space:this.icompound.space;if(ee!=null){this.dealloc_cbSet();ea.interactors.add(this)}var ef=null;var ed=this.cbTypes.head;while(ed!=null){if(ea.id<ed.elt.id){break}ef=ed;ed=ed.next}var eg=this.cbTypes;var ec;if(b.zpp_pool==null){ec=new b()}else{ec=b.zpp_pool;b.zpp_pool=ec.next;ec.next=null}ec.elt=ea;var eb=ec;if(ef==null){eb.next=eg.head;eg.head=eb}else{eb.next=ef.next;ef.next=eb}eg.pushmod=eg.modified=true;eg.length++;if(ee!=null){this.alloc_cbSet();this.wake()}}};dM.prototype.alloc_cbSet=function(){var ea=this.ishape!=null?this.ishape.body==null?null:this.ishape.body.space:this.ibody!=null?this.ibody.space:this.icompound.space;if((this.cbSet=ea.cbsets.get(this.cbTypes))!=null){this.cbSet.count++;this.cbSet.interactors.add(this);this.cbSet.validate();ea.freshInteractorType(this)}};dM.prototype.dealloc_cbSet=function(){var ea=this.ishape!=null?this.ishape.body==null?null:this.ishape.body.space:this.ibody!=null?this.ibody.space:this.icompound.space;if(this.cbSet!=null){this.cbSet.interactors.remove(this);ea.nullInteractorType(this);if(--this.cbSet.count==0){ea.cbsets.remove(this.cbSet);var eb=this.cbSet;eb.listeners.clear();eb.zip_listeners=true;eb.bodylisteners.clear();eb.zip_bodylisteners=true;eb.conlisteners.clear();eb.zip_conlisteners=true;while(eb.cbTypes.head!=null){eb.cbTypes.pop_unsafe().cbsets.remove(eb)}eb.next=cC.zpp_pool;cC.zpp_pool=eb}this.cbSet=null}};dM.prototype.setGroup=function(eb){if(this.group!=eb){var ea=(this.ishape!=null?this.ishape.body==null?null:this.ishape.body.space:this.ibody!=null?this.ibody.space:this.icompound.space)!=null;if(ea&&this.group!=null){this.group.interactors.remove(this)}this.group=eb;if(ea&&eb!=null){eb.interactors.add(this)}if(ea){if(this.ishape!=null){this.ishape.body.wake()}else{if(this.ibody!=null){this.ibody.wake()}else{this.icompound.wake()}}}}};dM.prototype.immutable_midstep=function(ea){if(this.ibody==null){if(this.ishape!=null){this.ishape.__immutable_midstep(ea)}else{this.icompound.__imutable_midstep(ea)}}};dM.prototype.lookup_group=function(){var ea=this;while(ea!=null&&ea.group==null){if(ea.ishape!=null){ea=ea.ishape.body}else{if(ea.icompound!=null){ea=ea.icompound.compound}else{ea=ea.ibody.compound}}}if(ea==null){return null}else{return ea.group}};dM.prototype.copyto=function(eh){eh.zpp_inner_i.group=this.group;var ef=this.outer_i;if(ef.zpp_inner_i.wrap_cbTypes==null){ef.zpp_inner_i.setupcbTypes()}var ei=ef.zpp_inner_i.wrap_cbTypes;ei.zpp_inner.valmod();var ed=Y.get(ei);while(true){ed.zpp_inner.zpp_inner.valmod();var eg=ed.zpp_inner;eg.zpp_inner.valmod();if(eg.zpp_inner.zip_length){eg.zpp_inner.zip_length=false;eg.zpp_inner.user_length=eg.zpp_inner.inner.length}var ea=eg.zpp_inner.user_length;ed.zpp_critical=true;var ec;if(ed.zpp_i<ea){ec=true}else{ed.zpp_next=Y.zpp_pool;Y.zpp_pool=ed;ed.zpp_inner=null;ec=false}if(!ec){break}ed.zpp_critical=false;var eb=ed.zpp_inner.at(ed.zpp_i++);if(eh.zpp_inner_i.wrap_cbTypes==null){eh.zpp_inner_i.setupcbTypes()}var ee=eh.zpp_inner_i.wrap_cbTypes;if(ee.zpp_inner.reverse_flag){ee.push(eb)}else{ee.unshift(eb)}}if(this.userData!=null){eh.zpp_inner_i.userData=bm.copy(this.userData)}};dM.prototype.__class__=dM;var cj=zpp_nape.phys.ZPP_Body=function(){this.wrap_worldCOM=null;this.wrap_localCOM=null;this.zip_worldCOM=false;this.worldCOMy=0;this.worldCOMx=0;this.zip_localCOM=false;this.localCOMy=0;this.localCOMx=0;this.zip_aabb=false;this.aabb=null;this.norotate=false;this.sinertia=0;this.iinertia=0;this.cinertia=0;this.zip_inertia=false;this.inertia=0;this.inertiaMode=0;this.zip_gravMassScale=false;this.gravMassScale=0;this.gravMassMode=0;this.zip_gravMass=false;this.gravMass=0;this.nomove=false;this.cmass=0;this.smass=0;this.imass=0;this.massMode=0;this.zip_mass=false;this.mass=0;this.zip_axis=false;this.axisy=0;this.axisx=0;this.rot=0;this.pre_rot=0;this.kinangvel=0;this.torque=0;this.angvel=0;this.wrapcvel=null;this.wrap_svel=null;this.svely=0;this.svelx=0;this.wrap_kinvel=null;this.kinvely=0;this.kinvelx=0;this.wrap_force=null;this.forcey=0;this.forcex=0;this.wrap_vel=null;this.vely=0;this.velx=0;this.wrap_pos=null;this.posy=0;this.posx=0;this.pre_posy=0;this.pre_posx=0;this.disableCCD=false;this.bulletEnabled=false;this.bullet=false;this.sweepRadius=0;this.sweepFrozen=false;this.sweep_angvel=0;this.sweepTime=0;this.graph_depth=0;this.component=null;this.wrap_constraints=null;this.constraints=null;this.wrap_arbiters=null;this.arbiters=null;this.space=null;this.wrap_shapes=null;this.shapes=null;this.compound=null;this.type=0;this.world=false;this.outer=null;dM.call(this);this.ibody=this;this.world=false;this.bulletEnabled=false;this.sweepTime=0;this.sweep_angvel=0;this.norotate=this.nomove=false;this.disableCCD=false;this.posx=0;this.posy=0;this.rot=0;this.axisx=0;this.axisy=1;this.svelx=0;this.svely=0;this.velx=0;this.vely=0;this.kinvelx=0;this.kinvely=0;this.forcex=0;this.forcey=0;this.torque=this.angvel=this.kinangvel=0;this.pre_posx=Infinity;this.pre_posy=Infinity;this.pre_rot=Infinity;this.localCOMx=0;this.localCOMy=0;this.worldCOMx=0;this.worldCOMy=0;this.zip_aabb=true;var ea;if(bT.zpp_pool==null){ea=new bT()}else{ea=bT.zpp_pool;bT.zpp_pool=ea.next;ea.next=null}ea.minx=0;ea.miny=0;ea.maxx=0;ea.maxy=0;this.aabb=ea;this.aabb._immutable=true;this.aabb._validate=dX(this,this.aabb_validate);this.massMode=0;this.gravMassMode=0;this.gravMassScale=1;this.inertiaMode=0;this.arbiters=new h();this.constraints=new m();this.shapes=new s();this.wrap_shapes=aI.get(this.shapes);this.wrap_shapes.zpp_inner.adder=dX(this,this.shapes_adder);this.wrap_shapes.zpp_inner.subber=dX(this,this.shapes_subber);this.wrap_shapes.zpp_inner._invalidate=dX(this,this.shapes_invalidate);this.kinematicDelaySleep=false};cj.__name__=["zpp_nape","phys","ZPP_Body"];cj.__super__=dM;cj.prototype=Object.create(dM.prototype);cj.bodysetlt=function(eb,ea){return eb.id<ea.id};cj.__static=function(){if(br.BodyType_STATIC==null){br.internal=true;br.BodyType_STATIC=new cU();br.internal=false}var eb=new at(br.BodyType_STATIC);var ea=eb.zpp_inner;ea.world=true;ea.wrap_shapes.zpp_inner.immutable=true;ea.smass=ea.imass=ea.cmass=ea.mass=ea.gravMass=0;ea.sinertia=ea.iinertia=ea.cinertia=ea.inertia=0;ea.cbTypes.clear();return eb};cj.prototype.outer=null;cj.prototype.world=null;cj.prototype.type=null;cj.prototype.isStatic=function(){return this.type==1};cj.prototype.isDynamic=function(){return this.type==2};cj.prototype.isKinematic=function(){return this.type==3};cj.prototype.invalidate_type=function(){this.invalidate_mass();this.invalidate_inertia()};cj.prototype.compound=null;cj.prototype.shapes=null;cj.prototype.wrap_shapes=null;cj.prototype.invalidate_shapes=function(){this.zip_aabb=true;this.zip_localCOM=true;this.zip_worldCOM=true;this.invalidate_mass();this.invalidate_inertia()};cj.prototype.space=null;cj.prototype.arbiters=null;cj.prototype.wrap_arbiters=null;cj.prototype.constraints=null;cj.prototype.wrap_constraints=null;cj.prototype.component=null;cj.prototype.graph_depth=null;cj.prototype.init_bodysetlist=function(){if(cj.bodyset==null){cj.bodyset=new dV();cj.bodyset.lt=cj.bodysetlt;cj.bodystack=new bs()}};cj.prototype.connectedBodies_cont=function(ea){if(cj.bodyset.try_insert_bool(ea.zpp_inner)){cj.bodystack.add(ea.zpp_inner);ea.zpp_inner.graph_depth=cj.cur_graph_depth+1}};cj.prototype.connectedBodies=function(ef,ec){var ea=this;if(cj.bodyset==null){cj.bodyset=new dV();cj.bodyset.lt=cj.bodysetlt;cj.bodystack=new bs()}var eh=ec==null?new a5():ec;cj.bodystack.add(this);cj.bodyset.insert(this);this.graph_depth=0;while(cj.bodystack.head!=null){var el=cj.bodystack.pop_unsafe();if(el.graph_depth==ef){continue}cj.cur_graph_depth=el.graph_depth;var ed=el.constraints.head;while(ed!=null){ed.elt.outer.visitBodies(dX(this,this.connectedBodies_cont));ed=ed.next}}var eg=cj.bodyset;if(eg.parent!=null){var ek=eg.parent;while(ek!=null){if(ek.prev!=null){ek=ek.prev}else{if(ek.next!=null){ek=ek.next}else{var ej=ek.data;if(ej!=ea){var ee=ej.outer;if(eh.zpp_inner.reverse_flag){eh.push(ee)}else{eh.unshift(ee)}}var ei=ek.parent;if(ei!=null){if(ek==ei.prev){ei.prev=null}else{ei.next=null}ek.parent=null}var eb=ek;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=dV.zpp_pool;dV.zpp_pool=eb;ek=ei}}}eg.parent=null}return eh};cj.prototype.interactingBodies=function(eb,eh,ee){var ea=this;if(cj.bodyset==null){cj.bodyset=new dV();cj.bodyset.lt=cj.bodysetlt;cj.bodystack=new bs()}var ek=ee==null?new a5():ee;cj.bodyset.insert(this);cj.bodystack.add(this);this.graph_depth=0;while(cj.bodystack.head!=null){var eo=cj.bodystack.pop_unsafe();if(eo.graph_depth==eh){continue}var ef=eo.arbiters.head;while(ef!=null){var ed=ef.elt;if((ed.type&eb)!=0){var ej=ed.b1==eo?ed.b2:ed.b1;if(cj.bodyset.try_insert_bool(ej)){cj.bodystack.add(ej);ej.graph_depth=eo.graph_depth+1}}ef=ef.next}}var ei=cj.bodyset;if(ei.parent!=null){var en=ei.parent;while(en!=null){if(en.prev!=null){en=en.prev}else{if(en.next!=null){en=en.next}else{var em=en.data;if(em!=ea){var eg=em.outer;if(ek.zpp_inner.reverse_flag){ek.push(eg)}else{ek.unshift(eg)}}var el=en.parent;if(el!=null){if(en==el.prev){el.prev=null}else{el.next=null}en.parent=null}var ec=en;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=dV.zpp_pool;dV.zpp_pool=ec;en=el}}}ei.parent=null}return ek};cj.prototype.atRest=function(eb){if(this.type!=2){return this.component.sleeping}else{var ef=P.linearSleepThreshold;ef*=ef;var ed;if(this.velx*this.velx+this.vely*this.vely>ef){ed=false}else{var ea=this.posx;var em=this.posy;var ej=this.pre_posx;var ei=this.pre_posy;var en=0;var el=0;en=ea-ej;el=em-ei;if(en*en+el*el>0.25*ef*eb*eb){ed=false}else{var ek=0;var eh=0;ek=this.aabb.maxx-this.aabb.minx;eh=this.aabb.maxy-this.aabb.miny;var ee=ek*ek+eh*eh;var eg=P.angularSleepThreshold;eg*=eg;if(4*this.angvel*this.angvel*ee>eg){ed=false}else{var ec=this.rot-this.pre_rot;if(ec*ec*ee>eg*eb*eb){ed=false}else{ed=true}}}}if(!ed){this.component.waket=this.space.stamp}return this.component.waket+P.sleepDelay<this.space.stamp}};cj.prototype.refreshArbiters=function(){var ea=this.arbiters.head;while(ea!=null){ea.elt.invalidated=true;ea=ea.next}};cj.prototype.sweepTime=null;cj.prototype.sweep_angvel=null;cj.prototype.sweepFrozen=null;cj.prototype.sweepRadius=null;cj.prototype.bullet=null;cj.prototype.bulletEnabled=null;cj.prototype.disableCCD=null;cj.prototype.sweepIntegrate=function(ed){var eg=ed-this.sweepTime;if(eg!=0){this.sweepTime=ed;this.posx+=this.velx*eg;this.posy+=this.vely*eg;if(this.angvel!=0){var ef=this.sweep_angvel*eg;this.rot+=ef;if(ef*ef>0.0001){this.axisx=Math.sin(this.rot);this.axisy=Math.cos(this.rot)}else{var ec=ef*ef;var ee=1-0.5*ec;var eb=1-ec*ec/8;var ea=(ee*this.axisx+ef*this.axisy)*eb;this.axisy=(ee*this.axisy-ef*this.axisx)*eb;this.axisx=ea}}}};cj.prototype.sweepValidate=function(em){if(em.type==0){em.worldCOMx=this.posx+(this.axisy*em.localCOMx-this.axisx*em.localCOMy);em.worldCOMy=this.posy+(em.localCOMx*this.axisx+em.localCOMy*this.axisy)}else{var eb=em.polygon;var ek=eb.lverts.next;var ec=eb.gverts.next;while(ec!=null){var ee=ec;var ed=ek;ek=ek.next;ee.x=this.posx+(this.axisy*ed.x-this.axisx*ed.y);ee.y=this.posy+(ed.x*this.axisx+ed.y*this.axisy);ec=ec.next}var ea=eb.edges.head;var ei=eb.gverts.next;var el=ei;ei=ei.next;while(ei!=null){var ej=ei;var ef=ea.elt;ea=ea.next;ef.gnormx=this.axisy*ef.lnormx-this.axisx*ef.lnormy;ef.gnormy=ef.lnormx*this.axisx+ef.lnormy*this.axisy;ef.gprojection=this.posx*ef.gnormx+this.posy*ef.gnormy+ef.lprojection;ef.tp0=el.y*ef.gnormx-el.x*ef.gnormy;ef.tp1=ej.y*ef.gnormx-ej.x*ef.gnormy;el=ej;ei=ei.next}var eh=eb.gverts.next;var eg=ea.elt;eg.gnormx=this.axisy*eg.lnormx-this.axisx*eg.lnormy;eg.gnormy=eg.lnormx*this.axisx+eg.lnormy*this.axisy;eg.gprojection=this.posx*eg.gnormx+this.posy*eg.gnormy+eg.lprojection;eg.tp0=el.y*eg.gnormx-el.x*eg.gnormy;eg.tp1=eh.y*eg.gnormx-eh.x*eg.gnormy}};cj.prototype.pre_posx=null;cj.prototype.pre_posy=null;cj.prototype.posx=null;cj.prototype.posy=null;cj.prototype.wrap_pos=null;cj.prototype.velx=null;cj.prototype.vely=null;cj.prototype.wrap_vel=null;cj.prototype.forcex=null;cj.prototype.forcey=null;cj.prototype.wrap_force=null;cj.prototype.kinvelx=null;cj.prototype.kinvely=null;cj.prototype.wrap_kinvel=null;cj.prototype.svelx=null;cj.prototype.svely=null;cj.prototype.wrap_svel=null;cj.prototype.invalidate_pos=function(){var ea=this.shapes.head;while(ea!=null){var eb=ea.elt;if(eb.type==1){eb.polygon.invalidate_gverts();eb.polygon.invalidate_gaxi()}eb.invalidate_worldCOM();ea=ea.next}this.zip_worldCOM=true};cj.prototype.pos_invalidate=function(ec){this.immutable_midstep("Body::position");if(!(this.posx==ec.x&&this.posy==ec.y)){this.posx=ec.x;this.posy=ec.y;var ea=this.shapes.head;while(ea!=null){var eb=ea.elt;if(eb.type==1){eb.polygon.invalidate_gverts();eb.polygon.invalidate_gaxi()}eb.invalidate_worldCOM();ea=ea.next}this.zip_worldCOM=true;this.wake()}};cj.prototype.pos_validate=function(){this.wrap_pos.zpp_inner.x=this.posx;this.wrap_pos.zpp_inner.y=this.posy};cj.prototype.vel_invalidate=function(ea){this.velx=ea.x;this.vely=ea.y;this.wake()};cj.prototype.vel_validate=function(){this.wrap_vel.zpp_inner.x=this.velx;this.wrap_vel.zpp_inner.y=this.vely};cj.prototype.kinvel_invalidate=function(ea){this.kinvelx=ea.x;this.kinvely=ea.y;this.wake()};cj.prototype.kinvel_validate=function(){this.wrap_kinvel.zpp_inner.x=this.kinvelx;this.wrap_kinvel.zpp_inner.y=this.kinvely};cj.prototype.svel_invalidate=function(ea){this.svelx=ea.x;this.svely=ea.y;this.wake()};cj.prototype.svel_validate=function(){this.wrap_svel.zpp_inner.x=this.svelx;this.wrap_svel.zpp_inner.y=this.svely};cj.prototype.force_invalidate=function(ea){this.forcex=ea.x;this.forcey=ea.y;this.wake()};cj.prototype.force_validate=function(){this.wrap_force.zpp_inner.x=this.forcex;this.wrap_force.zpp_inner.y=this.forcey};cj.prototype.setupPosition=function(){var ea=this.posx;var eh=this.posy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_pos=eb;this.wrap_pos.zpp_inner._inuse=true;if(this.world){this.wrap_pos.zpp_inner._immutable=true}else{this.wrap_pos.zpp_inner._invalidate=dX(this,this.pos_invalidate);this.wrap_pos.zpp_inner._validate=dX(this,this.pos_validate)}};cj.prototype.setupVelocity=function(){var ea=this.velx;var eh=this.vely;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_vel=eb;this.wrap_vel.zpp_inner._inuse=true;if(this.world){this.wrap_vel.zpp_inner._immutable=true}else{this.wrap_vel.zpp_inner._invalidate=dX(this,this.vel_invalidate);this.wrap_vel.zpp_inner._validate=dX(this,this.vel_validate)}};cj.prototype.setupkinvel=function(){var ea=this.kinvelx;var eh=this.kinvely;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_kinvel=eb;this.wrap_kinvel.zpp_inner._inuse=true;if(this.world){this.wrap_kinvel.zpp_inner._immutable=true}else{this.wrap_kinvel.zpp_inner._invalidate=dX(this,this.kinvel_invalidate);this.wrap_kinvel.zpp_inner._validate=dX(this,this.kinvel_validate)}};cj.prototype.setupsvel=function(){var ea=this.svelx;var eh=this.svely;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_svel=eb;this.wrap_svel.zpp_inner._inuse=true;if(this.world){this.wrap_svel.zpp_inner._immutable=true}else{this.wrap_svel.zpp_inner._invalidate=dX(this,this.svel_invalidate);this.wrap_svel.zpp_inner._validate=dX(this,this.svel_validate)}};cj.prototype.setupForce=function(){var ea=this.forcex;var eh=this.forcey;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_force=eb;this.wrap_force.zpp_inner._inuse=true;if(this.world){this.wrap_force.zpp_inner._immutable=true}else{this.wrap_force.zpp_inner._invalidate=dX(this,this.force_invalidate);this.wrap_force.zpp_inner._validate=dX(this,this.force_validate)}};cj.prototype.cvel_validate=function(){this.wrapcvel.zpp_inner.x=this.velx+this.kinvelx;this.wrapcvel.zpp_inner.y=this.vely+this.kinvely;this.wrapcvel.zpp_inner.z=this.angvel+this.kinangvel};cj.prototype.wrapcvel=null;cj.prototype.setup_cvel=function(){this.wrapcvel=q.get();this.wrapcvel.zpp_inner.immutable=true;this.wrapcvel.zpp_inner._validate=dX(this,this.cvel_validate)};cj.prototype.angvel=null;cj.prototype.torque=null;cj.prototype.kinangvel=null;cj.prototype.pre_rot=null;cj.prototype.rot=null;cj.prototype.invalidate_rot=function(){this.zip_axis=true;var ea=this.shapes.head;while(ea!=null){var eb=ea.elt;if(eb.type==1){eb.polygon.invalidate_gverts();eb.polygon.invalidate_gaxi()}eb.invalidate_worldCOM();ea=ea.next}this.zip_worldCOM=true};cj.prototype.axisx=null;cj.prototype.axisy=null;cj.prototype.zip_axis=null;cj.prototype.validate_axis=function(){if(this.zip_axis){this.zip_axis=false;this.axisx=Math.sin(this.rot);this.axisy=Math.cos(this.rot)}};cj.prototype.quick_validate_axis=function(){this.axisx=Math.sin(this.rot);this.axisy=Math.cos(this.rot)};cj.prototype.delta_rot=function(ee){this.rot+=ee;if(ee*ee>0.0001){this.axisx=Math.sin(this.rot);this.axisy=Math.cos(this.rot)}else{var ec=ee*ee;var ed=1-0.5*ec;var eb=1-ec*ec/8;var ea=(ed*this.axisx+ee*this.axisy)*eb;this.axisy=(ed*this.axisy-ee*this.axisx)*eb;this.axisx=ea}};cj.prototype.kinematicDelaySleep=null;cj.prototype.mass=null;cj.prototype.zip_mass=null;cj.prototype.massMode=null;cj.prototype.imass=null;cj.prototype.smass=null;cj.prototype.cmass=null;cj.prototype.nomove=null;cj.prototype.invalidate_mass=function(){this.zip_mass=true;this.invalidate_gravMass()};cj.prototype.validate_mass=function(){if(this.zip_mass||this.massMode==0&&false){this.zip_mass=false;if(this.massMode==0){this.cmass=0;var ea=this.shapes.head;while(ea!=null){var eb=ea.elt;eb.refmaterial.density=eb.material.density;eb.validate_area_inertia();this.cmass+=eb.area*eb.material.density;ea=ea.next}}if(this.type==2&&!this.nomove){this.mass=this.cmass;this.imass=this.smass=1/this.mass}else{this.mass=Infinity;this.imass=this.smass=0}}};cj.prototype.gravMass=null;cj.prototype.zip_gravMass=null;cj.prototype.gravMassMode=null;cj.prototype.gravMassScale=null;cj.prototype.zip_gravMassScale=null;cj.prototype.invalidate_gravMass=function(){if(this.gravMassMode!=1){this.zip_gravMass=true}if(this.gravMassMode!=2){this.zip_gravMassScale=true}this.wake()};cj.prototype.validate_gravMass=function(){if(this.zip_gravMass){this.zip_gravMass=false;this.validate_mass();if(this.gravMassMode==0){this.validate_mass();this.gravMass=this.cmass}else{if(this.gravMassMode==2){this.validate_mass();this.gravMass=this.cmass*this.gravMassScale}}}};cj.prototype.invalidate_gravMassScale=function(){if(this.gravMassMode!=2){this.zip_gravMassScale=true}else{this.invalidate_gravMass()}};cj.prototype.validate_gravMassScale=function(){if(this.zip_gravMassScale){this.zip_gravMassScale=false;if(this.gravMassMode==0){this.gravMassScale=1}else{if(this.gravMassMode==1){this.validate_mass();this.gravMassScale=this.gravMass/this.cmass}}}};cj.prototype.inertiaMode=null;cj.prototype.inertia=null;cj.prototype.zip_inertia=null;cj.prototype.cinertia=null;cj.prototype.iinertia=null;cj.prototype.sinertia=null;cj.prototype.norotate=null;cj.prototype.invalidate_inertia=function(){this.zip_inertia=true;this.wake()};cj.prototype.validate_inertia=function(){if(this.zip_inertia||this.inertiaMode==0&&false){this.zip_inertia=false;if(this.inertiaMode==0){this.cinertia=0;var ea=this.shapes.head;while(ea!=null){var eb=ea.elt;eb.refmaterial.density=eb.material.density;eb.validate_area_inertia();this.cinertia+=eb.inertia*eb.area*eb.material.density;ea=ea.next}}if(this.type==2&&!this.norotate){this.inertia=this.cinertia;this.sinertia=this.iinertia=1/this.inertia}else{this.inertia=Infinity;this.sinertia=this.iinertia=0}}};cj.prototype.invalidate_wake=function(){this.wake()};cj.prototype.aabb=null;cj.prototype.zip_aabb=null;cj.prototype.validate_aabb=function(){if(this.zip_aabb){this.zip_aabb=false;this.aabb.minx=Infinity;this.aabb.miny=Infinity;this.aabb.maxx=-Infinity;this.aabb.maxy=-Infinity;var eu=this.shapes.head;while(eu!=null){var eo=eu.elt;if(eo.zip_aabb){if(eo.body!=null){eo.zip_aabb=false;if(eo.type==0){var ev=eo.circle;if(ev.zip_worldCOM){if(ev.body!=null){ev.zip_worldCOM=false;if(ev.zip_localCOM){ev.zip_localCOM=false;if(ev.type==1){var eB=ev.polygon;if(eB.lverts.next.next==null){eB.localCOMx=eB.lverts.next.x;eB.localCOMy=eB.lverts.next.y}else{if(eB.lverts.next.next.next==null){eB.localCOMx=eB.lverts.next.x;eB.localCOMy=eB.lverts.next.y;eB.localCOMx+=eB.lverts.next.next.x;eB.localCOMy+=eB.lverts.next.next.y;eB.localCOMx*=0.5;eB.localCOMy*=0.5}else{eB.localCOMx=0;eB.localCOMy=0;var eC=0;var es=eB.lverts.next;var ek=es;es=es.next;var ej=es;es=es.next;while(es!=null){var eh=es;eC+=ej.x*(eh.y-ek.y);var en=eh.y*ej.x-eh.x*ej.y;eB.localCOMx+=(ej.x+eh.x)*en;eB.localCOMy+=(ej.y+eh.y)*en;ek=ej;ej=eh;es=es.next}es=eB.lverts.next;var ei=es;eC+=ej.x*(ei.y-ek.y);var ef=ei.y*ej.x-ei.x*ej.y;eB.localCOMx+=(ej.x+ei.x)*ef;eB.localCOMy+=(ej.y+ei.y)*ef;ek=ej;es=es.next;var eg=es;eC+=ei.x*(eg.y-ek.y);var ed=eg.y*ei.x-eg.x*ei.y;eB.localCOMx+=(ei.x+eg.x)*ed;eB.localCOMy+=(ei.y+eg.y)*ed;eC=1/(3*eC);var em=eC;eB.localCOMx*=em;eB.localCOMy*=em}}}if(ev.wrap_localCOM!=null){ev.wrap_localCOM.zpp_inner.x=ev.localCOMx;ev.wrap_localCOM.zpp_inner.y=ev.localCOMy}}var eA=ev.body;if(eA.zip_axis){eA.zip_axis=false;eA.axisx=Math.sin(eA.rot);eA.axisy=Math.cos(eA.rot)}ev.worldCOMx=ev.body.posx+(ev.body.axisy*ev.localCOMx-ev.body.axisx*ev.localCOMy);ev.worldCOMy=ev.body.posy+(ev.localCOMx*ev.body.axisx+ev.localCOMy*ev.body.axisy)}}var ec=ev.radius;var eb=ev.radius;ev.aabb.minx=ev.worldCOMx-ec;ev.aabb.miny=ev.worldCOMy-eb;ev.aabb.maxx=ev.worldCOMx+ec;ev.aabb.maxy=ev.worldCOMy+eb}else{var ey=eo.polygon;if(ey.zip_gverts){if(ey.body!=null){ey.zip_gverts=false;ey.validate_lverts();var ex=ey.body;if(ex.zip_axis){ex.zip_axis=false;ex.axisx=Math.sin(ex.rot);ex.axisy=Math.cos(ex.rot)}var el=ey.lverts.next;var er=ey.gverts.next;while(er!=null){var ez=er;var et=el;el=el.next;ez.x=ey.body.posx+(ey.body.axisy*et.x-ey.body.axisx*et.y);ez.y=ey.body.posy+(et.x*ey.body.axisx+et.y*ey.body.axisy);er=er.next}}}var ea=ey.gverts.next;ey.aabb.minx=ea.x;ey.aabb.miny=ea.y;ey.aabb.maxx=ea.x;ey.aabb.maxy=ea.y;var ep=ey.gverts.next.next;while(ep!=null){var eq=ep;if(eq.x<ey.aabb.minx){ey.aabb.minx=eq.x}if(eq.x>ey.aabb.maxx){ey.aabb.maxx=eq.x}if(eq.y<ey.aabb.miny){ey.aabb.miny=eq.y}if(eq.y>ey.aabb.maxy){ey.aabb.maxy=eq.y}ep=ep.next}}}}var ew=this.aabb;var ee=eo.aabb;if(ee.minx<ew.minx){ew.minx=ee.minx}if(ee.maxx>ew.maxx){ew.maxx=ee.maxx}if(ee.miny<ew.miny){ew.miny=ee.miny}if(ee.maxy>ew.maxy){ew.maxy=ee.maxy}eu=eu.next}}};cj.prototype.invalidate_aabb=function(){this.zip_aabb=true};cj.prototype.localCOMx=null;cj.prototype.localCOMy=null;cj.prototype.zip_localCOM=null;cj.prototype.worldCOMx=null;cj.prototype.worldCOMy=null;cj.prototype.zip_worldCOM=null;cj.prototype.wrap_localCOM=null;cj.prototype.wrap_worldCOM=null;cj.prototype.invalidate_localCOM=function(){this.zip_localCOM=true;this.zip_worldCOM=true};cj.prototype.invalidate_worldCOM=function(){this.zip_worldCOM=true};cj.prototype.validate_localCOM=function(){if(this.zip_localCOM){this.zip_localCOM=false;var ek=0;var ei=0;var ea=0;var eq=this.shapes.head;while(eq!=null){var eo=eq.elt;if(eo.zip_localCOM){eo.zip_localCOM=false;if(eo.type==1){var er=eo.polygon;if(er.lverts.next.next==null){er.localCOMx=er.lverts.next.x;er.localCOMy=er.lverts.next.y}else{if(er.lverts.next.next.next==null){er.localCOMx=er.lverts.next.x;er.localCOMy=er.lverts.next.y;er.localCOMx+=er.lverts.next.next.x;er.localCOMy+=er.lverts.next.next.y;er.localCOMx*=0.5;er.localCOMy*=0.5}else{er.localCOMx=0;er.localCOMy=0;var es=0;var ep=er.lverts.next;var el=ep;ep=ep.next;var ej=ep;ep=ep.next;while(ep!=null){var eg=ep;es+=ej.x*(eg.y-el.y);var en=eg.y*ej.x-eg.x*ej.y;er.localCOMx+=(ej.x+eg.x)*en;er.localCOMy+=(ej.y+eg.y)*en;el=ej;ej=eg;ep=ep.next}ep=er.lverts.next;var eh=ep;es+=ej.x*(eh.y-el.y);var ee=eh.y*ej.x-eh.x*ej.y;er.localCOMx+=(ej.x+eh.x)*ee;er.localCOMy+=(ej.y+eh.y)*ee;el=ej;ep=ep.next;var ef=ep;es+=eh.x*(ef.y-el.y);var ec=ef.y*eh.x-ef.x*eh.y;er.localCOMx+=(eh.x+ef.x)*ec;er.localCOMy+=(eh.y+ef.y)*ec;es=1/(3*es);var em=es;er.localCOMx*=em;er.localCOMy*=em}}}if(eo.wrap_localCOM!=null){eo.wrap_localCOM.zpp_inner.x=eo.localCOMx;eo.wrap_localCOM.zpp_inner.y=eo.localCOMy}}eo.validate_area_inertia();var ed=eo.area*eo.material.density;ek+=eo.localCOMx*ed;ei+=eo.localCOMy*ed;ea+=eo.area*eo.material.density;eq=eq.next}if(ea!=0){var eb=1/ea;this.localCOMx=ek*eb;this.localCOMy=ei*eb}if(this.wrap_localCOM!=null){this.wrap_localCOM.zpp_inner.x=this.localCOMx;this.wrap_localCOM.zpp_inner.y=this.localCOMy}if(this.zip_mass&&this.massMode==0){this.zip_mass=false;this.cmass=ea;if(this.type==2){this.mass=this.cmass;this.imass=this.smass=1/this.mass}else{this.mass=Infinity;this.imass=this.smass=0}}}};cj.prototype.validate_worldCOM=function(){if(this.zip_worldCOM){this.zip_worldCOM=false;this.validate_localCOM();if(this.zip_axis){this.zip_axis=false;this.axisx=Math.sin(this.rot);this.axisy=Math.cos(this.rot)}this.worldCOMx=this.posx+(this.axisy*this.localCOMx-this.axisx*this.localCOMy);this.worldCOMy=this.posy+(this.localCOMx*this.axisx+this.localCOMy*this.axisy);if(this.wrap_worldCOM!=null){this.wrap_worldCOM.zpp_inner.x=this.worldCOMx;this.wrap_worldCOM.zpp_inner.y=this.worldCOMy}}};cj.prototype.getlocalCOM=function(){this.validate_localCOM()};cj.prototype.getworldCOM=function(){this.validate_worldCOM()};cj.prototype.__immutable_midstep=function(ea){};cj.prototype.clear=function(){while(this.shapes.head!=null){var ed=this.shapes.pop_unsafe();ed.removedFromBody();ed.body=null}this.invalidate_shapes();this.pre_posx=0;this.pre_posy=0;this.posx=0;this.posy=0;this.velx=0;this.vely=0;this.forcex=0;this.forcey=0;this.kinvelx=0;this.kinvely=0;this.svelx=0;this.svely=0;this.angvel=this.torque=this.kinangvel=this.pre_rot=this.rot=0;var ec=this.shapes.head;while(ec!=null){var eb=ec.elt;if(eb.type==1){eb.polygon.invalidate_gverts();eb.polygon.invalidate_gaxi()}eb.invalidate_worldCOM();ec=ec.next}this.zip_worldCOM=true;this.zip_axis=true;var ee=this.shapes.head;while(ee!=null){var ea=ee.elt;if(ea.type==1){ea.polygon.invalidate_gverts();ea.polygon.invalidate_gaxi()}ea.invalidate_worldCOM();ee=ee.next}this.zip_worldCOM=true;this.axisx=0;this.axisy=1;this.zip_axis=false;this.massMode=0;this.gravMassMode=0;this.gravMassScale=1;this.inertiaMode=0;this.norotate=false;this.nomove=false};cj.prototype.aabb_validate=function(){if(this.zip_aabb){this.zip_aabb=false;this.aabb.minx=Infinity;this.aabb.miny=Infinity;this.aabb.maxx=-Infinity;this.aabb.maxy=-Infinity;var eu=this.shapes.head;while(eu!=null){var eo=eu.elt;if(eo.zip_aabb){if(eo.body!=null){eo.zip_aabb=false;if(eo.type==0){var ev=eo.circle;if(ev.zip_worldCOM){if(ev.body!=null){ev.zip_worldCOM=false;if(ev.zip_localCOM){ev.zip_localCOM=false;if(ev.type==1){var eB=ev.polygon;if(eB.lverts.next.next==null){eB.localCOMx=eB.lverts.next.x;eB.localCOMy=eB.lverts.next.y}else{if(eB.lverts.next.next.next==null){eB.localCOMx=eB.lverts.next.x;eB.localCOMy=eB.lverts.next.y;eB.localCOMx+=eB.lverts.next.next.x;eB.localCOMy+=eB.lverts.next.next.y;eB.localCOMx*=0.5;eB.localCOMy*=0.5}else{eB.localCOMx=0;eB.localCOMy=0;var eC=0;var es=eB.lverts.next;var ek=es;es=es.next;var ej=es;es=es.next;while(es!=null){var eh=es;eC+=ej.x*(eh.y-ek.y);var en=eh.y*ej.x-eh.x*ej.y;eB.localCOMx+=(ej.x+eh.x)*en;eB.localCOMy+=(ej.y+eh.y)*en;ek=ej;ej=eh;es=es.next}es=eB.lverts.next;var ei=es;eC+=ej.x*(ei.y-ek.y);var ef=ei.y*ej.x-ei.x*ej.y;eB.localCOMx+=(ej.x+ei.x)*ef;eB.localCOMy+=(ej.y+ei.y)*ef;ek=ej;es=es.next;var eg=es;eC+=ei.x*(eg.y-ek.y);var ed=eg.y*ei.x-eg.x*ei.y;eB.localCOMx+=(ei.x+eg.x)*ed;eB.localCOMy+=(ei.y+eg.y)*ed;eC=1/(3*eC);var em=eC;eB.localCOMx*=em;eB.localCOMy*=em}}}if(ev.wrap_localCOM!=null){ev.wrap_localCOM.zpp_inner.x=ev.localCOMx;ev.wrap_localCOM.zpp_inner.y=ev.localCOMy}}var eA=ev.body;if(eA.zip_axis){eA.zip_axis=false;eA.axisx=Math.sin(eA.rot);eA.axisy=Math.cos(eA.rot)}ev.worldCOMx=ev.body.posx+(ev.body.axisy*ev.localCOMx-ev.body.axisx*ev.localCOMy);ev.worldCOMy=ev.body.posy+(ev.localCOMx*ev.body.axisx+ev.localCOMy*ev.body.axisy)}}var ec=ev.radius;var eb=ev.radius;ev.aabb.minx=ev.worldCOMx-ec;ev.aabb.miny=ev.worldCOMy-eb;ev.aabb.maxx=ev.worldCOMx+ec;ev.aabb.maxy=ev.worldCOMy+eb}else{var ey=eo.polygon;if(ey.zip_gverts){if(ey.body!=null){ey.zip_gverts=false;ey.validate_lverts();var ex=ey.body;if(ex.zip_axis){ex.zip_axis=false;ex.axisx=Math.sin(ex.rot);ex.axisy=Math.cos(ex.rot)}var el=ey.lverts.next;var er=ey.gverts.next;while(er!=null){var ez=er;var et=el;el=el.next;ez.x=ey.body.posx+(ey.body.axisy*et.x-ey.body.axisx*et.y);ez.y=ey.body.posy+(et.x*ey.body.axisx+et.y*ey.body.axisy);er=er.next}}}var ea=ey.gverts.next;ey.aabb.minx=ea.x;ey.aabb.miny=ea.y;ey.aabb.maxx=ea.x;ey.aabb.maxy=ea.y;var ep=ey.gverts.next.next;while(ep!=null){var eq=ep;if(eq.x<ey.aabb.minx){ey.aabb.minx=eq.x}if(eq.x>ey.aabb.maxx){ey.aabb.maxx=eq.x}if(eq.y<ey.aabb.miny){ey.aabb.miny=eq.y}if(eq.y>ey.aabb.maxy){ey.aabb.maxy=eq.y}ep=ep.next}}}}var ew=this.aabb;var ee=eo.aabb;if(ee.minx<ew.minx){ew.minx=ee.minx}if(ee.maxx>ew.maxx){ew.maxx=ee.maxx}if(ee.miny<ew.miny){ew.miny=ee.miny}if(ee.maxy>ew.maxy){ew.maxy=ee.maxy}eu=eu.next}}};cj.prototype.shapes_adder=function(eb){if(eb.zpp_inner.body!=this){if(eb.zpp_inner.body!=null){eb.zpp_inner.body.wrap_shapes.remove(eb)}eb.zpp_inner.body=this;eb.zpp_inner.addedToBody();if(this.space!=null){var ed=this.space;var ea=eb.zpp_inner;var ec=ea.body;if(!ec.world){ec.component.waket=ed.stamp+(ed.midstep?0:1);if(ec.type==3){ec.kinematicDelaySleep=true}if(ec.component.sleeping){ed.really_wake(ec,false)}}ed.bphase.insert(ea);ea.addedToSpace()}if(eb.zpp_inner.type==1){eb.zpp_inner.polygon.invalidate_gaxi();eb.zpp_inner.polygon.invalidate_gverts()}return true}else{return false}};cj.prototype.shapes_subber=function(ea){if(this.space!=null){this.space.removed_shape(ea.zpp_inner)}ea.zpp_inner.body=null;ea.zpp_inner.removedFromBody()};cj.prototype.shapes_invalidate=function(ea){this.invalidate_shapes()};cj.prototype.addedToSpace=function(){if(bx.zpp_pool==null){this.component=new bx()}else{this.component=bx.zpp_pool;bx.zpp_pool=this.component.next;this.component.next=null}this.component.isBody=true;this.component.body=this;this.__iaddedToSpace()};cj.prototype.removedFromSpace=function(){while(this.arbiters.head!=null){var eb=this.arbiters.pop_unsafe();eb.cleared=true;if(eb.b2==this){var eh=eb.b1.arbiters;var eg=null;var en=eh.head;while(en!=null){if(en.elt==eb){var ed;var ej;if(eg==null){ed=eh.head;ej=ed.next;eh.head=ej;if(eh.head==null){eh.pushmod=true}}else{ed=eg.next;ej=ed.next;eg.next=ej;if(ej==null){eh.pushmod=true}}var ea=ed;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;eh.modified=true;eh.length--;eh.pushmod=true;break}eg=en;en=en.next}}if(eb.b1==this){var ek=eb.b2.arbiters;var ef=null;var em=ek.head;while(em!=null){if(em.elt==eb){var ei;var el;if(ef==null){ei=ek.head;el=ei.next;ek.head=el;if(ek.head==null){ek.pushmod=true}}else{ei=ef.next;el=ei.next;ef.next=el;if(el==null){ek.pushmod=true}}var ee=ei;ee.elt=null;ee.next=dL.zpp_pool;dL.zpp_pool=ee;ek.modified=true;ek.length--;ek.pushmod=true;break}ef=em;em=em.next}}if(eb.pair!=null){eb.pair.arb=null;eb.pair=null}eb.active=false;this.space.f_arbiters.modified=true}var ec=this.component;ec.body=null;ec.constraint=null;ec.next=bx.zpp_pool;bx.zpp_pool=ec;this.component=null;this.__iremovedFromSpace()};cj.prototype.copy=function(){var ea=new at().zpp_inner;ea.type=this.type;ea.bulletEnabled=this.bulletEnabled;ea.disableCCD=this.disableCCD;var eb=this.shapes.head;while(eb!=null){var ef=ea.outer.zpp_inner.wrap_shapes;var ee=eb.elt.outer.copy();if(ef.zpp_inner.reverse_flag){ef.push(ee)}else{ef.unshift(ee)}eb=eb.next}ea.posx=this.posx;ea.posy=this.posy;ea.velx=this.velx;ea.vely=this.vely;ea.forcex=this.forcex;ea.forcey=this.forcey;ea.rot=this.rot;ea.angvel=this.angvel;ea.torque=this.torque;ea.kinvelx=this.kinvelx;ea.kinvely=this.kinvely;ea.kinangvel=this.kinangvel;ea.svelx=this.svelx;ea.svely=this.svely;if(!this.zip_axis){ea.axisx=this.axisx;ea.axisy=this.axisy}else{ea.zip_axis=true;var ed=ea.shapes.head;while(ed!=null){var ec=ed.elt;if(ec.type==1){ec.polygon.invalidate_gverts();ec.polygon.invalidate_gaxi()}ec.invalidate_worldCOM();ed=ed.next}ea.zip_worldCOM=true}ea.rot=this.rot;ea.massMode=this.massMode;ea.gravMassMode=this.gravMassMode;ea.inertiaMode=this.inertiaMode;ea.norotate=this.norotate;ea.nomove=this.nomove;ea.cmass=this.cmass;ea.cinertia=this.cinertia;if(!this.zip_mass){ea.mass=this.mass}else{ea.invalidate_mass()}if(!this.zip_gravMass){ea.gravMass=this.gravMass}else{ea.invalidate_gravMass()}if(!this.zip_gravMassScale){ea.gravMassScale=this.gravMassScale}else{ea.invalidate_gravMassScale()}if(!this.zip_inertia){ea.inertia=this.inertia}else{ea.invalidate_inertia()}if(!this.zip_aabb){ea.aabb.minx=this.aabb.minx;ea.aabb.miny=this.aabb.miny;ea.aabb.maxx=this.aabb.maxx;ea.aabb.maxy=this.aabb.maxy}else{ea.zip_aabb=true}if(!this.zip_localCOM){ea.localCOMx=this.localCOMx;ea.localCOMy=this.localCOMy}else{ea.zip_localCOM=true;ea.zip_worldCOM=true}if(!this.zip_worldCOM){ea.worldCOMx=this.worldCOMx;ea.worldCOMy=this.worldCOMy}else{ea.zip_worldCOM=true}this.copyto(ea.outer);return ea.outer};cj.prototype.__class__=cj;var cQ=zpp_nape.phys.ZPP_Compound=function(){this.space=null;this.compound=null;this.depth=0;this.wrap_compounds=null;this.wrap_constraints=null;this.wrap_bodies=null;this.compounds=null;this.constraints=null;this.bodies=null;this.outer=null;dM.call(this);this.icompound=this;this.depth=1;this.bodies=new bs();this.wrap_bodies=b0.get(this.bodies);this.wrap_bodies.zpp_inner.adder=dX(this,this.bodies_adder);this.wrap_bodies.zpp_inner.subber=dX(this,this.bodies_subber);this.constraints=new m();this.wrap_constraints=aZ.get(this.constraints);this.wrap_constraints.zpp_inner.adder=dX(this,this.constraints_adder);this.wrap_constraints.zpp_inner.subber=dX(this,this.constraints_subber);this.compounds=new n();this.wrap_compounds=bj.get(this.compounds);this.wrap_compounds.zpp_inner.adder=dX(this,this.compounds_adder);this.wrap_compounds.zpp_inner.subber=dX(this,this.compounds_subber)};cQ.__name__=["zpp_nape","phys","ZPP_Compound"];cQ.__super__=dM;cQ.prototype=Object.create(dM.prototype);cQ.prototype.outer=null;cQ.prototype.bodies=null;cQ.prototype.constraints=null;cQ.prototype.compounds=null;cQ.prototype.wrap_bodies=null;cQ.prototype.wrap_constraints=null;cQ.prototype.wrap_compounds=null;cQ.prototype.depth=null;cQ.prototype.compound=null;cQ.prototype.space=null;cQ.prototype.__imutable_midstep=function(ea){};cQ.prototype.addedToSpace=function(){this.__iaddedToSpace()};cQ.prototype.removedFromSpace=function(){this.__iremovedFromSpace()};cQ.prototype.breakApart=function(){if(this.space!=null){this.__iremovedFromSpace();this.space.nullInteractorType(this)}if(this.compound!=null){this.compound.compounds.remove(this)}else{if(this.space!=null){this.space.compounds.remove(this)}}while(this.bodies.head!=null){var ea=this.bodies.pop_unsafe();if((ea.compound=this.compound)!=null){this.compound.bodies.add(ea)}else{if(this.space!=null){this.space.bodies.add(ea)}}if(this.space!=null){this.space.freshInteractorType(ea)}}while(this.constraints.head!=null){var ec=this.constraints.pop_unsafe();if((ec.compound=this.compound)!=null){this.compound.constraints.add(ec)}else{if(this.space!=null){this.space.constraints.add(ec)}}}while(this.compounds.head!=null){var eb=this.compounds.pop_unsafe();if((eb.compound=this.compound)!=null){this.compound.compounds.add(eb)}else{if(this.space!=null){this.space.compounds.add(eb)}}if(this.space!=null){this.space.freshInteractorType(eb)}}this.compound=null;this.space=null};cQ.prototype.bodies_adder=function(ea){if(ea.zpp_inner.compound!=this){if(ea.zpp_inner.compound!=null){ea.zpp_inner.compound.wrap_bodies.remove(ea)}else{if(ea.zpp_inner.space!=null){ea.zpp_inner.space.wrap_bodies.remove(ea)}}ea.zpp_inner.compound=this;if(this.space!=null){this.space.addBody(ea.zpp_inner)}return true}else{return false}};cQ.prototype.bodies_subber=function(ea){ea.zpp_inner.compound=null;if(this.space!=null){this.space.remBody(ea.zpp_inner)}};cQ.prototype.constraints_adder=function(ea){if(ea.zpp_inner.compound!=this){if(ea.zpp_inner.compound!=null){ea.zpp_inner.compound.wrap_constraints.remove(ea)}else{if(ea.zpp_inner.space!=null){ea.zpp_inner.space.wrap_constraints.remove(ea)}}ea.zpp_inner.compound=this;if(this.space!=null){this.space.addConstraint(ea.zpp_inner)}return true}else{return false}};cQ.prototype.constraints_subber=function(ea){ea.zpp_inner.compound=null;if(this.space!=null){this.space.remConstraint(ea.zpp_inner)}};cQ.prototype.compounds_adder=function(ea){if(ea.zpp_inner.compound!=this){if(ea.zpp_inner.compound!=null){ea.zpp_inner.compound.wrap_compounds.remove(ea)}else{if(ea.zpp_inner.space!=null){ea.zpp_inner.space.wrap_compounds.remove(ea)}}ea.zpp_inner.compound=this;ea.zpp_inner.depth=this.depth+1;if(this.space!=null){this.space.addCompound(ea.zpp_inner)}return true}else{return false}};cQ.prototype.compounds_subber=function(ea){ea.zpp_inner.compound=null;ea.zpp_inner.depth=1;if(this.space!=null){this.space.remCompound(ea.zpp_inner)}};cQ.prototype.copy=function(ea,ed){var en=ea==null;if(ea==null){ea=[]}if(ed==null){ed=[]}var ej=new dq();var ec=this.compounds.head;while(ec!=null){var eb=ec.elt.copy(ea,ed);eb.zpp_inner.immutable_midstep("Compound::compound");if((eb.zpp_inner.compound==null?null:eb.zpp_inner.compound.outer)!=ej){if((eb.zpp_inner.compound==null?null:eb.zpp_inner.compound.outer)!=null){(eb.zpp_inner.compound==null?null:eb.zpp_inner.compound.outer).zpp_inner.wrap_compounds.remove(eb)}if(ej!=null){var eg=ej.zpp_inner.wrap_compounds;if(eg.zpp_inner.reverse_flag){eg.push(eb)}else{eg.unshift(eb)}}}ec=ec.next}var ep=this.bodies.head;while(ep!=null){var em=ep.elt;var ei=em.outer.copy();ea.push(cu.dict(em.id,ei));if((ei.zpp_inner.compound==null?null:ei.zpp_inner.compound.outer)!=ej){if((ei.zpp_inner.compound==null?null:ei.zpp_inner.compound.outer)!=null){(ei.zpp_inner.compound==null?null:ei.zpp_inner.compound.outer).zpp_inner.wrap_bodies.remove(ei)}if(ej!=null){var ek=ej.zpp_inner.wrap_bodies;if(ek.zpp_inner.reverse_flag){ek.push(ei)}else{ek.unshift(ei)}}}ep=ep.next}var eo=this.constraints.head;while(eo!=null){var eq=eo.elt.copy(ea,ed);if((eq.zpp_inner.compound==null?null:eq.zpp_inner.compound.outer)!=ej){if((eq.zpp_inner.compound==null?null:eq.zpp_inner.compound.outer)!=null){(eq.zpp_inner.compound==null?null:eq.zpp_inner.compound.outer).zpp_inner.wrap_constraints.remove(eq)}if(ej!=null){var eh=ej.zpp_inner.wrap_constraints;if(eh.zpp_inner.reverse_flag){eh.push(eq)}else{eh.unshift(eq)}}}eo=eo.next}if(en){while(ed.length>0){var ee=ed.pop();var ef=0;while(ef<ea.length){var el=ea[ef];++ef;if(el.id==ee.id){ee.cb(el.bc);break}}}}this.copyto(ej);return ej};cQ.prototype.__class__=cQ;var b6=zpp_nape.phys.ZPP_FluidProperties=function(){this.wrap_gravity=null;this.gravityy=0;this.gravityx=0;this.density=0;this.viscosity=0;this.wrap_shapes=null;this.shapes=null;this.outer=null;this.userData=null;this.next=null;this.shapes=new s();this.density=this.viscosity=1;this.wrap_gravity=null;this.gravityx=0;this.gravityy=0};b6.__name__=["zpp_nape","phys","ZPP_FluidProperties"];b6.prototype.next=null;b6.prototype.userData=null;b6.prototype.outer=null;b6.prototype.wrapper=function(){if(this.outer==null){this.outer=new aM();var ea=this.outer.zpp_inner;ea.outer=null;ea.next=b6.zpp_pool;b6.zpp_pool=ea;this.outer.zpp_inner=this}return this.outer};b6.prototype.free=function(){this.outer=null};b6.prototype.alloc=function(){};b6.prototype.shapes=null;b6.prototype.wrap_shapes=null;b6.prototype.feature_cons=function(){this.shapes=new s()};b6.prototype.addShape=function(ea){this.shapes.add(ea)};b6.prototype.remShape=function(ea){this.shapes.remove(ea)};b6.prototype.copy=function(){var ea;if(b6.zpp_pool==null){ea=new b6()}else{ea=b6.zpp_pool;b6.zpp_pool=ea.next;ea.next=null}ea.viscosity=this.viscosity;ea.density=this.density;return ea};b6.prototype.viscosity=null;b6.prototype.density=null;b6.prototype.gravityx=null;b6.prototype.gravityy=null;b6.prototype.wrap_gravity=null;b6.prototype.gravity_invalidate=function(ea){this.gravityx=ea.x;this.gravityy=ea.y;this.invalidate()};b6.prototype.gravity_validate=function(){this.wrap_gravity.zpp_inner.x=this.gravityx;this.wrap_gravity.zpp_inner.y=this.gravityy};b6.prototype.getgravity=function(){var ea=this.gravityx;var eh=this.gravityy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_gravity=eb;this.wrap_gravity.zpp_inner._inuse=true;this.wrap_gravity.zpp_inner._invalidate=dX(this,this.gravity_invalidate);this.wrap_gravity.zpp_inner._validate=dX(this,this.gravity_validate)};b6.prototype.invalidate=function(){var ea=this.shapes.head;while(ea!=null){ea.elt.invalidate_fluidprops();ea=ea.next}};b6.prototype.__class__=b6;var cJ=zpp_nape.phys.ZPP_Material=function(){this.rollingFriction=0;this.elasticity=0;this.density=0;this.staticFriction=0;this.dynamicFriction=0;this.wrap_shapes=null;this.shapes=null;this.outer=null;this.userData=null;this.next=null;this.shapes=new s();this.elasticity=0;this.dynamicFriction=1;this.staticFriction=2;this.density=0.001;this.rollingFriction=0.01};cJ.__name__=["zpp_nape","phys","ZPP_Material"];cJ.prototype.next=null;cJ.prototype.userData=null;cJ.prototype.outer=null;cJ.prototype.wrapper=function(){if(this.outer==null){this.outer=new dg();var ea=this.outer.zpp_inner;ea.outer=null;ea.next=cJ.zpp_pool;cJ.zpp_pool=ea;this.outer.zpp_inner=this}return this.outer};cJ.prototype.free=function(){this.outer=null};cJ.prototype.alloc=function(){};cJ.prototype.shapes=null;cJ.prototype.wrap_shapes=null;cJ.prototype.feature_cons=function(){this.shapes=new s()};cJ.prototype.addShape=function(ea){this.shapes.add(ea)};cJ.prototype.remShape=function(ea){this.shapes.remove(ea)};cJ.prototype.dynamicFriction=null;cJ.prototype.staticFriction=null;cJ.prototype.density=null;cJ.prototype.elasticity=null;cJ.prototype.rollingFriction=null;cJ.prototype.copy=function(){var ea=new cJ();ea.dynamicFriction=this.dynamicFriction;ea.staticFriction=this.staticFriction;ea.density=this.density;ea.elasticity=this.elasticity;ea.rollingFriction=this.rollingFriction;return ea};cJ.prototype.set=function(ea){this.dynamicFriction=ea.dynamicFriction;this.staticFriction=ea.staticFriction;this.density=ea.density;this.elasticity=ea.elasticity;this.rollingFriction=ea.rollingFriction};cJ.prototype.invalidate=function(ea){var eb=this.shapes.head;while(eb!=null){eb.elt.invalidate_material(ea);eb=eb.next}};cJ.prototype.__class__=cJ;var bZ=zpp_nape.shape.ZPP_Shape=function(eb){this.zip_aabb=false;this.aabb=null;this.pairs=null;this.node=null;this.sweep=null;this.sensorEnabled=false;this.fluidEnabled=false;this.fluidProperties=null;this.filter=null;this.material=null;this.refmaterial=null;this.polygon=null;this.circle=null;this.sweepCoef=0;this.zip_sweepRadius=false;this.sweepRadius=0;this.wrap_worldCOM=null;this.wrap_localCOM=null;this.zip_worldCOM=false;this.worldCOMy=0;this.worldCOMx=0;this.zip_localCOM=false;this.localCOMy=0;this.localCOMx=0;this.zip_angDrag=false;this.angDrag=0;this.inertia=0;this.zip_area_inertia=false;this.area=0;this.type=0;this.body=null;this.outer=null;dM.call(this);this.pairs=new dw();this.ishape=this;this.type=eb;var ea;if(bT.zpp_pool==null){ea=new bT()}else{ea=bT.zpp_pool;bT.zpp_pool=ea.next;ea.next=null}ea.minx=0;ea.miny=0;ea.maxx=0;ea.maxy=0;this.aabb=ea;this.aabb._immutable=true;this.aabb._validate=dX(this,this.aabb_validate);this.zip_area_inertia=this.zip_angDrag=this.zip_localCOM=this.zip_sweepRadius=true;this.localCOMx=0;this.localCOMy=0;this.worldCOMx=0;this.worldCOMy=0;this.fluidEnabled=false;this.sensorEnabled=false;this.fluidProperties=null;this.body=null;this.refmaterial=new cJ();this.sweepRadius=this.sweepCoef=0};bZ.__name__=["zpp_nape","shape","ZPP_Shape"];bZ.__super__=dM;bZ.prototype=Object.create(dM.prototype);bZ.prototype.outer=null;bZ.prototype.body=null;bZ.prototype.type=null;bZ.prototype.isCircle=function(){return this.type==0};bZ.prototype.isPolygon=function(){return this.type==1};bZ.prototype.area=null;bZ.prototype.zip_area_inertia=null;bZ.prototype.inertia=null;bZ.prototype.angDrag=null;bZ.prototype.zip_angDrag=null;bZ.prototype.localCOMx=null;bZ.prototype.localCOMy=null;bZ.prototype.zip_localCOM=null;bZ.prototype.worldCOMx=null;bZ.prototype.worldCOMy=null;bZ.prototype.zip_worldCOM=null;bZ.prototype.wrap_localCOM=null;bZ.prototype.wrap_worldCOM=null;bZ.prototype.sweepRadius=null;bZ.prototype.zip_sweepRadius=null;bZ.prototype.sweepCoef=null;bZ.prototype.invalidate_sweepRadius=function(){this.zip_sweepRadius=true};bZ.prototype.validate_sweepRadius=function(){if(this.zip_sweepRadius){this.zip_sweepRadius=false;if(this.type==0){this.circle.__validate_sweepRadius()}else{this.polygon.__validate_sweepRadius()}}};bZ.prototype.circle=null;bZ.prototype.polygon=null;bZ.prototype.refmaterial=null;bZ.prototype.material=null;bZ.prototype.filter=null;bZ.prototype.fluidProperties=null;bZ.prototype.fluidEnabled=null;bZ.prototype.sensorEnabled=null;bZ.prototype.sweep=null;bZ.prototype.node=null;bZ.prototype.pairs=null;bZ.prototype.clear=function(){if(this.type==0){this.circle.__clear()}else{this.polygon.__clear()}};bZ.prototype.aabb=null;bZ.prototype.zip_aabb=null;bZ.prototype.validate_aabb=function(){if(this.zip_aabb){if(this.body!=null){this.zip_aabb=false;if(this.type==0){var es=this.circle;if(es.zip_worldCOM){if(es.body!=null){es.zip_worldCOM=false;if(es.zip_localCOM){es.zip_localCOM=false;if(es.type==1){var ex=es.polygon;if(ex.lverts.next.next==null){ex.localCOMx=ex.lverts.next.x;ex.localCOMy=ex.lverts.next.y}else{if(ex.lverts.next.next.next==null){ex.localCOMx=ex.lverts.next.x;ex.localCOMy=ex.lverts.next.y;ex.localCOMx+=ex.lverts.next.next.x;ex.localCOMy+=ex.lverts.next.next.y;ex.localCOMx*=0.5;ex.localCOMy*=0.5}else{ex.localCOMx=0;ex.localCOMy=0;var ey=0;var er=ex.lverts.next;var ej=er;er=er.next;var ei=er;er=er.next;while(er!=null){var eg=er;ey+=ei.x*(eg.y-ej.y);var em=eg.y*ei.x-eg.x*ei.y;ex.localCOMx+=(ei.x+eg.x)*em;ex.localCOMy+=(ei.y+eg.y)*em;ej=ei;ei=eg;er=er.next}er=ex.lverts.next;var eh=er;ey+=ei.x*(eh.y-ej.y);var ee=eh.y*ei.x-eh.x*ei.y;ex.localCOMx+=(ei.x+eh.x)*ee;ex.localCOMy+=(ei.y+eh.y)*ee;ej=ei;er=er.next;var ef=er;ey+=eh.x*(ef.y-ej.y);var ed=ef.y*eh.x-ef.x*eh.y;ex.localCOMx+=(eh.x+ef.x)*ed;ex.localCOMy+=(eh.y+ef.y)*ed;ey=1/(3*ey);var el=ey;ex.localCOMx*=el;ex.localCOMy*=el}}}if(es.wrap_localCOM!=null){es.wrap_localCOM.zpp_inner.x=es.localCOMx;es.wrap_localCOM.zpp_inner.y=es.localCOMy}}var ew=es.body;if(ew.zip_axis){ew.zip_axis=false;ew.axisx=Math.sin(ew.rot);ew.axisy=Math.cos(ew.rot)}es.worldCOMx=es.body.posx+(es.body.axisy*es.localCOMx-es.body.axisx*es.localCOMy);es.worldCOMy=es.body.posy+(es.localCOMx*es.body.axisx+es.localCOMy*es.body.axisy)}}var ec=es.radius;var eb=es.radius;es.aabb.minx=es.worldCOMx-ec;es.aabb.miny=es.worldCOMy-eb;es.aabb.maxx=es.worldCOMx+ec;es.aabb.maxy=es.worldCOMy+eb}else{var eu=this.polygon;if(eu.zip_gverts){if(eu.body!=null){eu.zip_gverts=false;eu.validate_lverts();var et=eu.body;if(et.zip_axis){et.zip_axis=false;et.axisx=Math.sin(et.rot);et.axisy=Math.cos(et.rot)}var ek=eu.lverts.next;var ep=eu.gverts.next;while(ep!=null){var ev=ep;var eq=ek;ek=ek.next;ev.x=eu.body.posx+(eu.body.axisy*eq.x-eu.body.axisx*eq.y);ev.y=eu.body.posy+(eq.x*eu.body.axisx+eq.y*eu.body.axisy);ep=ep.next}}}var ea=eu.gverts.next;eu.aabb.minx=ea.x;eu.aabb.miny=ea.y;eu.aabb.maxx=ea.x;eu.aabb.maxy=ea.y;var eo=eu.gverts.next.next;while(eo!=null){var en=eo;if(en.x<eu.aabb.minx){eu.aabb.minx=en.x}if(en.x>eu.aabb.maxx){eu.aabb.maxx=en.x}if(en.y<eu.aabb.miny){eu.aabb.miny=en.y}if(en.y>eu.aabb.maxy){eu.aabb.maxy=en.y}eo=eo.next}}}}};bZ.prototype.force_validate_aabb=function(){if(this.type==0){var eh=this.circle;eh.worldCOMx=eh.body.posx+(eh.body.axisy*eh.localCOMx-eh.body.axisx*eh.localCOMy);eh.worldCOMy=eh.body.posy+(eh.localCOMx*eh.body.axisx+eh.localCOMy*eh.body.axisy);eh.aabb.minx=eh.worldCOMx-eh.radius;eh.aabb.miny=eh.worldCOMy-eh.radius;eh.aabb.maxx=eh.worldCOMx+eh.radius;eh.aabb.maxy=eh.worldCOMy+eh.radius}else{var ee=this.polygon;var ea=ee.lverts.next;var eg=ee.gverts.next;var ec=ea;ea=ea.next;eg.x=ee.body.posx+(ee.body.axisy*ec.x-ee.body.axisx*ec.y);eg.y=ee.body.posy+(ec.x*ee.body.axisx+ec.y*ee.body.axisy);ee.aabb.minx=eg.x;ee.aabb.miny=eg.y;ee.aabb.maxx=eg.x;ee.aabb.maxy=eg.y;var ed=ee.gverts.next.next;while(ed!=null){var ef=ed;var eb=ea;ea=ea.next;ef.x=ee.body.posx+(ee.body.axisy*eb.x-ee.body.axisx*eb.y);ef.y=ee.body.posy+(eb.x*ee.body.axisx+eb.y*ee.body.axisy);if(ef.x<ee.aabb.minx){ee.aabb.minx=ef.x}if(ef.x>ee.aabb.maxx){ee.aabb.maxx=ef.x}if(ef.y<ee.aabb.miny){ee.aabb.miny=ef.y}if(ef.y>ee.aabb.maxy){ee.aabb.maxy=ef.y}ed=ed.next}}};bZ.prototype.invalidate_aabb=function(){this.zip_aabb=true;if(this.body!=null){this.body.zip_aabb=true}};bZ.prototype.validate_area_inertia=function(){if(this.zip_area_inertia){this.zip_area_inertia=false;if(this.type==0){this.circle.__validate_area_inertia()}else{this.polygon.__validate_area_inertia()}}};bZ.prototype.validate_angDrag=function(){if(this.zip_angDrag||this.refmaterial.dynamicFriction!=this.material.dynamicFriction){this.zip_angDrag=false;this.refmaterial.dynamicFriction=this.material.dynamicFriction;if(this.type==0){this.circle.__validate_angDrag()}else{this.polygon.__validate_angDrag()}}};bZ.prototype.validate_localCOM=function(){if(this.zip_localCOM){this.zip_localCOM=false;if(this.type==1){var ef=this.polygon;if(ef.lverts.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y}else{if(ef.lverts.next.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y;ef.localCOMx+=ef.lverts.next.next.x;ef.localCOMy+=ef.lverts.next.next.y;ef.localCOMx*=0.5;ef.localCOMy*=0.5}else{ef.localCOMx=0;ef.localCOMy=0;var eb=0;var ec=ef.lverts.next;var ek=ec;ec=ec.next;var ei=ec;ec=ec.next;while(ec!=null){var eg=ec;eb+=ei.x*(eg.y-ek.y);var ea=eg.y*ei.x-eg.x*ei.y;ef.localCOMx+=(ei.x+eg.x)*ea;ef.localCOMy+=(ei.y+eg.y)*ea;ek=ei;ei=eg;ec=ec.next}ec=ef.lverts.next;var ee=ec;eb+=ei.x*(ee.y-ek.y);var ej=ee.y*ei.x-ee.x*ei.y;ef.localCOMx+=(ei.x+ee.x)*ej;ef.localCOMy+=(ei.y+ee.y)*ej;ek=ei;ec=ec.next;var ed=ec;eb+=ee.x*(ed.y-ek.y);var eh=ed.y*ee.x-ed.x*ee.y;ef.localCOMx+=(ee.x+ed.x)*eh;ef.localCOMy+=(ee.y+ed.y)*eh;eb=1/(3*eb);var el=eb;ef.localCOMx*=el;ef.localCOMy*=el}}}if(this.wrap_localCOM!=null){this.wrap_localCOM.zpp_inner.x=this.localCOMx;this.wrap_localCOM.zpp_inner.y=this.localCOMy}}};bZ.prototype.validate_worldCOM=function(){if(this.zip_worldCOM){if(this.body!=null){this.zip_worldCOM=false;if(this.zip_localCOM){this.zip_localCOM=false;if(this.type==1){var ef=this.polygon;if(ef.lverts.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y}else{if(ef.lverts.next.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y;ef.localCOMx+=ef.lverts.next.next.x;ef.localCOMy+=ef.lverts.next.next.y;ef.localCOMx*=0.5;ef.localCOMy*=0.5}else{ef.localCOMx=0;ef.localCOMy=0;var eb=0;var ec=ef.lverts.next;var el=ec;ec=ec.next;var ej=ec;ec=ec.next;while(ec!=null){var eh=ec;eb+=ej.x*(eh.y-el.y);var ea=eh.y*ej.x-eh.x*ej.y;ef.localCOMx+=(ej.x+eh.x)*ea;ef.localCOMy+=(ej.y+eh.y)*ea;el=ej;ej=eh;ec=ec.next}ec=ef.lverts.next;var ee=ec;eb+=ej.x*(ee.y-el.y);var ek=ee.y*ej.x-ee.x*ej.y;ef.localCOMx+=(ej.x+ee.x)*ek;ef.localCOMy+=(ej.y+ee.y)*ek;el=ej;ec=ec.next;var ed=ec;eb+=ee.x*(ed.y-el.y);var ei=ed.y*ee.x-ed.x*ee.y;ef.localCOMx+=(ee.x+ed.x)*ei;ef.localCOMy+=(ee.y+ed.y)*ei;eb=1/(3*eb);var em=eb;ef.localCOMx*=em;ef.localCOMy*=em}}}if(this.wrap_localCOM!=null){this.wrap_localCOM.zpp_inner.x=this.localCOMx;this.wrap_localCOM.zpp_inner.y=this.localCOMy}}var eg=this.body;if(eg.zip_axis){eg.zip_axis=false;eg.axisx=Math.sin(eg.rot);eg.axisy=Math.cos(eg.rot)}this.worldCOMx=this.body.posx+(this.body.axisy*this.localCOMx-this.body.axisx*this.localCOMy);this.worldCOMy=this.body.posy+(this.localCOMx*this.body.axisx+this.localCOMy*this.body.axisy)}}};bZ.prototype.getworldCOM=function(){if(this.zip_worldCOM){if(this.body!=null){this.zip_worldCOM=false;if(this.zip_localCOM){this.zip_localCOM=false;if(this.type==1){var ef=this.polygon;if(ef.lverts.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y}else{if(ef.lverts.next.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y;ef.localCOMx+=ef.lverts.next.next.x;ef.localCOMy+=ef.lverts.next.next.y;ef.localCOMx*=0.5;ef.localCOMy*=0.5}else{ef.localCOMx=0;ef.localCOMy=0;var eb=0;var ec=ef.lverts.next;var el=ec;ec=ec.next;var ej=ec;ec=ec.next;while(ec!=null){var eh=ec;eb+=ej.x*(eh.y-el.y);var ea=eh.y*ej.x-eh.x*ej.y;ef.localCOMx+=(ej.x+eh.x)*ea;ef.localCOMy+=(ej.y+eh.y)*ea;el=ej;ej=eh;ec=ec.next}ec=ef.lverts.next;var ee=ec;eb+=ej.x*(ee.y-el.y);var ek=ee.y*ej.x-ee.x*ej.y;ef.localCOMx+=(ej.x+ee.x)*ek;ef.localCOMy+=(ej.y+ee.y)*ek;el=ej;ec=ec.next;var ed=ec;eb+=ee.x*(ed.y-el.y);var ei=ed.y*ee.x-ed.x*ee.y;ef.localCOMx+=(ee.x+ed.x)*ei;ef.localCOMy+=(ee.y+ed.y)*ei;eb=1/(3*eb);var em=eb;ef.localCOMx*=em;ef.localCOMy*=em}}}if(this.wrap_localCOM!=null){this.wrap_localCOM.zpp_inner.x=this.localCOMx;this.wrap_localCOM.zpp_inner.y=this.localCOMy}}var eg=this.body;if(eg.zip_axis){eg.zip_axis=false;eg.axisx=Math.sin(eg.rot);eg.axisy=Math.cos(eg.rot)}this.worldCOMx=this.body.posx+(this.body.axisy*this.localCOMx-this.body.axisx*this.localCOMy);this.worldCOMy=this.body.posy+(this.localCOMx*this.body.axisx+this.localCOMy*this.body.axisy)}}this.wrap_worldCOM.zpp_inner.x=this.worldCOMx;this.wrap_worldCOM.zpp_inner.y=this.worldCOMy};bZ.prototype.invalidate_area_inertia=function(){this.zip_area_inertia=true;if(this.body!=null){var ea=this.body;ea.zip_localCOM=true;ea.zip_worldCOM=true;this.body.invalidate_mass();this.body.invalidate_inertia()}};bZ.prototype.invalidate_angDrag=function(){this.zip_angDrag=true};bZ.prototype.invalidate_localCOM=function(){this.zip_localCOM=true;this.invalidate_area_inertia();if(this.type==0){this.zip_sweepRadius=true}this.invalidate_angDrag();this.invalidate_worldCOM();if(this.body!=null){var ea=this.body;ea.zip_localCOM=true;ea.zip_worldCOM=true}};bZ.prototype.invalidate_worldCOM=function(){this.zip_worldCOM=true;this.zip_aabb=true;if(this.body!=null){this.body.zip_aabb=true}};bZ.prototype.invalidate_material=function(ea){if((ea&cJ.WAKE)!=0){this.wake()}if((ea&cJ.ARBITERS)!=0){if(this.body!=null){this.body.refreshArbiters()}}if((ea&cJ.PROPS)!=0){if(this.body!=null){var eb=this.body;eb.zip_localCOM=true;eb.zip_worldCOM=true;this.body.invalidate_mass();this.body.invalidate_inertia()}}if((ea&cJ.ANGDRAG)!=0){this.invalidate_angDrag()}this.refmaterial.set(this.material)};bZ.prototype.invalidate_filter=function(){this.wake()};bZ.prototype.invalidate_fluidprops=function(){if(this.fluidEnabled){this.wake()}};bZ.prototype.aabb_validate=function(){if(this.zip_aabb){if(this.body!=null){this.zip_aabb=false;if(this.type==0){var es=this.circle;if(es.zip_worldCOM){if(es.body!=null){es.zip_worldCOM=false;if(es.zip_localCOM){es.zip_localCOM=false;if(es.type==1){var ex=es.polygon;if(ex.lverts.next.next==null){ex.localCOMx=ex.lverts.next.x;ex.localCOMy=ex.lverts.next.y}else{if(ex.lverts.next.next.next==null){ex.localCOMx=ex.lverts.next.x;ex.localCOMy=ex.lverts.next.y;ex.localCOMx+=ex.lverts.next.next.x;ex.localCOMy+=ex.lverts.next.next.y;ex.localCOMx*=0.5;ex.localCOMy*=0.5}else{ex.localCOMx=0;ex.localCOMy=0;var ey=0;var er=ex.lverts.next;var ej=er;er=er.next;var ei=er;er=er.next;while(er!=null){var eg=er;ey+=ei.x*(eg.y-ej.y);var em=eg.y*ei.x-eg.x*ei.y;ex.localCOMx+=(ei.x+eg.x)*em;ex.localCOMy+=(ei.y+eg.y)*em;ej=ei;ei=eg;er=er.next}er=ex.lverts.next;var eh=er;ey+=ei.x*(eh.y-ej.y);var ee=eh.y*ei.x-eh.x*ei.y;ex.localCOMx+=(ei.x+eh.x)*ee;ex.localCOMy+=(ei.y+eh.y)*ee;ej=ei;er=er.next;var ef=er;ey+=eh.x*(ef.y-ej.y);var ed=ef.y*eh.x-ef.x*eh.y;ex.localCOMx+=(eh.x+ef.x)*ed;ex.localCOMy+=(eh.y+ef.y)*ed;ey=1/(3*ey);var el=ey;ex.localCOMx*=el;ex.localCOMy*=el}}}if(es.wrap_localCOM!=null){es.wrap_localCOM.zpp_inner.x=es.localCOMx;es.wrap_localCOM.zpp_inner.y=es.localCOMy}}var ew=es.body;if(ew.zip_axis){ew.zip_axis=false;ew.axisx=Math.sin(ew.rot);ew.axisy=Math.cos(ew.rot)}es.worldCOMx=es.body.posx+(es.body.axisy*es.localCOMx-es.body.axisx*es.localCOMy);es.worldCOMy=es.body.posy+(es.localCOMx*es.body.axisx+es.localCOMy*es.body.axisy)}}var ec=es.radius;var eb=es.radius;es.aabb.minx=es.worldCOMx-ec;es.aabb.miny=es.worldCOMy-eb;es.aabb.maxx=es.worldCOMx+ec;es.aabb.maxy=es.worldCOMy+eb}else{var eu=this.polygon;if(eu.zip_gverts){if(eu.body!=null){eu.zip_gverts=false;eu.validate_lverts();var et=eu.body;if(et.zip_axis){et.zip_axis=false;et.axisx=Math.sin(et.rot);et.axisy=Math.cos(et.rot)}var ek=eu.lverts.next;var ep=eu.gverts.next;while(ep!=null){var ev=ep;var eq=ek;ek=ek.next;ev.x=eu.body.posx+(eu.body.axisy*eq.x-eu.body.axisx*eq.y);ev.y=eu.body.posy+(eq.x*eu.body.axisx+eq.y*eu.body.axisy);ep=ep.next}}}var ea=eu.gverts.next;eu.aabb.minx=ea.x;eu.aabb.miny=ea.y;eu.aabb.maxx=ea.x;eu.aabb.maxy=ea.y;var eo=eu.gverts.next.next;while(eo!=null){var en=eo;if(en.x<eu.aabb.minx){eu.aabb.minx=en.x}if(en.x>eu.aabb.maxx){eu.aabb.maxx=en.x}if(en.y<eu.aabb.miny){eu.aabb.miny=en.y}if(en.y>eu.aabb.maxy){eu.aabb.maxy=en.y}eo=eo.next}}}}};bZ.prototype.setMaterial=function(ea){if(this.material!=ea){if(this.body!=null&&this.body.space!=null){if(this.material!=null){this.material.shapes.remove(this)}}this.material=ea;if(this.body!=null&&this.body.space!=null){ea.shapes.add(this)}this.wake();if(this.body!=null){this.body.refreshArbiters()}}};bZ.prototype.setFilter=function(ea){if(this.filter!=ea){if(this.body!=null&&this.body.space!=null){if(this.filter!=null){this.filter.shapes.remove(this)}}this.filter=ea;if(this.body!=null&&this.body.space!=null){ea.shapes.add(this)}this.wake()}};bZ.prototype.setFluid=function(ea){if(this.fluidProperties!=ea){if(this.body!=null&&this.body.space!=null){if(this.fluidProperties!=null){this.fluidProperties.shapes.remove(this)}}this.fluidProperties=ea;if(this.body!=null&&this.body.space!=null){ea.shapes.add(this)}if(this.fluidEnabled){this.wake()}}};bZ.prototype.__immutable_midstep=function(ea){};bZ.prototype.addedToBody=function(){this.invalidate_worldCOM();this.zip_aabb=true;if(this.body!=null){this.body.zip_aabb=true}};bZ.prototype.removedFromBody=function(){};bZ.prototype.addedToSpace=function(){this.__iaddedToSpace();this.material.shapes.add(this);this.filter.shapes.add(this);if(this.fluidProperties!=null){this.fluidProperties.shapes.add(this)}};bZ.prototype.removedFromSpace=function(){this.__iremovedFromSpace();this.material.shapes.remove(this);this.filter.shapes.remove(this);if(this.fluidProperties!=null){this.fluidProperties.shapes.remove(this)}};bZ.prototype.copy=function(){var ea=null;if(this.type==0){ea=this.circle.__copy()}else{ea=this.polygon.__copy()}if(!this.zip_area_inertia){ea.area=this.area;ea.inertia=this.inertia}else{ea.invalidate_area_inertia()}if(!this.zip_sweepRadius){ea.sweepRadius=this.sweepRadius;ea.sweepCoef=this.sweepCoef}else{ea.zip_sweepRadius=true}if(!this.zip_angDrag){ea.angDrag=this.angDrag}else{ea.invalidate_angDrag()}if(!this.zip_aabb){ea.aabb.minx=this.aabb.minx;ea.aabb.miny=this.aabb.miny;ea.aabb.maxx=this.aabb.maxx;ea.aabb.maxy=this.aabb.maxy}else{ea.zip_aabb=true;if(ea.body!=null){ea.body.zip_aabb=true}}var ec=ea.material;ec.outer=null;ec.next=cJ.zpp_pool;cJ.zpp_pool=ec;var eb=ea.filter;eb.outer=null;eb.next=cA.zpp_pool;cA.zpp_pool=eb;ea.material=this.material;ea.filter=this.filter;if(this.fluidProperties!=null){ea.fluidProperties=this.fluidProperties}ea.fluidEnabled=this.fluidEnabled;ea.sensorEnabled=this.sensorEnabled;if(this.userData!=null){ea.userData=bm.copy(this.userData)}this.copyto(ea.outer);return ea.outer};bZ.prototype.__class__=bZ;var di=zpp_nape.shape.ZPP_Circle=function(){this.radius=0;this.outer_zn=null;bZ.call(this,0);this.circle=this;this.zip_localCOM=false};di.__name__=["zpp_nape","shape","ZPP_Circle"];di.__super__=bZ;di.prototype=Object.create(bZ.prototype);di.prototype.outer_zn=null;di.prototype.radius=null;di.prototype.__clear=function(){};di.prototype.invalidate_radius=function(){this.invalidate_area_inertia();this.invalidate_angDrag();this.zip_aabb=true;if(this.body!=null){this.body.zip_aabb=true}if(this.body!=null){this.body.wake()}};di.prototype.localCOM_validate=function(){this.wrap_localCOM.zpp_inner.x=this.localCOMx;this.wrap_localCOM.zpp_inner.y=this.localCOMy};di.prototype.localCOM_invalidate=function(ea){this.localCOMx=ea.x;this.localCOMy=ea.y;this.invalidate_localCOM();if(this.body!=null){this.body.wake()}};di.prototype.setupLocalCOM=function(){var ea=this.localCOMx;var eh=this.localCOMy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_localCOM=eb;this.wrap_localCOM.zpp_inner._inuse=true;this.wrap_localCOM.zpp_inner._validate=dX(this,this.localCOM_validate);this.wrap_localCOM.zpp_inner._invalidate=dX(this,this.localCOM_invalidate)};di.prototype.__validate_aabb=function(){if(this.zip_worldCOM){if(this.body!=null){this.zip_worldCOM=false;if(this.zip_localCOM){this.zip_localCOM=false;if(this.type==1){var eh=this.polygon;if(eh.lverts.next.next==null){eh.localCOMx=eh.lverts.next.x;eh.localCOMy=eh.lverts.next.y}else{if(eh.lverts.next.next.next==null){eh.localCOMx=eh.lverts.next.x;eh.localCOMy=eh.lverts.next.y;eh.localCOMx+=eh.lverts.next.next.x;eh.localCOMy+=eh.lverts.next.next.y;eh.localCOMx*=0.5;eh.localCOMy*=0.5}else{eh.localCOMx=0;eh.localCOMy=0;var ed=0;var ee=eh.lverts.next;var en=ee;ee=ee.next;var el=ee;ee=ee.next;while(ee!=null){var ej=ee;ed+=el.x*(ej.y-en.y);var ec=ej.y*el.x-ej.x*el.y;eh.localCOMx+=(el.x+ej.x)*ec;eh.localCOMy+=(el.y+ej.y)*ec;en=el;el=ej;ee=ee.next}ee=eh.lverts.next;var eg=ee;ed+=el.x*(eg.y-en.y);var em=eg.y*el.x-eg.x*el.y;eh.localCOMx+=(el.x+eg.x)*em;eh.localCOMy+=(el.y+eg.y)*em;en=el;ee=ee.next;var ef=ee;ed+=eg.x*(ef.y-en.y);var ek=ef.y*eg.x-ef.x*eg.y;eh.localCOMx+=(eg.x+ef.x)*ek;eh.localCOMy+=(eg.y+ef.y)*ek;ed=1/(3*ed);var eo=ed;eh.localCOMx*=eo;eh.localCOMy*=eo}}}if(this.wrap_localCOM!=null){this.wrap_localCOM.zpp_inner.x=this.localCOMx;this.wrap_localCOM.zpp_inner.y=this.localCOMy}}var ei=this.body;if(ei.zip_axis){ei.zip_axis=false;ei.axisx=Math.sin(ei.rot);ei.axisy=Math.cos(ei.rot)}this.worldCOMx=this.body.posx+(this.body.axisy*this.localCOMx-this.body.axisx*this.localCOMy);this.worldCOMy=this.body.posy+(this.localCOMx*this.body.axisx+this.localCOMy*this.body.axisy)}}var eb=this.radius;var ea=this.radius;this.aabb.minx=this.worldCOMx-eb;this.aabb.miny=this.worldCOMy-ea;this.aabb.maxx=this.worldCOMx+eb;this.aabb.maxy=this.worldCOMy+ea};di.prototype._force_validate_aabb=function(){this.worldCOMx=this.body.posx+(this.body.axisy*this.localCOMx-this.body.axisx*this.localCOMy);this.worldCOMy=this.body.posy+(this.localCOMx*this.body.axisx+this.localCOMy*this.body.axisy);this.aabb.minx=this.worldCOMx-this.radius;this.aabb.miny=this.worldCOMy-this.radius;this.aabb.maxx=this.worldCOMx+this.radius;this.aabb.maxy=this.worldCOMy+this.radius};di.prototype.__validate_sweepRadius=function(){this.sweepCoef=Math.sqrt(this.localCOMx*this.localCOMx+this.localCOMy*this.localCOMy);this.sweepRadius=this.sweepCoef+this.radius};di.prototype.__validate_area_inertia=function(){var ea=this.radius*this.radius;this.area=ea*Math.PI;this.inertia=ea*0.5+(this.localCOMx*this.localCOMx+this.localCOMy*this.localCOMy)};di.prototype.__validate_angDrag=function(){var eb=this.localCOMx*this.localCOMx+this.localCOMy*this.localCOMy;var ea=this.radius*this.radius;this.angDrag=(eb+2*ea)*(this.material.dynamicFriction*P.fluidAngularDragFriction)+0.5*P.fluidAngularDrag*(1+P.fluidVacuumDrag)*eb;this.angDrag/=2*(eb+0.5*ea)};di.prototype.__scale=function(ec,eb){var ea=((ec<0?-ec:ec)+(eb<0?-eb:eb))/2;this.radius*=ea<0?-ea:ea;this.invalidate_radius();if(this.localCOMx*this.localCOMx+this.localCOMy*this.localCOMy>0){this.localCOMx*=ec;this.localCOMy*=eb;this.invalidate_localCOM()}};di.prototype.__translate=function(ea,eb){this.localCOMx+=ea;this.localCOMy+=eb;this.invalidate_localCOM()};di.prototype.__rotate=function(eb,ed){if(this.localCOMx*this.localCOMx+this.localCOMy*this.localCOMy>0){var ec=0;var ea=0;ec=ed*this.localCOMx-eb*this.localCOMy;ea=this.localCOMx*eb+this.localCOMy*ed;this.localCOMx=ec;this.localCOMy=ea;this.invalidate_localCOM()}};di.prototype.__transform=function(ea){var ec=ea.zpp_inner.a*ea.zpp_inner.d-ea.zpp_inner.b*ea.zpp_inner.c;if(ec<0){ec=-ec}this.radius*=Math.sqrt(ec);var eb=ea.zpp_inner.a*this.localCOMx+ea.zpp_inner.b*this.localCOMy+ea.zpp_inner.tx;this.localCOMy=ea.zpp_inner.c*this.localCOMx+ea.zpp_inner.d*this.localCOMy+ea.zpp_inner.ty;this.localCOMx=eb;this.invalidate_radius();this.invalidate_localCOM()};di.prototype.__copy=function(){var ea=new ds(this.radius).zpp_inner_zn;ea.localCOMx=this.localCOMx;ea.localCOMy=this.localCOMy;ea.zip_localCOM=false;return ea};di.prototype.__class__=di;var c8=zpp_nape.shape.ZPP_Edge=function(){this.tp1=0;this.tp0=0;this.gp1=null;this.lp1=null;this.gp0=null;this.lp0=null;this.gprojection=0;this.lprojection=0;this.length=0;this.wrap_gnorm=null;this.gnormy=0;this.gnormx=0;this.wrap_lnorm=null;this.lnormy=0;this.lnormx=0;this.outer=null;this.polygon=null;this.next=null;this.lnormx=0;this.lnormy=0;this.gnormx=0;this.gnormy=0;this.length=0;this.lprojection=0;this.gprojection=0};c8.__name__=["zpp_nape","shape","ZPP_Edge"];c8.prototype.next=null;c8.prototype.free=function(){this.polygon=null};c8.prototype.alloc=function(){};c8.prototype.polygon=null;c8.prototype.outer=null;c8.prototype.wrapper=function(){if(this.outer==null){c8.internal=true;this.outer=new ba();c8.internal=false;this.outer.zpp_inner=this}return this.outer};c8.prototype.lnormx=null;c8.prototype.lnormy=null;c8.prototype.wrap_lnorm=null;c8.prototype.gnormx=null;c8.prototype.gnormy=null;c8.prototype.wrap_gnorm=null;c8.prototype.length=null;c8.prototype.lprojection=null;c8.prototype.gprojection=null;c8.prototype.lp0=null;c8.prototype.gp0=null;c8.prototype.lp1=null;c8.prototype.gp1=null;c8.prototype.tp0=null;c8.prototype.tp1=null;c8.prototype.lnorm_validate=function(){this.polygon.validate_laxi();this.wrap_lnorm.zpp_inner.x=this.lnormx;this.wrap_lnorm.zpp_inner.y=this.lnormy};c8.prototype.gnorm_validate=function(){var ee=this.polygon;if(ee.zip_gaxi){if(ee.body!=null){ee.zip_gaxi=false;ee.validate_laxi();var eh=ee.body;if(eh.zip_axis){eh.zip_axis=false;eh.axisx=Math.sin(eh.rot);eh.axisy=Math.cos(eh.rot)}if(ee.zip_gverts){if(ee.body!=null){ee.zip_gverts=false;ee.validate_lverts();var eg=ee.body;if(eg.zip_axis){eg.zip_axis=false;eg.axisx=Math.sin(eg.rot);eg.axisy=Math.cos(eg.rot)}var el=ee.lverts.next;var eb=ee.gverts.next;while(eb!=null){var ed=eb;var ec=el;el=el.next;ed.x=ee.body.posx+(ee.body.axisy*ec.x-ee.body.axisx*ec.y);ed.y=ee.body.posy+(ec.x*ee.body.axisx+ec.y*ee.body.axisy);eb=eb.next}}}var ea=ee.edges.head;var ej=ee.gverts.next;var em=ej;ej=ej.next;while(ej!=null){var ek=ej;var ef=ea.elt;ea=ea.next;ef.gp0=em;ef.gp1=ek;ef.gnormx=ee.body.axisy*ef.lnormx-ee.body.axisx*ef.lnormy;ef.gnormy=ef.lnormx*ee.body.axisx+ef.lnormy*ee.body.axisy;ef.gprojection=ee.body.posx*ef.gnormx+ee.body.posy*ef.gnormy+ef.lprojection;if(ef.wrap_gnorm!=null){ef.wrap_gnorm.zpp_inner.x=ef.gnormx;ef.wrap_gnorm.zpp_inner.y=ef.gnormy}ef.tp0=ef.gp0.y*ef.gnormx-ef.gp0.x*ef.gnormy;ef.tp1=ef.gp1.y*ef.gnormx-ef.gp1.x*ef.gnormy;em=ek;ej=ej.next}var ei=ea.elt;ei.gp0=em;ei.gp1=ee.gverts.next;ei.gnormx=ee.body.axisy*ei.lnormx-ee.body.axisx*ei.lnormy;ei.gnormy=ei.lnormx*ee.body.axisx+ei.lnormy*ee.body.axisy;ei.gprojection=ee.body.posx*ei.gnormx+ee.body.posy*ei.gnormy+ei.lprojection;if(ei.wrap_gnorm!=null){ei.wrap_gnorm.zpp_inner.x=ei.gnormx;ei.wrap_gnorm.zpp_inner.y=ei.gnormy}ei.tp0=ei.gp0.y*ei.gnormx-ei.gp0.x*ei.gnormy;ei.tp1=ei.gp1.y*ei.gnormx-ei.gp1.x*ei.gnormy}}this.wrap_gnorm.zpp_inner.x=this.gnormx;this.wrap_gnorm.zpp_inner.y=this.gnormy};c8.prototype.getlnorm=function(){var ea=this.lnormx;var eh=this.lnormy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_lnorm=eb;this.wrap_lnorm.zpp_inner._immutable=true;this.wrap_lnorm.zpp_inner._validate=dX(this,this.lnorm_validate)};c8.prototype.getgnorm=function(){var ea=this.gnormx;var eh=this.gnormy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_gnorm=eb;this.wrap_gnorm.zpp_inner._immutable=true;this.wrap_gnorm.zpp_inner._validate=dX(this,this.gnorm_validate)};c8.prototype.__class__=c8;var dQ=zpp_nape.shape.ZPP_Polygon=function(){this.zip_sanitation=false;this.zip_valid=false;this.zip_gaxi=false;this.zip_gverts=false;this.zip_laxi=false;this.zip_lverts=false;this.reverse_flag=false;this.edgeCnt=0;this.wrap_edges=null;this.edges=null;this.wrap_gverts=null;this.gverts=null;this.wrap_lverts=null;this.lverts=null;this.outer_zn=null;bZ.call(this,1);this.polygon=this;this.lverts=new bB();this.gverts=new bB();this.edges=new ce();this.edgeCnt=0};dQ.__name__=["zpp_nape","shape","ZPP_Polygon"];dQ.__super__=bZ;dQ.prototype=Object.create(bZ.prototype);dQ.prototype.outer_zn=null;dQ.prototype.lverts=null;dQ.prototype.wrap_lverts=null;dQ.prototype.gverts=null;dQ.prototype.wrap_gverts=null;dQ.prototype.edges=null;dQ.prototype.wrap_edges=null;dQ.prototype.edgeCnt=null;dQ.prototype.reverse_flag=null;dQ.prototype.__clear=function(){};dQ.prototype.lverts_pa_invalidate=function(ea){this.invalidate_lverts()};dQ.prototype.gverts_pa_validate=function(){if(this.zip_gverts){if(this.body!=null){this.zip_gverts=false;this.validate_lverts();var ee=this.body;if(ee.zip_axis){ee.zip_axis=false;ee.axisx=Math.sin(ee.rot);ee.axisy=Math.cos(ee.rot)}var ea=this.lverts.next;var ec=this.gverts.next;while(ec!=null){var ed=ec;var eb=ea;ea=ea.next;ed.x=this.body.posx+(this.body.axisy*eb.x-this.body.axisx*eb.y);ed.y=this.body.posy+(eb.x*this.body.axisx+eb.y*this.body.axisy);ec=ec.next}}}};dQ.prototype.lverts_post_adder=function(ei){ei.zpp_inner._invalidate=dX(this,this.lverts_pa_invalidate);var eb=null;var ef=null;var ee=this.lverts.next;while(ee!=null){if(ee==ei.zpp_inner){break}else{if(eb==null){eb=this.gverts.next}else{eb=eb.next}if(ef==null){ef=this.edges.head}else{ef=ef.next}}ee=ee.next}var eh;if(bB.zpp_pool==null){eh=new bB()}else{eh=bB.zpp_pool;bB.zpp_pool=eh.next;eh.next=null}eh.weak=false;eh._immutable=true;eh.x=0;eh.y=0;var ec=eh;this.gverts.insert(eb,ec);if(this.lverts.next.next!=null){if(this.lverts.next.next.next==null){var eg;if(c8.zpp_pool==null){eg=new c8()}else{eg=c8.zpp_pool;c8.zpp_pool=eg.next;eg.next=null}eg.polygon=this;this.edges.add(eg);var ea;if(c8.zpp_pool==null){ea=new c8()}else{ea=c8.zpp_pool;c8.zpp_pool=ea.next;ea.next=null}ea.polygon=this;this.edges.add(ea);this.edgeCnt+=2}else{var ej;if(c8.zpp_pool==null){ej=new c8()}else{ej=c8.zpp_pool;c8.zpp_pool=ej.next;ej.next=null}ej.polygon=this;this.edges.insert(ef,ej);this.edgeCnt++}}ec._validate=dX(this,this.gverts_pa_validate)};dQ.prototype.lverts_subber=function(ea){this.cleanup_lvert(ea.zpp_inner)};dQ.prototype.lverts_invalidate=function(ea){this.invalidate_lverts()};dQ.prototype.lverts_validate=function(){this.validate_lverts()};dQ.prototype.gverts_validate=function(){if(this.zip_gverts){if(this.body!=null){this.zip_gverts=false;this.validate_lverts();var ee=this.body;if(ee.zip_axis){ee.zip_axis=false;ee.axisx=Math.sin(ee.rot);ee.axisy=Math.cos(ee.rot)}var ea=this.lverts.next;var ec=this.gverts.next;while(ec!=null){var ed=ec;var eb=ea;ea=ea.next;ed.x=this.body.posx+(this.body.axisy*eb.x-this.body.axisx*eb.y);ed.y=this.body.posy+(eb.x*this.body.axisx+eb.y*this.body.axisy);ec=ec.next}}}};dQ.prototype.edges_validate=function(){this.validate_lverts()};dQ.prototype.getlverts=function(){this.wrap_lverts=ao.get(this.lverts);this.wrap_lverts.zpp_inner.post_adder=dX(this,this.lverts_post_adder);this.wrap_lverts.zpp_inner.subber=dX(this,this.lverts_subber);this.wrap_lverts.zpp_inner._invalidate=dX(this,this.lverts_invalidate);this.wrap_lverts.zpp_inner._validate=dX(this,this.lverts_validate);this.wrap_lverts.zpp_inner.reverse_flag=this.reverse_flag};dQ.prototype.getgverts=function(){this.wrap_gverts=ao.get(this.gverts,true);this.wrap_gverts.zpp_inner.reverse_flag=this.reverse_flag;this.wrap_gverts.zpp_inner._validate=dX(this,this.gverts_validate)};dQ.prototype.getedges=function(){this.wrap_edges=aw.get(this.edges,true);this.wrap_edges.zpp_inner.reverse_flag=this.reverse_flag;this.wrap_edges.zpp_inner._validate=dX(this,this.edges_validate)};dQ.prototype.zip_lverts=null;dQ.prototype.invalidate_lverts=function(){this.invalidate_laxi();this.invalidate_area_inertia();this.invalidate_angDrag();this.invalidate_localCOM();this.invalidate_gverts();this.zip_lverts=true;this.zip_valid=true;this.zip_sanitation=true;if(this.body!=null){this.body.wake()}};dQ.prototype.zip_laxi=null;dQ.prototype.invalidate_laxi=function(){this.invalidate_gaxi();this.zip_sweepRadius=true;this.zip_laxi=true};dQ.prototype.zip_gverts=null;dQ.prototype.invalidate_gverts=function(){this.zip_aabb=true;if(this.body!=null){this.body.zip_aabb=true}this.zip_gverts=true};dQ.prototype.zip_gaxi=null;dQ.prototype.invalidate_gaxi=function(){this.zip_gaxi=true};dQ.prototype.zip_valid=null;dQ.prototype.validation=null;dQ.prototype.valid=function(){if(this.zip_valid){this.zip_valid=false;if(this.zip_sanitation){this.zip_sanitation=false;this.splice_collinear_real()}if(this.lverts.length<3){if(br.ValidationResult_DEGENERATE==null){br.internal=true;br.ValidationResult_DEGENERATE=new al();br.internal=false}return this.validation=br.ValidationResult_DEGENERATE}else{this.validate_lverts();this.validate_area_inertia();if(this.area<P.epsilon){if(br.ValidationResult_DEGENERATE==null){br.internal=true;br.ValidationResult_DEGENERATE=new al();br.internal=false}return this.validation=br.ValidationResult_DEGENERATE}else{var e0=false;var fi=false;var fe=true;var e6=this.lverts.next;var eA=e6;e6=e6.next;var ez=e6;e6=e6.next;while(e6!=null){var ey=e6;var e2=0;var e1=0;e2=ey.x-ez.x;e1=ey.y-ez.y;var eJ=0;var eI=0;eJ=ez.x-eA.x;eI=ez.y-eA.y;var er=eI*e2-eJ*e1;if(er>P.epsilon){fi=true}else{if(er<-P.epsilon){e0=true}}if(fi&&e0){fe=false;break}eA=ez;ez=ey;e6=e6.next}if(fe){e6=this.lverts.next;var eH=e6;while(true){var eq=0;var eh=0;eq=eH.x-ez.x;eh=eH.y-ez.y;var em=0;var ec=0;em=ez.x-eA.x;ec=ez.y-eA.y;var ef=ec*eq-em*eh;if(ef>P.epsilon){fi=true}else{if(ef<-P.epsilon){e0=true}}if(fi&&e0){fe=false;break}break}if(fe){eA=ez;ez=eH;e6=e6.next;var eG=e6;while(true){var eo=0;var eg=0;eo=eG.x-eH.x;eg=eG.y-eH.y;var el=0;var ea=0;el=eH.x-eA.x;ea=eH.y-eA.y;var ee=ea*eo-el*eg;if(ee>P.epsilon){fi=true}else{if(ee<-P.epsilon){e0=true}}if(fi&&e0){break}break}}}if(fi&&e0){if(br.ValidationResult_CONCAVE==null){br.internal=true;br.ValidationResult_CONCAVE=new al();br.internal=false}return this.validation=br.ValidationResult_CONCAVE}else{var e4=true;var eu=true;var eZ=this.lverts.next;var fd=eZ;eZ=eZ.next;while(eZ!=null){var eW=eZ;if(!e4){eu=false;break}var et=true;var eY=this.lverts.next;var eN=eY;eY=eY.next;while(eY!=null){var eL=eY;if(fd==eN||fd==eL||eW==eN||eW==eL){eN=eL;eY=eY.next;continue}var fa=0;var e8=0;fa=fd.x-eN.x;e8=fd.y-eN.y;var ep=0;var en=0;ep=eW.x-fd.x;en=eW.y-fd.y;var ed=0;var eb=0;ed=eL.x-eN.x;eb=eL.y-eN.y;var fj=en*ed-ep*eb;if(fj*fj>P.epsilon){fj=1/fj;var eC=(eb*fa-ed*e8)*fj;if(eC>P.epsilon&&eC<1-P.epsilon){var eE=(en*fa-ep*e8)*fj;if(eE>P.epsilon&&eE<1-P.epsilon){e4=false;et=false;break}}}eN=eL;eY=eY.next}if(et){while(true){var fh=this.lverts.next;if(fd==eN||fd==fh||eW==eN||eW==fh){break}var e7=0;var eO=0;e7=fd.x-eN.x;eO=fd.y-eN.y;var eU=0;var eF=0;eU=eW.x-fd.x;eF=eW.y-fd.y;var fc=0;var eS=0;fc=fh.x-eN.x;eS=fh.y-eN.y;var ex=eF*fc-eU*eS;if(ex*ex>P.epsilon){ex=1/ex;var fm=(eS*e7-fc*eO)*ex;if(fm>P.epsilon&&fm<1-P.epsilon){var ek=(eF*e7-eU*eO)*ex;if(ek>P.epsilon&&ek<1-P.epsilon){e4=false;break}}}break}}fd=eW;eZ=eZ.next}if(eu){while(true){var eV=this.lverts.next;if(!e4){break}var es=true;var eX=this.lverts.next;var fn=eX;eX=eX.next;while(eX!=null){var fg=eX;if(fd==fn||fd==fg||eV==fn||eV==fg){fn=fg;eX=eX.next;continue}var e5=0;var eM=0;e5=fd.x-fn.x;eM=fd.y-fn.y;var eT=0;var eD=0;eT=eV.x-fd.x;eD=eV.y-fd.y;var fb=0;var eQ=0;fb=fg.x-fn.x;eQ=fg.y-fn.y;var ew=eD*fb-eT*eQ;if(ew*ew>P.epsilon){ew=1/ew;var fl=(eQ*e5-fb*eM)*ew;if(fl>P.epsilon&&fl<1-P.epsilon){var ej=(eD*e5-eT*eM)*ew;if(ej>P.epsilon&&ej<1-P.epsilon){e4=false;es=false;break}}}fn=fg;eX=eX.next}if(es){while(true){var ff=this.lverts.next;if(fd==fn||fd==ff||eV==fn||eV==ff){break}var e3=0;var eK=0;e3=fd.x-fn.x;eK=fd.y-fn.y;var eR=0;var eB=0;eR=eV.x-fd.x;eB=eV.y-fd.y;var e9=0;var eP=0;e9=ff.x-fn.x;eP=ff.y-fn.y;var ev=eB*e9-eR*eP;if(ev*ev>P.epsilon){ev=1/ev;var fk=(eP*e3-e9*eK)*ev;if(fk>P.epsilon&&fk<1-P.epsilon){var ei=(eB*e3-eR*eK)*ev;if(ei>P.epsilon&&ei<1-P.epsilon){e4=false;break}}}break}}break}}if(!e4){if(br.ValidationResult_SELF_INTERSECTING==null){br.internal=true;br.ValidationResult_SELF_INTERSECTING=new al();br.internal=false}return this.validation=br.ValidationResult_SELF_INTERSECTING}else{if(br.ValidationResult_VALID==null){br.internal=true;br.ValidationResult_VALID=new al();br.internal=false}return this.validation=br.ValidationResult_VALID}}}}}else{return this.validation}};dQ.prototype.validate_lverts=function(){if(this.zip_lverts){this.zip_lverts=false;if(this.lverts.length>2){this.validate_area_inertia();if(this.area<0){this.reverse_vertices();this.area=-this.area}}}};dQ.prototype.cleanup_lvert=function(ej){var ea=null;var ei=null;var eh=this.lverts.next;while(eh!=null){if(eh==ej){break}else{if(ea==null){ea=this.gverts.next}else{ea=ea.next}if(ei==null){ei=this.edges.head}else{ei=ei.next}}eh=eh.next}var ek=ea==null?this.gverts.next:ea.next;this.gverts.erase(ea);var ed=ek;if(ed.outer!=null){ed.outer.zpp_inner=null;ed.outer=null}ed._isimmutable=null;ed._validate=null;ed._invalidate=null;ed.next=bB.zpp_pool;bB.zpp_pool=ed;if(this.edgeCnt==2){var ee=this.edges.pop_unsafe();var eg=ee;eg.polygon=null;eg.next=c8.zpp_pool;c8.zpp_pool=eg;ee=this.edges.pop_unsafe();var ef=ee;ef.polygon=null;ef.next=c8.zpp_pool;c8.zpp_pool=ef;this.edgeCnt=0}else{if(this.edgeCnt!=0){var eb=ei==null?this.edges.head.elt:ei.next.elt;this.edges.erase(ei);var ec=eb;ec.polygon=null;ec.next=c8.zpp_pool;c8.zpp_pool=ec;this.edgeCnt--}}};dQ.prototype.zip_sanitation=null;dQ.prototype.splice_collinear=function(){if(this.zip_sanitation){this.zip_sanitation=false;this.splice_collinear_real()}};dQ.prototype.splice_collinear_real=function(){if(this.lverts.next==null){return}if(this.lverts.next.next==null){return}if(this.lverts.next.next.next==null){return}var er=null;var ee=this.lverts.next;while(ee!=null){var eh=ee.next==null?this.lverts.next:ee.next;var eq=ee;var ep=eh;var en=eq.x;var ej=eq.y;var ev=ep.x;var es=ep.y;var eo=0;var em=0;eo=en-ev;em=ej-es;if(eo*eo+em*em<P.epsilon*P.epsilon){this.cleanup_lvert(ee);ee=this.lverts.erase(er)}else{er=ee;ee=ee.next}}if(this.lverts.next==null){return}var ew;while(true){ew=false;var eb=this.lverts.next;while(eb!=null){var eg=eb.next==null?this.lverts.next:eb.next;var ef=eg.next==null?this.lverts.next:eg.next;var et=eb;var ed=eg;var el=ef;var ek=0;var eu=0;ek=ed.x-et.x;eu=ed.y-et.y;var ea=0;var ei=0;ea=el.x-ed.x;ei=el.y-ed.y;var ec=ei*ek-ea*eu;if(ec*ec>=P.epsilon*P.epsilon){eb=eb.next}else{this.cleanup_lvert(eg);this.lverts.erase(eb.next==null?null:eb);ew=true;eb=eb.next}}if(!ew){break}}};dQ.prototype.reverse_vertices=function(){this.lverts.reverse();this.gverts.reverse();this.edges.reverse();this.edges.insert(this.edges.iterator_at(this.edgeCnt-1),this.edges.pop_unsafe());this.reverse_flag=!this.reverse_flag;if(this.wrap_lverts!=null){this.wrap_lverts.zpp_inner.reverse_flag=this.reverse_flag}if(this.wrap_gverts!=null){this.wrap_gverts.zpp_inner.reverse_flag=this.reverse_flag}if(this.wrap_edges!=null){this.wrap_edges.zpp_inner.reverse_flag=this.reverse_flag}};dQ.prototype.validate_laxi=function(){if(this.zip_laxi){this.zip_laxi=false;this.validate_lverts();var ea=this.edges.head;var ed=this.lverts.next;var en=ed;ed=ed.next;while(ed!=null){var em=ed;var eb=ea.elt;ea=ea.next;eb.lp0=en;eb.lp1=em;var eq=0;var ep=0;eq=en.x-em.x;ep=en.y-em.y;var ef=Math.sqrt(eq*eq+ep*ep);eb.length=ef;var eo=1/ef;eq*=eo;ep*=eo;var ej=eq;eq=-ep;ep=ej;eb.lprojection=eq*en.x+ep*en.y;eb.lnormx=eq;eb.lnormy=ep;if(eb.wrap_lnorm!=null){eb.wrap_lnorm.zpp_inner.x=eq;eb.wrap_lnorm.zpp_inner.y=ep}en=em;ed=ed.next}var ek=this.lverts.next;var ec=ea.elt;ec.lp0=en;ec.lp1=ek;var el=0;var ei=0;el=en.x-ek.x;ei=en.y-ek.y;var ee=Math.sqrt(el*el+ei*ei);ec.length=ee;var eh=1/ee;el*=eh;ei*=eh;var eg=el;el=-ei;ei=eg;ec.lprojection=el*en.x+ei*en.y;ec.lnormx=el;ec.lnormy=ei;if(ec.wrap_lnorm!=null){ec.wrap_lnorm.zpp_inner.x=el;ec.wrap_lnorm.zpp_inner.y=ei}}};dQ.prototype.validate_gverts=function(){if(this.zip_gverts){if(this.body!=null){this.zip_gverts=false;this.validate_lverts();var ee=this.body;if(ee.zip_axis){ee.zip_axis=false;ee.axisx=Math.sin(ee.rot);ee.axisy=Math.cos(ee.rot)}var ea=this.lverts.next;var ec=this.gverts.next;while(ec!=null){var ed=ec;var eb=ea;ea=ea.next;ed.x=this.body.posx+(this.body.axisy*eb.x-this.body.axisx*eb.y);ed.y=this.body.posy+(eb.x*this.body.axisx+eb.y*this.body.axisy);ec=ec.next}}}};dQ.prototype.validate_gaxi=function(){if(this.zip_gaxi){if(this.body!=null){this.zip_gaxi=false;this.validate_laxi();var ee=this.body;if(ee.zip_axis){ee.zip_axis=false;ee.axisx=Math.sin(ee.rot);ee.axisy=Math.cos(ee.rot)}if(this.zip_gverts){if(this.body!=null){this.zip_gverts=false;this.validate_lverts();var eg=this.body;if(eg.zip_axis){eg.zip_axis=false;eg.axisx=Math.sin(eg.rot);eg.axisy=Math.cos(eg.rot)}var ek=this.lverts.next;var eb=this.gverts.next;while(eb!=null){var ed=eb;var ec=ek;ek=ek.next;ed.x=this.body.posx+(this.body.axisy*ec.x-this.body.axisx*ec.y);ed.y=this.body.posy+(ec.x*this.body.axisx+ec.y*this.body.axisy);eb=eb.next}}}var ea=this.edges.head;var ei=this.gverts.next;var el=ei;ei=ei.next;while(ei!=null){var ej=ei;var ef=ea.elt;ea=ea.next;ef.gp0=el;ef.gp1=ej;ef.gnormx=this.body.axisy*ef.lnormx-this.body.axisx*ef.lnormy;ef.gnormy=ef.lnormx*this.body.axisx+ef.lnormy*this.body.axisy;ef.gprojection=this.body.posx*ef.gnormx+this.body.posy*ef.gnormy+ef.lprojection;if(ef.wrap_gnorm!=null){ef.wrap_gnorm.zpp_inner.x=ef.gnormx;ef.wrap_gnorm.zpp_inner.y=ef.gnormy}ef.tp0=ef.gp0.y*ef.gnormx-ef.gp0.x*ef.gnormy;ef.tp1=ef.gp1.y*ef.gnormx-ef.gp1.x*ef.gnormy;el=ej;ei=ei.next}var eh=ea.elt;eh.gp0=el;eh.gp1=this.gverts.next;eh.gnormx=this.body.axisy*eh.lnormx-this.body.axisx*eh.lnormy;eh.gnormy=eh.lnormx*this.body.axisx+eh.lnormy*this.body.axisy;eh.gprojection=this.body.posx*eh.gnormx+this.body.posy*eh.gnormy+eh.lprojection;if(eh.wrap_gnorm!=null){eh.wrap_gnorm.zpp_inner.x=eh.gnormx;eh.wrap_gnorm.zpp_inner.y=eh.gnormy}eh.tp0=eh.gp0.y*eh.gnormx-eh.gp0.x*eh.gnormy;eh.tp1=eh.gp1.y*eh.gnormx-eh.gp1.x*eh.gnormy}}};dQ.prototype.__validate_aabb=function(){if(this.zip_gverts){if(this.body!=null){this.zip_gverts=false;this.validate_lverts();var eh=this.body;if(eh.zip_axis){eh.zip_axis=false;eh.axisx=Math.sin(eh.rot);eh.axisy=Math.cos(eh.rot)}var ea=this.lverts.next;var ec=this.gverts.next;while(ec!=null){var ee=ec;var eb=ea;ea=ea.next;ee.x=this.body.posx+(this.body.axisy*eb.x-this.body.axisx*eb.y);ee.y=this.body.posy+(eb.x*this.body.axisx+eb.y*this.body.axisy);ec=ec.next}}}var eg=this.gverts.next;this.aabb.minx=eg.x;this.aabb.miny=eg.y;this.aabb.maxx=eg.x;this.aabb.maxy=eg.y;var ed=this.gverts.next.next;while(ed!=null){var ef=ed;if(ef.x<this.aabb.minx){this.aabb.minx=ef.x}if(ef.x>this.aabb.maxx){this.aabb.maxx=ef.x}if(ef.y<this.aabb.miny){this.aabb.miny=ef.y}if(ef.y>this.aabb.maxy){this.aabb.maxy=ef.y}ed=ed.next}};dQ.prototype._force_validate_aabb=function(){var ea=this.lverts.next;var ef=this.gverts.next;var ec=ea;ea=ea.next;ef.x=this.body.posx+(this.body.axisy*ec.x-this.body.axisx*ec.y);ef.y=this.body.posy+(ec.x*this.body.axisx+ec.y*this.body.axisy);this.aabb.minx=ef.x;this.aabb.miny=ef.y;this.aabb.maxx=ef.x;this.aabb.maxy=ef.y;var ed=this.gverts.next.next;while(ed!=null){var ee=ed;var eb=ea;ea=ea.next;ee.x=this.body.posx+(this.body.axisy*eb.x-this.body.axisx*eb.y);ee.y=this.body.posy+(eb.x*this.body.axisx+eb.y*this.body.axisy);if(ee.x<this.aabb.minx){this.aabb.minx=ee.x}if(ee.x>this.aabb.maxx){this.aabb.maxx=ee.x}if(ee.y<this.aabb.miny){this.aabb.miny=ee.y}if(ee.y>this.aabb.maxy){this.aabb.maxy=ee.y}ed=ed.next}};dQ.prototype.__validate_sweepRadius=function(){var ee=0;var eg=0;this.validate_laxi();var eb=this.lverts.next;while(eb!=null){var ea=eb;var ed=ea.x*ea.x+ea.y*ea.y;if(ed>ee){ee=ed}eb=eb.next}var ec=this.edges.head;while(ec!=null){var ef=ec.elt;if(ef.lprojection<eg){eg=ef.lprojection;if(eg<0){break}}ec=ec.next}if(eg<0){eg=0}this.sweepRadius=Math.sqrt(ee);this.sweepCoef=this.sweepRadius-eg};dQ.prototype.__validate_area_inertia=function(){if(this.lverts.next==null||this.lverts.next.next==null||this.lverts.next.next.next==null){this.area=0;this.inertia=0}else{this.area=0;var eh=0;var ef=0;var ec=this.lverts.next;var ej=ec;ec=ec.next;var ei=ec;ec=ec.next;while(ec!=null){var eg=ec;var ee=ei.y*ej.x-ei.x*ej.y;eh+=ee*(ei.x*ei.x+ei.y*ei.y+(ei.x*ej.x+ei.y*ej.y)+(ej.x*ej.x+ej.y*ej.y));ef+=ee;this.area+=ei.x*(eg.y-ej.y);ej=ei;ei=eg;ec=ec.next}ec=this.lverts.next;var ed=ec;var eb=ei.y*ej.x-ei.x*ej.y;eh+=eb*(ei.x*ei.x+ei.y*ei.y+(ei.x*ej.x+ei.y*ej.y)+(ej.x*ej.x+ej.y*ej.y));ef+=eb;this.area+=ei.x*(ed.y-ej.y);ej=ei;ec=ec.next;var ea=ed.y*ej.x-ed.x*ej.y;eh+=ea*(ed.x*ed.x+ed.y*ed.y+(ed.x*ej.x+ed.y*ej.y)+(ej.x*ej.x+ej.y*ej.y));ef+=ea;this.area+=ed.x*(ec.y-ej.y);this.inertia=eh/(6*ef);this.area*=0.5;if(this.area<0){this.area=-this.area;this.reverse_vertices()}}};dQ.prototype.__validate_angDrag=function(){this.validate_area_inertia();this.validate_laxi();var em=0;var eN=this.edges.head;var eg=0;var eJ=this.lverts.next;var eG=eJ;var eI=eJ.next;while(eI!=null){var eF=eI;var eh=eN.elt;eN=eN.next;eg+=eh.length;var ed=0;var ec=0;ed=eF.x-eG.x;ec=eF.y-eG.y;em+=eh.length*P.fluidAngularDragFriction*this.material.dynamicFriction*eh.lprojection*eh.lprojection;var eH=-(eG.y*eh.lnormx-eG.x*eh.lnormy)/(ec*eh.lnormx-ed*eh.lnormy);if(eH>0){var ef=eH>1?1:eH;var es=0;var er=0;es=eG.x;er=eG.y;var eD=ef;es+=ed*eD;er+=ec*eD;var eo=eh.lnormy*eG.x-eh.lnormx*eG.y;var en=eh.lnormy*es-eh.lnormx*er;em+=(en*en*en-eo*eo*eo)/(3*(en-eo))*ef*eh.length*P.fluidAngularDrag}if(eH<1){var ee=eH<0?0:eH;var eM=0;var ev=0;eM=eG.x;ev=eG.y;var eC=ee;eM+=ed*eC;ev+=ec*eC;var ez=eh.lnormy*eM-eh.lnormx*ev;var el=eh.lnormy*eF.x-eh.lnormx*eF.y;em+=(el*el*el-ez*ez*ez)/(3*(el-ez))*P.fluidVacuumDrag*(1-ee)*eh.length*P.fluidAngularDrag}eJ=eI;eG=eF;eI=eI.next}while(true){eI=this.lverts.next;var eO=eI;var ea=eN.elt;eN=eN.next;eg+=ea.length;var eE=0;var eq=0;eE=eO.x-eG.x;eq=eO.y-eG.y;em+=ea.length*P.fluidAngularDragFriction*this.material.dynamicFriction*ea.lprojection*ea.lprojection;var eB=-(eG.y*ea.lnormx-eG.x*ea.lnormy)/(eq*ea.lnormx-eE*ea.lnormy);if(eB>0){var ep=eB>1?1:eB;var eL=0;var eu=0;eL=eG.x;eu=eG.y;var eA=ep;eL+=eE*eA;eu+=eq*eA;var ey=ea.lnormy*eG.x-ea.lnormx*eG.y;var ek=ea.lnormy*eL-ea.lnormx*eu;em+=(ek*ek*ek-ey*ey*ey)/(3*(ek-ey))*ep*ea.length*P.fluidAngularDrag}if(eB<1){var eb=eB<0?0:eB;var eK=0;var et=0;eK=eG.x;et=eG.y;var ex=eb;eK+=eE*ex;et+=eq*ex;var ew=ea.lnormy*eK-ea.lnormx*et;var ej=ea.lnormy*eO.x-ea.lnormx*eO.y;em+=(ej*ej*ej-ew*ew*ew)/(3*(ej-ew))*P.fluidVacuumDrag*(1-eb)*ea.length*P.fluidAngularDrag}break}this.angDrag=em/(this.inertia*eg)};dQ.prototype.__validate_localCOM=function(){if(this.lverts.next.next==null){this.localCOMx=this.lverts.next.x;this.localCOMy=this.lverts.next.y}else{if(this.lverts.next.next.next==null){this.localCOMx=this.lverts.next.x;this.localCOMy=this.lverts.next.y;this.localCOMx+=this.lverts.next.next.x;this.localCOMy+=this.lverts.next.next.y;this.localCOMx*=0.5;this.localCOMy*=0.5}else{this.localCOMx=0;this.localCOMy=0;var eb=0;var ec=this.lverts.next;var ei=ec;ec=ec.next;var eh=ec;ec=ec.next;while(ec!=null){var ef=ec;eb+=eh.x*(ef.y-ei.y);var ea=ef.y*eh.x-ef.x*eh.y;this.localCOMx+=(eh.x+ef.x)*ea;this.localCOMy+=(eh.y+ef.y)*ea;ei=eh;eh=ef;ec=ec.next}ec=this.lverts.next;var ee=ec;eb+=eh.x*(ee.y-ei.y);var ej=ee.y*eh.x-ee.x*eh.y;this.localCOMx+=(eh.x+ee.x)*ej;this.localCOMy+=(eh.y+ee.y)*ej;ei=eh;ec=ec.next;var ed=ec;eb+=ee.x*(ed.y-ei.y);var eg=ed.y*ee.x-ed.x*ee.y;this.localCOMx+=(ee.x+ed.x)*eg;this.localCOMy+=(ee.y+ed.y)*eg;eb=1/(3*eb);var ek=eb;this.localCOMx*=ek;this.localCOMy*=ek}}};dQ.prototype.localCOM_validate=function(){if(this.zip_localCOM){this.zip_localCOM=false;if(this.type==1){var ef=this.polygon;if(ef.lverts.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y}else{if(ef.lverts.next.next.next==null){ef.localCOMx=ef.lverts.next.x;ef.localCOMy=ef.lverts.next.y;ef.localCOMx+=ef.lverts.next.next.x;ef.localCOMy+=ef.lverts.next.next.y;ef.localCOMx*=0.5;ef.localCOMy*=0.5}else{ef.localCOMx=0;ef.localCOMy=0;var eb=0;var ec=ef.lverts.next;var ek=ec;ec=ec.next;var ei=ec;ec=ec.next;while(ec!=null){var eg=ec;eb+=ei.x*(eg.y-ek.y);var ea=eg.y*ei.x-eg.x*ei.y;ef.localCOMx+=(ei.x+eg.x)*ea;ef.localCOMy+=(ei.y+eg.y)*ea;ek=ei;ei=eg;ec=ec.next}ec=ef.lverts.next;var ee=ec;eb+=ei.x*(ee.y-ek.y);var ej=ee.y*ei.x-ee.x*ei.y;ef.localCOMx+=(ei.x+ee.x)*ej;ef.localCOMy+=(ei.y+ee.y)*ej;ek=ei;ec=ec.next;var ed=ec;eb+=ee.x*(ed.y-ek.y);var eh=ed.y*ee.x-ed.x*ee.y;ef.localCOMx+=(ee.x+ed.x)*eh;ef.localCOMy+=(ee.y+ed.y)*eh;eb=1/(3*eb);var el=eb;ef.localCOMx*=el;ef.localCOMy*=el}}}if(this.wrap_localCOM!=null){this.wrap_localCOM.zpp_inner.x=this.localCOMx;this.wrap_localCOM.zpp_inner.y=this.localCOMy}}};dQ.prototype.localCOM_invalidate=function(ej){if(this.zip_localCOM){this.zip_localCOM=false;if(this.type==1){var ei=this.polygon;if(ei.lverts.next.next==null){ei.localCOMx=ei.lverts.next.x;ei.localCOMy=ei.lverts.next.y}else{if(ei.lverts.next.next.next==null){ei.localCOMx=ei.lverts.next.x;ei.localCOMy=ei.lverts.next.y;ei.localCOMx+=ei.lverts.next.next.x;ei.localCOMy+=ei.lverts.next.next.y;ei.localCOMx*=0.5;ei.localCOMy*=0.5}else{ei.localCOMx=0;ei.localCOMy=0;var ee=0;var ef=ei.lverts.next;var ep=ef;ef=ef.next;var en=ef;ef=ef.next;while(ef!=null){var el=ef;ee+=en.x*(el.y-ep.y);var ed=el.y*en.x-el.x*en.y;ei.localCOMx+=(en.x+el.x)*ed;ei.localCOMy+=(en.y+el.y)*ed;ep=en;en=el;ef=ef.next}ef=ei.lverts.next;var eh=ef;ee+=en.x*(eh.y-ep.y);var eo=eh.y*en.x-eh.x*en.y;ei.localCOMx+=(en.x+eh.x)*eo;ei.localCOMy+=(en.y+eh.y)*eo;ep=en;ef=ef.next;var eg=ef;ee+=eh.x*(eg.y-ep.y);var em=eg.y*eh.x-eg.x*eh.y;ei.localCOMx+=(eh.x+eg.x)*em;ei.localCOMy+=(eh.y+eg.y)*em;ee=1/(3*ee);var eq=ee;ei.localCOMx*=eq;ei.localCOMy*=eq}}}if(this.wrap_localCOM!=null){this.wrap_localCOM.zpp_inner.x=this.localCOMx;this.wrap_localCOM.zpp_inner.y=this.localCOMy}}var eb=0;var ea=0;eb=ej.x-this.localCOMx;ea=ej.y-this.localCOMy;var ek=this.lverts.next;while(ek!=null){var ec=ek;ec.x+=eb;ec.y+=ea;ek=ek.next}this.invalidate_lverts()};dQ.prototype.setupLocalCOM=function(){var ea=this.localCOMx;var eh=this.localCOMy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_localCOM=eb;this.wrap_localCOM.zpp_inner._inuse=true;this.wrap_localCOM.zpp_inner._validate=dX(this,this.localCOM_validate);this.wrap_localCOM.zpp_inner._invalidate=dX(this,this.localCOM_invalidate)};dQ.prototype.__translate=function(eb,ea){var ec=this.lverts.next;while(ec!=null){var ed=ec;ed.x+=eb;ed.y+=ea;ec=ec.next}this.invalidate_lverts()};dQ.prototype.__scale=function(ed,ec){var ea=this.lverts.next;while(ea!=null){var eb=ea;eb.x*=ed;eb.y*=ec;ea=ea.next}this.invalidate_lverts()};dQ.prototype.__rotate=function(ee,ed){var eb=this.lverts.next;while(eb!=null){var ef=eb;var ec=0;var ea=0;ec=ed*ef.x-ee*ef.y;ea=ef.x*ee+ef.y*ed;ef.x=ec;ef.y=ea;eb=eb.next}this.invalidate_lverts()};dQ.prototype.__transform=function(ec){var eb=this.lverts.next;while(eb!=null){var ed=eb;var ea=ec.zpp_inner.a*ed.x+ec.zpp_inner.b*ed.y+ec.zpp_inner.tx;ed.y=ec.zpp_inner.c*ed.x+ec.zpp_inner.d*ed.y+ec.zpp_inner.ty;ed.x=ea;eb=eb.next}this.invalidate_lverts()};dQ.prototype.__copy=function(){var ea=this.outer_zn;if(ea.zpp_inner_zn.wrap_lverts==null){ea.zpp_inner_zn.getlverts()}return new Z(ea.zpp_inner_zn.wrap_lverts).zpp_inner_zn};dQ.prototype.__class__=dQ;var dB=zpp_nape.space.ZPP_Broadphase=function(){this.circShape=null;this.matrix=null;this.aabbShape=null;this.dynab=null;this.sweep=null;this.is_sweep=false;this.space=null};dB.__name__=["zpp_nape","space","ZPP_Broadphase"];dB.prototype.space=null;dB.prototype.is_sweep=null;dB.prototype.sweep=null;dB.prototype.dynab=null;dB.prototype.insert=function(ea){if(this.is_sweep){this.sweep.__insert(ea)}else{this.dynab.__insert(ea)}};dB.prototype.remove=function(ea){if(this.is_sweep){this.sweep.__remove(ea)}else{this.dynab.__remove(ea)}};dB.prototype.sync=function(el){if(this.is_sweep){if(!this.sweep.space.continuous){if(el.zip_aabb){if(el.body!=null){el.zip_aabb=false;if(el.type==0){var ea=el.circle;if(ea.zip_worldCOM){if(ea.body!=null){ea.zip_worldCOM=false;if(ea.zip_localCOM){ea.zip_localCOM=false;if(ea.type==1){var eR=ea.polygon;if(eR.lverts.next.next==null){eR.localCOMx=eR.lverts.next.x;eR.localCOMy=eR.lverts.next.y}else{if(eR.lverts.next.next.next==null){eR.localCOMx=eR.lverts.next.x;eR.localCOMy=eR.lverts.next.y;eR.localCOMx+=eR.lverts.next.next.x;eR.localCOMy+=eR.lverts.next.next.y;eR.localCOMx*=0.5;eR.localCOMy*=0.5}else{eR.localCOMx=0;eR.localCOMy=0;var ev=0;var ec=eR.lverts.next;var eQ=ec;ec=ec.next;var eO=ec;ec=ec.next;while(ec!=null){var eM=ec;ev+=eO.x*(eM.y-eQ.y);var es=eM.y*eO.x-eM.x*eO.y;eR.localCOMx+=(eO.x+eM.x)*es;eR.localCOMy+=(eO.y+eM.y)*es;eQ=eO;eO=eM;ec=ec.next}ec=eR.lverts.next;var ey=ec;ev+=eO.x*(ey.y-eQ.y);var eK=ey.y*eO.x-ey.x*eO.y;eR.localCOMx+=(eO.x+ey.x)*eK;eR.localCOMy+=(eO.y+ey.y)*eK;eQ=eO;ec=ec.next;var ew=ec;ev+=ey.x*(ew.y-eQ.y);var eH=ew.y*ey.x-ew.x*ey.y;eR.localCOMx+=(ey.x+ew.x)*eH;eR.localCOMy+=(ey.y+ew.y)*eH;ev=1/(3*ev);var eS=ev;eR.localCOMx*=eS;eR.localCOMy*=eS}}}if(ea.wrap_localCOM!=null){ea.wrap_localCOM.zpp_inner.x=ea.localCOMx;ea.wrap_localCOM.zpp_inner.y=ea.localCOMy}}var eP=ea.body;if(eP.zip_axis){eP.zip_axis=false;eP.axisx=Math.sin(eP.rot);eP.axisy=Math.cos(eP.rot)}ea.worldCOMx=ea.body.posx+(ea.body.axisy*ea.localCOMx-ea.body.axisx*ea.localCOMy);ea.worldCOMy=ea.body.posy+(ea.localCOMx*ea.body.axisx+ea.localCOMy*ea.body.axisy)}}var eo=ea.radius;var en=ea.radius;ea.aabb.minx=ea.worldCOMx-eo;ea.aabb.miny=ea.worldCOMy-en;ea.aabb.maxx=ea.worldCOMx+eo;ea.aabb.maxy=ea.worldCOMy+en}else{var eN=el.polygon;if(eN.zip_gverts){if(eN.body!=null){eN.zip_gverts=false;eN.validate_lverts();var eL=eN.body;if(eL.zip_axis){eL.zip_axis=false;eL.axisx=Math.sin(eL.rot);eL.axisy=Math.cos(eL.rot)}var ex=eN.lverts.next;var ek=eN.gverts.next;while(ek!=null){var eZ=ek;var eW=ex;ex=ex.next;eZ.x=eN.body.posx+(eN.body.axisy*eW.x-eN.body.axisx*eW.y);eZ.y=eN.body.posy+(eW.x*eN.body.axisx+eW.y*eN.body.axisy);ek=ek.next}}}var e2=eN.gverts.next;eN.aabb.minx=e2.x;eN.aabb.miny=e2.y;eN.aabb.maxx=e2.x;eN.aabb.maxy=e2.y;var ej=eN.gverts.next.next;while(ej!=null){var eU=ej;if(eU.x<eN.aabb.minx){eN.aabb.minx=eU.x}if(eU.x>eN.aabb.maxx){eN.aabb.maxx=eU.x}if(eU.y<eN.aabb.miny){eN.aabb.miny=eU.y}if(eU.y>eN.aabb.maxy){eN.aabb.maxy=eU.y}ej=ej.next}}}}}}else{var eJ=this.dynab;var eq=el.node;if(!eq.synced){if(!eJ.space.continuous){if(el.zip_aabb){if(el.body!=null){el.zip_aabb=false;if(el.type==0){var eG=el.circle;if(eG.zip_worldCOM){if(eG.body!=null){eG.zip_worldCOM=false;if(eG.zip_localCOM){eG.zip_localCOM=false;if(eG.type==1){var eF=eG.polygon;if(eF.lverts.next.next==null){eF.localCOMx=eF.lverts.next.x;eF.localCOMy=eF.lverts.next.y}else{if(eF.lverts.next.next.next==null){eF.localCOMx=eF.lverts.next.x;eF.localCOMy=eF.lverts.next.y;eF.localCOMx+=eF.lverts.next.next.x;eF.localCOMy+=eF.lverts.next.next.y;eF.localCOMx*=0.5;eF.localCOMy*=0.5}else{eF.localCOMx=0;eF.localCOMy=0;var em=0;var ei=eF.lverts.next;var ef=ei;ei=ei.next;var e3=ei;ei=ei.next;while(ei!=null){var eu=ei;em+=e3.x*(eu.y-ef.y);var eE=eu.y*e3.x-eu.x*e3.y;eF.localCOMx+=(e3.x+eu.x)*eE;eF.localCOMy+=(e3.y+eu.y)*eE;ef=e3;e3=eu;ei=ei.next}ei=eF.lverts.next;var er=ei;em+=e3.x*(er.y-ef.y);var eC=er.y*e3.x-er.x*e3.y;eF.localCOMx+=(e3.x+er.x)*eC;eF.localCOMy+=(e3.y+er.y)*eC;ef=e3;ei=ei.next;var ep=ei;em+=er.x*(ep.y-ef.y);var eA=ep.y*er.x-ep.x*er.y;eF.localCOMx+=(er.x+ep.x)*eA;eF.localCOMy+=(er.y+ep.y)*eA;em=1/(3*em);var et=em;eF.localCOMx*=et;eF.localCOMy*=et}}}if(eG.wrap_localCOM!=null){eG.wrap_localCOM.zpp_inner.x=eG.localCOMx;eG.wrap_localCOM.zpp_inner.y=eG.localCOMy}}var eB=eG.body;if(eB.zip_axis){eB.zip_axis=false;eB.axisx=Math.sin(eB.rot);eB.axisy=Math.cos(eB.rot)}eG.worldCOMx=eG.body.posx+(eG.body.axisy*eG.localCOMx-eG.body.axisx*eG.localCOMy);eG.worldCOMy=eG.body.posy+(eG.localCOMx*eG.body.axisx+eG.localCOMy*eG.body.axisy)}}var eb=eG.radius;var eT=eG.radius;eG.aabb.minx=eG.worldCOMx-eb;eG.aabb.miny=eG.worldCOMy-eT;eG.aabb.maxx=eG.worldCOMx+eb;eG.aabb.maxy=eG.worldCOMy+eT}else{var ez=el.polygon;if(ez.zip_gverts){if(ez.body!=null){ez.zip_gverts=false;ez.validate_lverts();var e0=ez.body;if(e0.zip_axis){e0.zip_axis=false;e0.axisx=Math.sin(e0.rot);e0.axisy=Math.cos(e0.rot)}var eD=ez.lverts.next;var eh=ez.gverts.next;while(eh!=null){var eX=eh;var ed=eD;eD=eD.next;eX.x=ez.body.posx+(ez.body.axisy*ed.x-ez.body.axisx*ed.y);eX.y=ez.body.posy+(ed.x*ez.body.axisx+ed.y*ez.body.axisy);eh=eh.next}}}var eV=ez.gverts.next;ez.aabb.minx=eV.x;ez.aabb.miny=eV.y;ez.aabb.maxx=eV.x;ez.aabb.maxy=eV.y;var eg=ez.gverts.next.next;while(eg!=null){var e1=eg;if(e1.x<ez.aabb.minx){ez.aabb.minx=e1.x}if(e1.x>ez.aabb.maxx){ez.aabb.maxx=e1.x}if(e1.y<ez.aabb.miny){ez.aabb.miny=e1.y}if(e1.y>ez.aabb.maxy){ez.aabb.maxy=e1.y}eg=eg.next}}}}}var ee;if(eq.dyn==(el.body.type==1?false:!el.body.component.sleeping)){var eY=eq.aabb;var eI=el.aabb;ee=!(eI.minx>=eY.minx&&eI.miny>=eY.miny&&eI.maxx<=eY.maxx&&eI.maxy<=eY.maxy)}else{ee=true}if(ee){eq.synced=true;eq.snext=eJ.syncs;eJ.syncs=eq}}}};dB.prototype.broadphase=function(eb,ea){};dB.prototype.clear=function(){};dB.prototype.shapesUnderPoint=function(ea,ed,ec,eb){return null};dB.prototype.bodiesUnderPoint=function(ea,ed,ec,eb){return null};dB.prototype.aabbShape=null;dB.prototype.matrix=null;dB.prototype.updateAABBShape=function(ep){if(this.aabbShape==null){if(br.BodyType_STATIC==null){br.internal=true;br.BodyType_STATIC=new cU();br.internal=false}var eb=new at(br.BodyType_STATIC).zpp_inner.wrap_shapes;var ea=this.aabbShape=new Z(Z.rect(ep.minx,ep.miny,ep.maxx-ep.minx,ep.maxy-ep.miny));if(eb.zpp_inner.reverse_flag){eb.push(ea)}else{eb.unshift(ea)}}else{var eh=this.aabbShape.zpp_inner.aabb;var ee=(ep.maxx-ep.minx)/(eh.maxx-eh.minx);var ed=(ep.maxy-ep.miny)/(eh.maxy-eh.miny);if(this.matrix==null){this.matrix=new cI()}var eL=this.matrix;eL.zpp_inner.a=ee;var eJ=eL.zpp_inner;if(eJ._invalidate!=null){eJ._invalidate()}var eH=this.matrix;var eF=this.matrix;eF.zpp_inner.c=0;var eD=eF.zpp_inner;if(eD._invalidate!=null){eD._invalidate()}eH.zpp_inner.b=eF.zpp_inner.c;var eB=eH.zpp_inner;if(eB._invalidate!=null){eB._invalidate()}var eA=this.matrix;eA.zpp_inner.d=ed;var ey=eA.zpp_inner;if(ey._invalidate!=null){ey._invalidate()}var ex=this.matrix;ex.zpp_inner.tx=ep.minx-ee*eh.minx;var e2=ex.zpp_inner;if(e2._invalidate!=null){e2._invalidate()}var eZ=this.matrix;eZ.zpp_inner.ty=ep.miny-ed*eh.miny;var eX=eZ.zpp_inner;if(eX._invalidate!=null){eX._invalidate()}this.aabbShape.transform(this.matrix)}var eW=this.aabbShape.zpp_inner;if(eW.zip_aabb){if(eW.body!=null){eW.zip_aabb=false;if(eW.type==0){var eV=eW.circle;if(eV.zip_worldCOM){if(eV.body!=null){eV.zip_worldCOM=false;if(eV.zip_localCOM){eV.zip_localCOM=false;if(eV.type==1){var eU=eV.polygon;if(eU.lverts.next.next==null){eU.localCOMx=eU.lverts.next.x;eU.localCOMy=eU.lverts.next.y}else{if(eU.lverts.next.next.next==null){eU.localCOMx=eU.lverts.next.x;eU.localCOMy=eU.lverts.next.y;eU.localCOMx+=eU.lverts.next.next.x;eU.localCOMy+=eU.lverts.next.next.y;eU.localCOMx*=0.5;eU.localCOMy*=0.5}else{eU.localCOMx=0;eU.localCOMy=0;var et=0;var ec=eU.lverts.next;var eK=ec;ec=ec.next;var eI=ec;ec=ec.next;while(ec!=null){var eG=ec;et+=eI.x*(eG.y-eK.y);var es=eG.y*eI.x-eG.x*eI.y;eU.localCOMx+=(eI.x+eG.x)*es;eU.localCOMy+=(eI.y+eG.y)*es;eK=eI;eI=eG;ec=ec.next}ec=eU.lverts.next;var ew=ec;et+=eI.x*(ew.y-eK.y);var eE=ew.y*eI.x-ew.x*eI.y;eU.localCOMx+=(eI.x+ew.x)*eE;eU.localCOMy+=(eI.y+ew.y)*eE;eK=eI;ec=ec.next;var eu=ec;et+=ew.x*(eu.y-eK.y);var eC=eu.y*ew.x-eu.x*ew.y;eU.localCOMx+=(ew.x+eu.x)*eC;eU.localCOMy+=(ew.y+eu.y)*eC;et=1/(3*et);var eM=et;eU.localCOMx*=eM;eU.localCOMy*=eM}}}if(eV.wrap_localCOM!=null){eV.wrap_localCOM.zpp_inner.x=eV.localCOMx;eV.wrap_localCOM.zpp_inner.y=eV.localCOMy}}var eS=eV.body;if(eS.zip_axis){eS.zip_axis=false;eS.axisx=Math.sin(eS.rot);eS.axisy=Math.cos(eS.rot)}eV.worldCOMx=eV.body.posx+(eV.body.axisy*eV.localCOMx-eV.body.axisx*eV.localCOMy);eV.worldCOMy=eV.body.posy+(eV.localCOMx*eV.body.axisx+eV.localCOMy*eV.body.axisy)}}var eo=eV.radius;var en=eV.radius;eV.aabb.minx=eV.worldCOMx-eo;eV.aabb.miny=eV.worldCOMy-en;eV.aabb.maxx=eV.worldCOMx+eo;eV.aabb.maxy=eV.worldCOMy+en}else{var eQ=eW.polygon;if(eQ.zip_gverts){if(eQ.body!=null){eQ.zip_gverts=false;eQ.validate_lverts();var eP=eQ.body;if(eP.zip_axis){eP.zip_axis=false;eP.axisx=Math.sin(eP.rot);eP.axisy=Math.cos(eP.rot)}var ev=eQ.lverts.next;var el=eQ.gverts.next;while(el!=null){var eY=el;var eR=ev;ev=ev.next;eY.x=eQ.body.posx+(eQ.body.axisy*eR.x-eQ.body.axisx*eR.y);eY.y=eQ.body.posy+(eR.x*eQ.body.axisx+eR.y*eQ.body.axisy);el=el.next}}}var e4=eQ.gverts.next;eQ.aabb.minx=e4.x;eQ.aabb.miny=e4.y;eQ.aabb.maxx=e4.x;eQ.aabb.maxy=e4.y;var ek=eQ.gverts.next.next;while(ek!=null){var eN=ek;if(eN.x<eQ.aabb.minx){eQ.aabb.minx=eN.x}if(eN.x>eQ.aabb.maxx){eQ.aabb.maxx=eN.x}if(eN.y<eQ.aabb.miny){eQ.aabb.miny=eN.y}if(eN.y>eQ.aabb.maxy){eQ.aabb.maxy=eN.y}ek=ek.next}}}}var eO=this.aabbShape.zpp_inner.polygon;if(eO.zip_gaxi){if(eO.body!=null){eO.zip_gaxi=false;eO.validate_laxi();var er=eO.body;if(er.zip_axis){er.zip_axis=false;er.axisx=Math.sin(er.rot);er.axisy=Math.cos(er.rot)}if(eO.zip_gverts){if(eO.body!=null){eO.zip_gverts=false;eO.validate_lverts();var eq=eO.body;if(eq.zip_axis){eq.zip_axis=false;eq.axisx=Math.sin(eq.rot);eq.axisy=Math.cos(eq.rot)}var ez=eO.lverts.next;var ej=eO.gverts.next;while(ej!=null){var eT=ej;var ef=ez;ez=ez.next;eT.x=eO.body.posx+(eO.body.axisy*ef.x-eO.body.axisx*ef.y);eT.y=eO.body.posy+(ef.x*eO.body.axisx+ef.y*eO.body.axisy);ej=ej.next}}}var e0=eO.edges.head;var ei=eO.gverts.next;var eg=ei;ei=ei.next;while(ei!=null){var e5=ei;var e3=e0.elt;e0=e0.next;e3.gp0=eg;e3.gp1=e5;e3.gnormx=eO.body.axisy*e3.lnormx-eO.body.axisx*e3.lnormy;e3.gnormy=e3.lnormx*eO.body.axisx+e3.lnormy*eO.body.axisy;e3.gprojection=eO.body.posx*e3.gnormx+eO.body.posy*e3.gnormy+e3.lprojection;if(e3.wrap_gnorm!=null){e3.wrap_gnorm.zpp_inner.x=e3.gnormx;e3.wrap_gnorm.zpp_inner.y=e3.gnormy}e3.tp0=e3.gp0.y*e3.gnormx-e3.gp0.x*e3.gnormy;e3.tp1=e3.gp1.y*e3.gnormx-e3.gp1.x*e3.gnormy;eg=e5;ei=ei.next}var em=e0.elt;em.gp0=eg;em.gp1=eO.gverts.next;em.gnormx=eO.body.axisy*em.lnormx-eO.body.axisx*em.lnormy;em.gnormy=em.lnormx*eO.body.axisx+em.lnormy*eO.body.axisy;em.gprojection=eO.body.posx*em.gnormx+eO.body.posy*em.gnormy+em.lprojection;if(em.wrap_gnorm!=null){em.wrap_gnorm.zpp_inner.x=em.gnormx;em.wrap_gnorm.zpp_inner.y=em.gnormy}em.tp0=em.gp0.y*em.gnormx-em.gp0.x*em.gnormy;em.tp1=em.gp1.y*em.gnormx-em.gp1.x*em.gnormy}}};dB.prototype.shapesInAABB=function(eb,ea,ee,ed,ec){return null};dB.prototype.bodiesInAABB=function(eb,ea,ee,ed,ec){return null};dB.prototype.circShape=null;dB.prototype.updateCircShape=function(ez,ew,eJ){if(this.circShape==null){if(br.BodyType_STATIC==null){br.internal=true;br.BodyType_STATIC=new cU();br.internal=false}var eb=new at(br.BodyType_STATIC).zpp_inner.wrap_shapes;var el;if(au.poolVec2==null){el=new r()}else{el=au.poolVec2;au.poolVec2=el.zpp_pool;el.zpp_pool=null}if(el.zpp_inner==null){var eA;if(bB.zpp_pool==null){eA=new bB()}else{eA=bB.zpp_pool;bB.zpp_pool=eA.next;eA.next=null}eA.weak=false;eA._immutable=false;eA.x=ez;eA.y=ew;el.zpp_inner=eA;el.zpp_inner.outer=el}else{var eL;var eI=el.zpp_inner;if(eI._validate!=null){eI._validate()}if(el.zpp_inner.x==ez){var eF=el.zpp_inner;if(eF._validate!=null){eF._validate()}eL=el.zpp_inner.y==ew}else{eL=false}if(!eL){el.zpp_inner.x=ez;el.zpp_inner.y=ew;var eD=el.zpp_inner;if(eD._invalidate!=null){eD._invalidate(eD)}}}el.zpp_inner.weak=false;var ea=this.circShape=new ds(eJ,el);if(eb.zpp_inner.reverse_flag){eb.push(ea)}else{eb.unshift(ea)}}else{var ej=this.circShape.zpp_inner.circle;var ed=eJ/ej.radius;if(this.matrix==null){this.matrix=new cI()}var eB=this.matrix;var ey=this.matrix;ey.zpp_inner.d=ed;var ev=ey.zpp_inner;if(ev._invalidate!=null){ev._invalidate()}eB.zpp_inner.a=ey.zpp_inner.d;var et=eB.zpp_inner;if(et._invalidate!=null){et._invalidate()}var es=this.matrix;var er=this.matrix;er.zpp_inner.c=0;var eX=er.zpp_inner;if(eX._invalidate!=null){eX._invalidate()}es.zpp_inner.b=er.zpp_inner.c;var eW=es.zpp_inner;if(eW._invalidate!=null){eW._invalidate()}var eU=this.matrix;eU.zpp_inner.tx=ez-ed*ej.localCOMx;var eT=eU.zpp_inner;if(eT._invalidate!=null){eT._invalidate()}var eS=this.matrix;eS.zpp_inner.ty=ew-ed*ej.localCOMy;var eR=eS.zpp_inner;if(eR._invalidate!=null){eR._invalidate()}this.circShape.transform(this.matrix)}var eQ=this.circShape.zpp_inner;if(eQ.zip_aabb){if(eQ.body!=null){eQ.zip_aabb=false;if(eQ.type==0){var eO=eQ.circle;if(eO.zip_worldCOM){if(eO.body!=null){eO.zip_worldCOM=false;if(eO.zip_localCOM){eO.zip_localCOM=false;if(eO.type==1){var eN=eO.polygon;if(eN.lverts.next.next==null){eN.localCOMx=eN.lverts.next.x;eN.localCOMy=eN.lverts.next.y}else{if(eN.lverts.next.next.next==null){eN.localCOMx=eN.lverts.next.x;eN.localCOMy=eN.lverts.next.y;eN.localCOMx+=eN.lverts.next.next.x;eN.localCOMy+=eN.lverts.next.next.y;eN.localCOMx*=0.5;eN.localCOMy*=0.5}else{eN.localCOMx=0;eN.localCOMy=0;var eo=0;var ec=eN.lverts.next;var eG=ec;ec=ec.next;var eE=ec;ec=ec.next;while(ec!=null){var eC=ec;eo+=eE.x*(eC.y-eG.y);var em=eC.y*eE.x-eC.x*eE.y;eN.localCOMx+=(eE.x+eC.x)*em;eN.localCOMy+=(eE.y+eC.y)*em;eG=eE;eE=eC;ec=ec.next}ec=eN.lverts.next;var eq=ec;eo+=eE.x*(eq.y-eG.y);var ex=eq.y*eE.x-eq.x*eE.y;eN.localCOMx+=(eE.x+eq.x)*ex;eN.localCOMy+=(eE.y+eq.y)*ex;eG=eE;ec=ec.next;var en=ec;eo+=eq.x*(en.y-eG.y);var eu=en.y*eq.x-en.x*eq.y;eN.localCOMx+=(eq.x+en.x)*eu;eN.localCOMy+=(eq.y+en.y)*eu;eo=1/(3*eo);var eH=eo;eN.localCOMx*=eH;eN.localCOMy*=eH}}}if(eO.wrap_localCOM!=null){eO.wrap_localCOM.zpp_inner.x=eO.localCOMx;eO.wrap_localCOM.zpp_inner.y=eO.localCOMy}}var eM=eO.body;if(eM.zip_axis){eM.zip_axis=false;eM.axisx=Math.sin(eM.rot);eM.axisy=Math.cos(eM.rot)}eO.worldCOMx=eO.body.posx+(eO.body.axisy*eO.localCOMx-eO.body.axisx*eO.localCOMy);eO.worldCOMy=eO.body.posy+(eO.localCOMx*eO.body.axisx+eO.localCOMy*eO.body.axisy)}}var eh=eO.radius;var eg=eO.radius;eO.aabb.minx=eO.worldCOMx-eh;eO.aabb.miny=eO.worldCOMy-eg;eO.aabb.maxx=eO.worldCOMx+eh;eO.aabb.maxy=eO.worldCOMy+eg}else{var ek=eQ.polygon;if(ek.zip_gverts){if(ek.body!=null){ek.zip_gverts=false;ek.validate_lverts();var ei=ek.body;if(ei.zip_axis){ei.zip_axis=false;ei.axisx=Math.sin(ei.rot);ei.axisy=Math.cos(ei.rot)}var ep=ek.lverts.next;var ef=ek.gverts.next;while(ef!=null){var eV=ef;var eP=ep;ep=ep.next;eV.x=ek.body.posx+(ek.body.axisy*eP.x-ek.body.axisx*eP.y);eV.y=ek.body.posy+(eP.x*ek.body.axisx+eP.y*ek.body.axisy);ef=ef.next}}}var eY=ek.gverts.next;ek.aabb.minx=eY.x;ek.aabb.miny=eY.y;ek.aabb.maxx=eY.x;ek.aabb.maxy=eY.y;var ee=ek.gverts.next.next;while(ee!=null){var eK=ee;if(eK.x<ek.aabb.minx){ek.aabb.minx=eK.x}if(eK.x>ek.aabb.maxx){ek.aabb.maxx=eK.x}if(eK.y<ek.aabb.miny){ek.aabb.miny=eK.y}if(eK.y>ek.aabb.maxy){ek.aabb.maxy=eK.y}ee=ee.next}}}}};dB.prototype.shapesInCircle=function(ea,ef,ed,ee,ec,eb){return null};dB.prototype.bodiesInCircle=function(ea,ef,ed,ee,ec,eb){return null};dB.prototype.validateShape=function(eQ){if(eQ.type==1){var ea=eQ.polygon;if(ea.zip_gaxi){if(ea.body!=null){ea.zip_gaxi=false;ea.validate_laxi();var eO=ea.body;if(eO.zip_axis){eO.zip_axis=false;eO.axisx=Math.sin(eO.rot);eO.axisy=Math.cos(eO.rot)}if(ea.zip_gverts){if(ea.body!=null){ea.zip_gverts=false;ea.validate_lverts();var eM=ea.body;if(eM.zip_axis){eM.zip_axis=false;eM.axisx=Math.sin(eM.rot);eM.axisy=Math.cos(eM.rot)}var ev=ea.lverts.next;var eb=ea.gverts.next;while(eb!=null){var eU=eb;var eS=ev;ev=ev.next;eU.x=ea.body.posx+(ea.body.axisy*eS.x-ea.body.axisx*eS.y);eU.y=ea.body.posy+(eS.x*ea.body.axisx+eS.y*ea.body.axisy);eb=eb.next}}}var eV=ea.edges.head;var ej=ea.gverts.next;var eN=ej;ej=ej.next;while(ej!=null){var eL=ej;var eW=eV.elt;eV=eV.next;eW.gp0=eN;eW.gp1=eL;eW.gnormx=ea.body.axisy*eW.lnormx-ea.body.axisx*eW.lnormy;eW.gnormy=eW.lnormx*ea.body.axisx+eW.lnormy*ea.body.axisy;eW.gprojection=ea.body.posx*eW.gnormx+ea.body.posy*eW.gnormy+eW.lprojection;if(eW.wrap_gnorm!=null){eW.wrap_gnorm.zpp_inner.x=eW.gnormx;eW.wrap_gnorm.zpp_inner.y=eW.gnormy}eW.tp0=eW.gp0.y*eW.gnormx-eW.gp0.x*eW.gnormy;eW.tp1=eW.gp1.y*eW.gnormx-eW.gp1.x*eW.gnormy;eN=eL;ej=ej.next}var el=eV.elt;el.gp0=eN;el.gp1=ea.gverts.next;el.gnormx=ea.body.axisy*el.lnormx-ea.body.axisx*el.lnormy;el.gnormy=el.lnormx*ea.body.axisx+el.lnormy*ea.body.axisy;el.gprojection=ea.body.posx*el.gnormx+ea.body.posy*el.gnormy+el.lprojection;if(el.wrap_gnorm!=null){el.wrap_gnorm.zpp_inner.x=el.gnormx;el.wrap_gnorm.zpp_inner.y=el.gnormy}el.tp0=el.gp0.y*el.gnormx-el.gp0.x*el.gnormy;el.tp1=el.gp1.y*el.gnormx-el.gp1.x*el.gnormy}}}if(eQ.zip_aabb){if(eQ.body!=null){eQ.zip_aabb=false;if(eQ.type==0){var eK=eQ.circle;if(eK.zip_worldCOM){if(eK.body!=null){eK.zip_worldCOM=false;if(eK.zip_localCOM){eK.zip_localCOM=false;if(eK.type==1){var eI=eK.polygon;if(eI.lverts.next.next==null){eI.localCOMx=eI.lverts.next.x;eI.localCOMy=eI.lverts.next.y}else{if(eI.lverts.next.next.next==null){eI.localCOMx=eI.lverts.next.x;eI.localCOMy=eI.lverts.next.y;eI.localCOMx+=eI.lverts.next.next.x;eI.localCOMy+=eI.lverts.next.next.y;eI.localCOMx*=0.5;eI.localCOMy*=0.5}else{eI.localCOMx=0;eI.localCOMy=0;var et=0;var ei=eI.lverts.next;var ee=ei;ei=ei.next;var eZ=ei;ei=ei.next;while(ei!=null){var eJ=ei;et+=eZ.x*(eJ.y-ee.y);var eq=eJ.y*eZ.x-eJ.x*eZ.y;eI.localCOMx+=(eZ.x+eJ.x)*eq;eI.localCOMy+=(eZ.y+eJ.y)*eq;ee=eZ;eZ=eJ;ei=ei.next}ei=eI.lverts.next;var ew=ei;et+=eZ.x*(ew.y-ee.y);var eH=ew.y*eZ.x-ew.x*eZ.y;eI.localCOMx+=(eZ.x+ew.x)*eH;eI.localCOMy+=(eZ.y+ew.y)*eH;ee=eZ;ei=ei.next;var eu=ei;et+=ew.x*(eu.y-ee.y);var eF=eu.y*ew.x-eu.x*ew.y;eI.localCOMx+=(ew.x+eu.x)*eF;eI.localCOMy+=(ew.y+eu.y)*eF;et=1/(3*et);var eP=et;eI.localCOMx*=eP;eI.localCOMy*=eP}}}if(eK.wrap_localCOM!=null){eK.wrap_localCOM.zpp_inner.x=eK.localCOMx;eK.wrap_localCOM.zpp_inner.y=eK.localCOMy}}var eG=eK.body;if(eG.zip_axis){eG.zip_axis=false;eG.axisx=Math.sin(eG.rot);eG.axisy=Math.cos(eG.rot)}eK.worldCOMx=eK.body.posx+(eK.body.axisy*eK.localCOMx-eK.body.axisx*eK.localCOMy);eK.worldCOMy=eK.body.posy+(eK.localCOMx*eK.body.axisx+eK.localCOMy*eK.body.axisy)}}var en=eK.radius;var em=eK.radius;eK.aabb.minx=eK.worldCOMx-en;eK.aabb.miny=eK.worldCOMy-em;eK.aabb.maxx=eK.worldCOMx+en;eK.aabb.maxy=eK.worldCOMy+em}else{var eE=eQ.polygon;if(eE.zip_gverts){if(eE.body!=null){eE.zip_gverts=false;eE.validate_lverts();var eC=eE.body;if(eC.zip_axis){eC.zip_axis=false;eC.axisx=Math.sin(eC.rot);eC.axisy=Math.cos(eC.rot)}var eD=eE.lverts.next;var eh=eE.gverts.next;while(eh!=null){var eT=eh;var ec=eD;eD=eD.next;eT.x=eE.body.posx+(eE.body.axisy*ec.x-eE.body.axisx*ec.y);eT.y=eE.body.posy+(ec.x*eE.body.axisx+ec.y*eE.body.axisy);eh=eh.next}}}var eX=eE.gverts.next;eE.aabb.minx=eX.x;eE.aabb.miny=eX.y;eE.aabb.maxx=eX.x;eE.aabb.maxy=eX.y;var eg=eE.gverts.next.next;while(eg!=null){var eR=eg;if(eR.x<eE.aabb.minx){eE.aabb.minx=eR.x}if(eR.x>eE.aabb.maxx){eE.aabb.maxx=eR.x}if(eR.y<eE.aabb.miny){eE.aabb.miny=eR.y}if(eR.y>eE.aabb.maxy){eE.aabb.maxy=eR.y}eg=eg.next}}}}if(eQ.zip_worldCOM){if(eQ.body!=null){eQ.zip_worldCOM=false;if(eQ.zip_localCOM){eQ.zip_localCOM=false;if(eQ.type==1){var eA=eQ.polygon;if(eA.lverts.next.next==null){eA.localCOMx=eA.lverts.next.x;eA.localCOMy=eA.lverts.next.y}else{if(eA.lverts.next.next.next==null){eA.localCOMx=eA.lverts.next.x;eA.localCOMy=eA.lverts.next.y;eA.localCOMx+=eA.lverts.next.next.x;eA.localCOMy+=eA.lverts.next.next.y;eA.localCOMx*=0.5;eA.localCOMy*=0.5}else{eA.localCOMx=0;eA.localCOMy=0;var ek=0;var ef=eA.lverts.next;var ed=ef;ef=ef.next;var eY=ef;ef=ef.next;while(ef!=null){var es=ef;ek+=eY.x*(es.y-ed.y);var eB=es.y*eY.x-es.x*eY.y;eA.localCOMx+=(eY.x+es.x)*eB;eA.localCOMy+=(eY.y+es.y)*eB;ed=eY;eY=es;ef=ef.next}ef=eA.lverts.next;var ep=ef;ek+=eY.x*(ep.y-ed.y);var ez=ep.y*eY.x-ep.x*eY.y;eA.localCOMx+=(eY.x+ep.x)*ez;eA.localCOMy+=(eY.y+ep.y)*ez;ed=eY;ef=ef.next;var eo=ef;ek+=ep.x*(eo.y-ed.y);var ey=eo.y*ep.x-eo.x*ep.y;eA.localCOMx+=(ep.x+eo.x)*ey;eA.localCOMy+=(ep.y+eo.y)*ey;ek=1/(3*ek);var er=ek;eA.localCOMx*=er;eA.localCOMy*=er}}}if(eQ.wrap_localCOM!=null){eQ.wrap_localCOM.zpp_inner.x=eQ.localCOMx;eQ.wrap_localCOM.zpp_inner.y=eQ.localCOMy}}var ex=eQ.body;if(ex.zip_axis){ex.zip_axis=false;ex.axisx=Math.sin(ex.rot);ex.axisy=Math.cos(ex.rot)}eQ.worldCOMx=eQ.body.posx+(eQ.body.axisy*eQ.localCOMx-eQ.body.axisx*eQ.localCOMy);eQ.worldCOMy=eQ.body.posy+(eQ.localCOMx*eQ.body.axisx+eQ.localCOMy*eQ.body.axisy)}}};dB.prototype.shapesInShape=function(eb,ed,ec,ea){return null};dB.prototype.bodiesInShape=function(eb,ed,ec,ea){return null};dB.prototype.rayCast=function(ea,eb,ec){return null};dB.prototype.rayMultiCast=function(ea,ec,ed,eb){return null};dB.prototype.__class__=dB;var dz=zpp_nape.space.ZPP_AABBNode=function(){this.first_sync=false;this.synced=false;this.snext=null;this.moved=false;this.mnext=null;this.next=null;this.rayt=0;this.height=0;this.child2=null;this.child1=null;this.parent=null;this.dyn=false;this.shape=null;this.aabb=null;this.height=-1};dz.__name__=["zpp_nape","space","ZPP_AABBNode"];dz.prototype.aabb=null;dz.prototype.shape=null;dz.prototype.dyn=null;dz.prototype.parent=null;dz.prototype.child1=null;dz.prototype.child2=null;dz.prototype.height=null;dz.prototype.rayt=null;dz.prototype.next=null;dz.prototype.alloc=function(){if(bT.zpp_pool==null){this.aabb=new bT()}else{this.aabb=bT.zpp_pool;bT.zpp_pool=this.aabb.next;this.aabb.next=null}this.moved=false;this.synced=false;this.first_sync=false};dz.prototype.free=function(){this.height=-1;var ea=this.aabb;if(ea.outer!=null){ea.outer.zpp_inner=null;ea.outer=null}ea.wrap_min=ea.wrap_max=null;ea._invalidate=null;ea._validate=null;ea.next=bT.zpp_pool;bT.zpp_pool=ea;this.child1=this.child2=this.parent=null;this.next=null;this.snext=null;this.mnext=null};dz.prototype.mnext=null;dz.prototype.moved=null;dz.prototype.snext=null;dz.prototype.synced=null;dz.prototype.first_sync=null;dz.prototype.isLeaf=function(){return this.child1==null};dz.prototype.__class__=dz;var bG=zpp_nape.space.ZPP_AABBPair=function(){this.next=null;this.arb=null;this.di=0;this.id=0;this.sleeping=false;this.first=false;this.n2=null;this.n1=null};bG.__name__=["zpp_nape","space","ZPP_AABBPair"];bG.prototype.n1=null;bG.prototype.n2=null;bG.prototype.first=null;bG.prototype.sleeping=null;bG.prototype.id=null;bG.prototype.di=null;bG.prototype.arb=null;bG.prototype.next=null;bG.prototype.alloc=function(){};bG.prototype.free=function(){this.n1=this.n2=null;this.sleeping=false};bG.prototype.__class__=bG;var d=zpp_nape.space.ZPP_AABBTree=function(){this.root=null};d.__name__=["zpp_nape","space","ZPP_AABBTree"];d.prototype.root=null;d.prototype.clear=function(){if(this.root==null){return}var ea=null;this.root.next=ea;ea=this.root;while(ea!=null){var eb=ea;ea=eb.next;eb.next=null;if(eb.child1==null){eb.shape.node=null;eb.shape.removedFromSpace();eb.shape=null}else{if(eb.child1!=null){eb.child1.next=ea;ea=eb.child1}if(eb.child2!=null){eb.child2.next=ea;ea=eb.child2}}eb.height=-1;var ec=eb.aabb;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec.wrap_min=ec.wrap_max=null;ec._invalidate=null;ec._validate=null;ec.next=bT.zpp_pool;bT.zpp_pool=ec;eb.child1=eb.child2=eb.parent=null;eb.next=null;eb.snext=null;eb.mnext=null;eb.next=dz.zpp_pool;dz.zpp_pool=eb}this.root=null};d.prototype.insertLeaf=function(eB){if(this.root==null){this.root=eB;this.root.parent=null}else{var eC=eB.aabb;var e5=this.root;while(e5.child1!=null){var e7=e5.child1;var e6=e5.child2;var eo=e5.aabb;var ec=(eo.maxx-eo.minx+(eo.maxy-eo.miny))*2;var eM=d.tmpaabb;var eX=e5.aabb;eM.minx=eX.minx<eC.minx?eX.minx:eC.minx;eM.miny=eX.miny<eC.miny?eX.miny:eC.miny;eM.maxx=eX.maxx>eC.maxx?eX.maxx:eC.maxx;eM.maxy=eX.maxy>eC.maxy?eX.maxy:eC.maxy;var eL=d.tmpaabb;var eD=(eL.maxx-eL.minx+(eL.maxy-eL.miny))*2;var fl=2*eD;var eb=2*(eD-ec);var eK=d.tmpaabb;var eV=e7.aabb;eK.minx=eC.minx<eV.minx?eC.minx:eV.minx;eK.miny=eC.miny<eV.miny?eC.miny:eV.miny;eK.maxx=eC.maxx>eV.maxx?eC.maxx:eV.maxx;eK.maxy=eC.maxy>eV.maxy?eC.maxy:eV.maxy;var e3;if(e7.child1==null){var eJ=d.tmpaabb;e3=(eJ.maxx-eJ.minx+(eJ.maxy-eJ.miny))*2+eb}else{var eI=e7.aabb;var em=(eI.maxx-eI.minx+(eI.maxy-eI.miny))*2;var eH=d.tmpaabb;e3=(eH.maxx-eH.minx+(eH.maxy-eH.miny))*2-em+eb}var eG=d.tmpaabb;var fm=e6.aabb;eG.minx=eC.minx<fm.minx?eC.minx:fm.minx;eG.miny=eC.miny<fm.miny?eC.miny:fm.miny;eG.maxx=eC.maxx>fm.maxx?eC.maxx:fm.maxx;eG.maxy=eC.maxy>fm.maxy?eC.maxy:fm.maxy;var e2;if(e6.child1==null){var eF=d.tmpaabb;e2=(eF.maxx-eF.minx+(eF.maxy-eF.miny))*2+eb}else{var eE=e6.aabb;var fn=(eE.maxx-eE.minx+(eE.maxy-eE.miny))*2;var e1=d.tmpaabb;e2=(e1.maxx-e1.minx+(e1.maxy-e1.miny))*2-fn+eb}if(fl<e3&&fl<e2){break}else{if(e3<e2){e5=e7}else{e5=e6}}}var e4=e5;var fb=e4.parent;var fq;if(dz.zpp_pool==null){fq=new dz()}else{fq=dz.zpp_pool;dz.zpp_pool=fq.next;fq.next=null}if(bT.zpp_pool==null){fq.aabb=new bT()}else{fq.aabb=bT.zpp_pool;bT.zpp_pool=fq.aabb.next;fq.aabb.next=null}fq.moved=false;fq.synced=false;fq.first_sync=false;fq.parent=fb;var e0=fq.aabb;var fk=e4.aabb;e0.minx=eC.minx<fk.minx?eC.minx:fk.minx;e0.miny=eC.miny<fk.miny?eC.miny:fk.miny;e0.maxx=eC.maxx>fk.maxx?eC.maxx:fk.maxx;e0.maxy=eC.maxy>fk.maxy?eC.maxy:fk.maxy;fq.height=e4.height+1;if(fb!=null){if(fb.child1==e4){fb.child1=fq}else{fb.child2=fq}fq.child1=e4;fq.child2=eB;e4.parent=fq;eB.parent=fq}else{fq.child1=e4;fq.child2=eB;e4.parent=fq;eB.parent=fq;this.root=fq}e5=eB.parent;while(e5!=null){if(e5.child1==null||e5.height<2){e5=e5}else{var fj=e5.child1;var eT=e5.child2;var fh=eT.height-fj.height;if(fh>1){var eP=eT.child1;var eO=eT.child2;eT.child1=e5;eT.parent=e5.parent;e5.parent=eT;if(eT.parent!=null){if(eT.parent.child1==e5){eT.parent.child1=eT}else{eT.parent.child2=eT}}else{this.root=eT}if(eP.height>eO.height){eT.child2=eP;e5.child2=eO;eO.parent=e5;var eZ=e5.aabb;var fx=fj.aabb;var fi=eO.aabb;eZ.minx=fx.minx<fi.minx?fx.minx:fi.minx;eZ.miny=fx.miny<fi.miny?fx.miny:fi.miny;eZ.maxx=fx.maxx>fi.maxx?fx.maxx:fi.maxx;eZ.maxy=fx.maxy>fi.maxy?fx.maxy:fi.maxy;var eY=eT.aabb;var fw=e5.aabb;var fg=eP.aabb;eY.minx=fw.minx<fg.minx?fw.minx:fg.minx;eY.miny=fw.miny<fg.miny?fw.miny:fg.miny;eY.maxx=fw.maxx>fg.maxx?fw.maxx:fg.maxx;eY.maxy=fw.maxy>fg.maxy?fw.maxy:fg.maxy;var eA=fj.height;var ez=eO.height;e5.height=1+(eA>ez?eA:ez);var ex=e5.height;var el=eP.height;eT.height=1+(ex>el?ex:el)}else{eT.child2=eO;e5.child2=eP;eP.parent=e5;var eW=e5.aabb;var fv=fj.aabb;var ff=eP.aabb;eW.minx=fv.minx<ff.minx?fv.minx:ff.minx;eW.miny=fv.miny<ff.miny?fv.miny:ff.miny;eW.maxx=fv.maxx>ff.maxx?fv.maxx:ff.maxx;eW.maxy=fv.maxy>ff.maxy?fv.maxy:ff.maxy;var eU=eT.aabb;var fu=e5.aabb;var fe=eO.aabb;eU.minx=fu.minx<fe.minx?fu.minx:fe.minx;eU.miny=fu.miny<fe.miny?fu.miny:fe.miny;eU.maxx=fu.maxx>fe.maxx?fu.maxx:fe.maxx;eU.maxy=fu.maxy>fe.maxy?fu.maxy:fe.maxy;var ew=fj.height;var ek=eP.height;e5.height=1+(ew>ek?ew:ek);var ev=e5.height;var ej=eO.height;eT.height=1+(ev>ej?ev:ej)}e5=eT}else{if(fh<-1){var en=fj.child1;var ea=fj.child2;fj.child1=e5;fj.parent=e5.parent;e5.parent=fj;if(fj.parent!=null){if(fj.parent.child1==e5){fj.parent.child1=fj}else{fj.parent.child2=fj}}else{this.root=fj}if(en.height>ea.height){fj.child2=en;e5.child1=ea;ea.parent=e5;var eS=e5.aabb;var ft=eT.aabb;var fd=ea.aabb;eS.minx=ft.minx<fd.minx?ft.minx:fd.minx;eS.miny=ft.miny<fd.miny?ft.miny:fd.miny;eS.maxx=ft.maxx>fd.maxx?ft.maxx:fd.maxx;eS.maxy=ft.maxy>fd.maxy?ft.maxy:fd.maxy;var eR=fj.aabb;var fs=e5.aabb;var fc=en.aabb;eR.minx=fs.minx<fc.minx?fs.minx:fc.minx;eR.miny=fs.miny<fc.miny?fs.miny:fc.miny;eR.maxx=fs.maxx>fc.maxx?fs.maxx:fc.maxx;eR.maxy=fs.maxy>fc.maxy?fs.maxy:fc.maxy;var eu=eT.height;var ei=ea.height;e5.height=1+(eu>ei?eu:ei);var et=e5.height;var eh=en.height;fj.height=1+(et>eh?et:eh)}else{fj.child2=ea;e5.child1=en;en.parent=e5;var eQ=e5.aabb;var fr=eT.aabb;var fa=en.aabb;eQ.minx=fr.minx<fa.minx?fr.minx:fa.minx;eQ.miny=fr.miny<fa.miny?fr.miny:fa.miny;eQ.maxx=fr.maxx>fa.maxx?fr.maxx:fa.maxx;eQ.maxy=fr.maxy>fa.maxy?fr.maxy:fa.maxy;var eN=fj.aabb;var fp=e5.aabb;var e9=ea.aabb;eN.minx=fp.minx<e9.minx?fp.minx:e9.minx;eN.miny=fp.miny<e9.miny?fp.miny:e9.miny;eN.maxx=fp.maxx>e9.maxx?fp.maxx:e9.maxx;eN.maxy=fp.maxy>e9.maxy?fp.maxy:e9.maxy;var es=eT.height;var eg=en.height;e5.height=1+(es>eg?es:eg);var er=e5.height;var ef=ea.height;fj.height=1+(er>ef?er:ef)}e5=fj}else{e5=e5}}}var ep=e5.child1;var ed=e5.child2;var eq=ep.height;var ee=ed.height;e5.height=1+(eq>ee?eq:ee);var ey=e5.aabb;var fo=ep.aabb;var e8=ed.aabb;ey.minx=fo.minx<e8.minx?fo.minx:e8.minx;ey.miny=fo.miny<e8.miny?fo.miny:e8.miny;ey.maxx=fo.maxx>e8.maxx?fo.maxx:e8.maxx;ey.maxy=fo.maxy>e8.maxy?fo.maxy:e8.maxy;e5=e5.parent}}};d.prototype.inlined_insertLeaf=function(eB){if(this.root==null){this.root=eB;this.root.parent=null}else{var eC=eB.aabb;var e5=this.root;while(e5.child1!=null){var e7=e5.child1;var e6=e5.child2;var eo=e5.aabb;var ec=(eo.maxx-eo.minx+(eo.maxy-eo.miny))*2;var eM=d.tmpaabb;var eX=e5.aabb;eM.minx=eX.minx<eC.minx?eX.minx:eC.minx;eM.miny=eX.miny<eC.miny?eX.miny:eC.miny;eM.maxx=eX.maxx>eC.maxx?eX.maxx:eC.maxx;eM.maxy=eX.maxy>eC.maxy?eX.maxy:eC.maxy;var eL=d.tmpaabb;var eD=(eL.maxx-eL.minx+(eL.maxy-eL.miny))*2;var fl=2*eD;var eb=2*(eD-ec);var eK=d.tmpaabb;var eV=e7.aabb;eK.minx=eC.minx<eV.minx?eC.minx:eV.minx;eK.miny=eC.miny<eV.miny?eC.miny:eV.miny;eK.maxx=eC.maxx>eV.maxx?eC.maxx:eV.maxx;eK.maxy=eC.maxy>eV.maxy?eC.maxy:eV.maxy;var e3;if(e7.child1==null){var eJ=d.tmpaabb;e3=(eJ.maxx-eJ.minx+(eJ.maxy-eJ.miny))*2+eb}else{var eI=e7.aabb;var em=(eI.maxx-eI.minx+(eI.maxy-eI.miny))*2;var eH=d.tmpaabb;e3=(eH.maxx-eH.minx+(eH.maxy-eH.miny))*2-em+eb}var eG=d.tmpaabb;var fm=e6.aabb;eG.minx=eC.minx<fm.minx?eC.minx:fm.minx;eG.miny=eC.miny<fm.miny?eC.miny:fm.miny;eG.maxx=eC.maxx>fm.maxx?eC.maxx:fm.maxx;eG.maxy=eC.maxy>fm.maxy?eC.maxy:fm.maxy;var e2;if(e6.child1==null){var eF=d.tmpaabb;e2=(eF.maxx-eF.minx+(eF.maxy-eF.miny))*2+eb}else{var eE=e6.aabb;var fn=(eE.maxx-eE.minx+(eE.maxy-eE.miny))*2;var e1=d.tmpaabb;e2=(e1.maxx-e1.minx+(e1.maxy-e1.miny))*2-fn+eb}if(fl<e3&&fl<e2){break}else{if(e3<e2){e5=e7}else{e5=e6}}}var e4=e5;var fb=e4.parent;var fq;if(dz.zpp_pool==null){fq=new dz()}else{fq=dz.zpp_pool;dz.zpp_pool=fq.next;fq.next=null}if(bT.zpp_pool==null){fq.aabb=new bT()}else{fq.aabb=bT.zpp_pool;bT.zpp_pool=fq.aabb.next;fq.aabb.next=null}fq.moved=false;fq.synced=false;fq.first_sync=false;fq.parent=fb;var e0=fq.aabb;var fk=e4.aabb;e0.minx=eC.minx<fk.minx?eC.minx:fk.minx;e0.miny=eC.miny<fk.miny?eC.miny:fk.miny;e0.maxx=eC.maxx>fk.maxx?eC.maxx:fk.maxx;e0.maxy=eC.maxy>fk.maxy?eC.maxy:fk.maxy;fq.height=e4.height+1;if(fb!=null){if(fb.child1==e4){fb.child1=fq}else{fb.child2=fq}fq.child1=e4;fq.child2=eB;e4.parent=fq;eB.parent=fq}else{fq.child1=e4;fq.child2=eB;e4.parent=fq;eB.parent=fq;this.root=fq}e5=eB.parent;while(e5!=null){if(e5.child1==null||e5.height<2){e5=e5}else{var fj=e5.child1;var eT=e5.child2;var fh=eT.height-fj.height;if(fh>1){var eP=eT.child1;var eO=eT.child2;eT.child1=e5;eT.parent=e5.parent;e5.parent=eT;if(eT.parent!=null){if(eT.parent.child1==e5){eT.parent.child1=eT}else{eT.parent.child2=eT}}else{this.root=eT}if(eP.height>eO.height){eT.child2=eP;e5.child2=eO;eO.parent=e5;var eZ=e5.aabb;var fx=fj.aabb;var fi=eO.aabb;eZ.minx=fx.minx<fi.minx?fx.minx:fi.minx;eZ.miny=fx.miny<fi.miny?fx.miny:fi.miny;eZ.maxx=fx.maxx>fi.maxx?fx.maxx:fi.maxx;eZ.maxy=fx.maxy>fi.maxy?fx.maxy:fi.maxy;var eY=eT.aabb;var fw=e5.aabb;var fg=eP.aabb;eY.minx=fw.minx<fg.minx?fw.minx:fg.minx;eY.miny=fw.miny<fg.miny?fw.miny:fg.miny;eY.maxx=fw.maxx>fg.maxx?fw.maxx:fg.maxx;eY.maxy=fw.maxy>fg.maxy?fw.maxy:fg.maxy;var eA=fj.height;var ez=eO.height;e5.height=1+(eA>ez?eA:ez);var ex=e5.height;var el=eP.height;eT.height=1+(ex>el?ex:el)}else{eT.child2=eO;e5.child2=eP;eP.parent=e5;var eW=e5.aabb;var fv=fj.aabb;var ff=eP.aabb;eW.minx=fv.minx<ff.minx?fv.minx:ff.minx;eW.miny=fv.miny<ff.miny?fv.miny:ff.miny;eW.maxx=fv.maxx>ff.maxx?fv.maxx:ff.maxx;eW.maxy=fv.maxy>ff.maxy?fv.maxy:ff.maxy;var eU=eT.aabb;var fu=e5.aabb;var fe=eO.aabb;eU.minx=fu.minx<fe.minx?fu.minx:fe.minx;eU.miny=fu.miny<fe.miny?fu.miny:fe.miny;eU.maxx=fu.maxx>fe.maxx?fu.maxx:fe.maxx;eU.maxy=fu.maxy>fe.maxy?fu.maxy:fe.maxy;var ew=fj.height;var ek=eP.height;e5.height=1+(ew>ek?ew:ek);var ev=e5.height;var ej=eO.height;eT.height=1+(ev>ej?ev:ej)}e5=eT}else{if(fh<-1){var en=fj.child1;var ea=fj.child2;fj.child1=e5;fj.parent=e5.parent;e5.parent=fj;if(fj.parent!=null){if(fj.parent.child1==e5){fj.parent.child1=fj}else{fj.parent.child2=fj}}else{this.root=fj}if(en.height>ea.height){fj.child2=en;e5.child1=ea;ea.parent=e5;var eS=e5.aabb;var ft=eT.aabb;var fd=ea.aabb;eS.minx=ft.minx<fd.minx?ft.minx:fd.minx;eS.miny=ft.miny<fd.miny?ft.miny:fd.miny;eS.maxx=ft.maxx>fd.maxx?ft.maxx:fd.maxx;eS.maxy=ft.maxy>fd.maxy?ft.maxy:fd.maxy;var eR=fj.aabb;var fs=e5.aabb;var fc=en.aabb;eR.minx=fs.minx<fc.minx?fs.minx:fc.minx;eR.miny=fs.miny<fc.miny?fs.miny:fc.miny;eR.maxx=fs.maxx>fc.maxx?fs.maxx:fc.maxx;eR.maxy=fs.maxy>fc.maxy?fs.maxy:fc.maxy;var eu=eT.height;var ei=ea.height;e5.height=1+(eu>ei?eu:ei);var et=e5.height;var eh=en.height;fj.height=1+(et>eh?et:eh)}else{fj.child2=ea;e5.child1=en;en.parent=e5;var eQ=e5.aabb;var fr=eT.aabb;var fa=en.aabb;eQ.minx=fr.minx<fa.minx?fr.minx:fa.minx;eQ.miny=fr.miny<fa.miny?fr.miny:fa.miny;eQ.maxx=fr.maxx>fa.maxx?fr.maxx:fa.maxx;eQ.maxy=fr.maxy>fa.maxy?fr.maxy:fa.maxy;var eN=fj.aabb;var fp=e5.aabb;var e9=ea.aabb;eN.minx=fp.minx<e9.minx?fp.minx:e9.minx;eN.miny=fp.miny<e9.miny?fp.miny:e9.miny;eN.maxx=fp.maxx>e9.maxx?fp.maxx:e9.maxx;eN.maxy=fp.maxy>e9.maxy?fp.maxy:e9.maxy;var es=eT.height;var eg=en.height;e5.height=1+(es>eg?es:eg);var er=e5.height;var ef=ea.height;fj.height=1+(er>ef?er:ef)}e5=fj}else{e5=e5}}}var ep=e5.child1;var ed=e5.child2;var eq=ep.height;var ee=ed.height;e5.height=1+(eq>ee?eq:ee);var ey=e5.aabb;var fo=ep.aabb;var e8=ed.aabb;ey.minx=fo.minx<e8.minx?fo.minx:e8.minx;ey.miny=fo.miny<e8.miny?fo.miny:e8.miny;ey.maxx=fo.maxx>e8.maxx?fo.maxx:e8.maxx;ey.maxy=fo.maxy>e8.maxy?fo.maxy:e8.maxy;e5=e5.parent}}};d.prototype.removeLeaf=function(eW){if(eW==this.root){this.root=null}else{var ee=eW.parent;var ey=ee.parent;var eT=ee.child1==eW?ee.child2:ee.child1;if(ey!=null){if(ey.child1==ee){ey.child1=eT}else{ey.child2=eT}eT.parent=ey;ee.height=-1;var eS=ee.aabb;if(eS.outer!=null){eS.outer.zpp_inner=null;eS.outer=null}eS.wrap_min=eS.wrap_max=null;eS._invalidate=null;eS._validate=null;eS.next=bT.zpp_pool;bT.zpp_pool=eS;ee.child1=ee.child2=ee.parent=null;ee.next=null;ee.snext=null;ee.mnext=null;ee.next=dz.zpp_pool;dz.zpp_pool=ee;var ez=ey;while(ez!=null){if(ez.child1==null||ez.height<2){ez=ez}else{var e4=ez.child1;var e2=ez.child2;var es=e2.height-e4.height;if(es>1){var eY=e2.child1;var eV=e2.child2;e2.child1=ez;e2.parent=ez.parent;ez.parent=e2;if(e2.parent!=null){if(e2.parent.child1==ez){e2.parent.child1=e2}else{e2.parent.child2=e2}}else{this.root=e2}if(eY.height>eV.height){e2.child2=eY;ez.child2=eV;eV.parent=ez;var ec=ez.aabb;var e5=e4.aabb;var ex=eV.aabb;ec.minx=e5.minx<ex.minx?e5.minx:ex.minx;ec.miny=e5.miny<ex.miny?e5.miny:ex.miny;ec.maxx=e5.maxx>ex.maxx?e5.maxx:ex.maxx;ec.maxy=e5.maxy>ex.maxy?e5.maxy:ex.maxy;var eM=e2.aabb;var eR=ez.aabb;var ew=eY.aabb;eM.minx=eR.minx<ew.minx?eR.minx:ew.minx;eM.miny=eR.miny<ew.miny?eR.miny:ew.miny;eM.maxx=eR.maxx>ew.maxx?eR.maxx:ew.maxx;eM.maxy=eR.maxy>ew.maxy?eR.maxy:ew.maxy;var eF=e4.height;var eD=eV.height;ez.height=1+(eF>eD?eF:eD);var en=ez.height;var e8=eY.height;e2.height=1+(en>e8?en:e8)}else{e2.child2=eV;ez.child2=eY;eY.parent=ez;var eK=ez.aabb;var eQ=e4.aabb;var ev=eY.aabb;eK.minx=eQ.minx<ev.minx?eQ.minx:ev.minx;eK.miny=eQ.miny<ev.miny?eQ.miny:ev.miny;eK.maxx=eQ.maxx>ev.maxx?eQ.maxx:ev.maxx;eK.maxy=eQ.maxy>ev.maxy?eQ.maxy:ev.maxy;var eI=e2.aabb;var eP=ez.aabb;var eu=eV.aabb;eI.minx=eP.minx<eu.minx?eP.minx:eu.minx;eI.miny=eP.miny<eu.miny?eP.miny:eu.miny;eI.maxx=eP.maxx>eu.maxx?eP.maxx:eu.maxx;eI.maxy=eP.maxy>eu.maxy?eP.maxy:eu.maxy;var em=e4.height;var e7=eY.height;ez.height=1+(em>e7?em:e7);var el=ez.height;var e6=eV.height;e2.height=1+(el>e6?el:e6)}ez=e2}else{if(es<-1){var ed=e4.child1;var eU=e4.child2;e4.child1=ez;e4.parent=ez.parent;ez.parent=e4;if(e4.parent!=null){if(e4.parent.child1==ez){e4.parent.child1=e4}else{e4.parent.child2=e4}}else{this.root=e4}if(ed.height>eU.height){e4.child2=ed;ez.child1=eU;eU.parent=ez;var eG=ez.aabb;var eO=e2.aabb;var et=eU.aabb;eG.minx=eO.minx<et.minx?eO.minx:et.minx;eG.miny=eO.miny<et.miny?eO.miny:et.miny;eG.maxx=eO.maxx>et.maxx?eO.maxx:et.maxx;eG.maxy=eO.maxy>et.maxy?eO.maxy:et.maxy;var eE=e4.aabb;var eN=ez.aabb;var er=ed.aabb;eE.minx=eN.minx<er.minx?eN.minx:er.minx;eE.miny=eN.miny<er.miny?eN.miny:er.miny;eE.maxx=eN.maxx>er.maxx?eN.maxx:er.maxx;eE.maxy=eN.maxy>er.maxy?eN.maxy:er.maxy;var ek=e2.height;var e3=eU.height;ez.height=1+(ek>e3?ek:e3);var ej=ez.height;var e1=ed.height;e4.height=1+(ej>e1?ej:e1)}else{e4.child2=eU;ez.child1=ed;ed.parent=ez;var eC=ez.aabb;var eL=e2.aabb;var eq=ed.aabb;eC.minx=eL.minx<eq.minx?eL.minx:eq.minx;eC.miny=eL.miny<eq.miny?eL.miny:eq.miny;eC.maxx=eL.maxx>eq.maxx?eL.maxx:eq.maxx;eC.maxy=eL.maxy>eq.maxy?eL.maxy:eq.maxy;var eB=e4.aabb;var eJ=ez.aabb;var ep=eU.aabb;eB.minx=eJ.minx<ep.minx?eJ.minx:ep.minx;eB.miny=eJ.miny<ep.miny?eJ.miny:ep.miny;eB.maxx=eJ.maxx>ep.maxx?eJ.maxx:ep.maxx;eB.maxy=eJ.maxy>ep.maxy?eJ.maxy:ep.maxy;var ei=e2.height;var e0=ed.height;ez.height=1+(ei>e0?ei:e0);var eh=ez.height;var eZ=eU.height;e4.height=1+(eh>eZ?eh:eZ)}ez=e4}else{ez=ez}}}var eb=ez.child1;var ea=ez.child2;var eA=ez.aabb;var eH=eb.aabb;var eo=ea.aabb;eA.minx=eH.minx<eo.minx?eH.minx:eo.minx;eA.miny=eH.miny<eo.miny?eH.miny:eo.miny;eA.maxx=eH.maxx>eo.maxx?eH.maxx:eo.maxx;eA.maxy=eH.maxy>eo.maxy?eH.maxy:eo.maxy;var ef=eb.height;var eX=ea.height;ez.height=1+(ef>eX?ef:eX);ez=ez.parent}}else{this.root=eT;eT.parent=null;ee.height=-1;var eg=ee.aabb;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg.wrap_min=eg.wrap_max=null;eg._invalidate=null;eg._validate=null;eg.next=bT.zpp_pool;bT.zpp_pool=eg;ee.child1=ee.child2=ee.parent=null;ee.next=null;ee.snext=null;ee.mnext=null;ee.next=dz.zpp_pool;dz.zpp_pool=ee}}};d.prototype.inlined_removeLeaf=function(eW){if(eW==this.root){this.root=null;return}else{var ee=eW.parent;var ey=ee.parent;var eT=ee.child1==eW?ee.child2:ee.child1;if(ey!=null){if(ey.child1==ee){ey.child1=eT}else{ey.child2=eT}eT.parent=ey;ee.height=-1;var eS=ee.aabb;if(eS.outer!=null){eS.outer.zpp_inner=null;eS.outer=null}eS.wrap_min=eS.wrap_max=null;eS._invalidate=null;eS._validate=null;eS.next=bT.zpp_pool;bT.zpp_pool=eS;ee.child1=ee.child2=ee.parent=null;ee.next=null;ee.snext=null;ee.mnext=null;ee.next=dz.zpp_pool;dz.zpp_pool=ee;var ez=ey;while(ez!=null){if(ez.child1==null||ez.height<2){ez=ez}else{var e4=ez.child1;var e2=ez.child2;var es=e2.height-e4.height;if(es>1){var eY=e2.child1;var eV=e2.child2;e2.child1=ez;e2.parent=ez.parent;ez.parent=e2;if(e2.parent!=null){if(e2.parent.child1==ez){e2.parent.child1=e2}else{e2.parent.child2=e2}}else{this.root=e2}if(eY.height>eV.height){e2.child2=eY;ez.child2=eV;eV.parent=ez;var ec=ez.aabb;var e5=e4.aabb;var ex=eV.aabb;ec.minx=e5.minx<ex.minx?e5.minx:ex.minx;ec.miny=e5.miny<ex.miny?e5.miny:ex.miny;ec.maxx=e5.maxx>ex.maxx?e5.maxx:ex.maxx;ec.maxy=e5.maxy>ex.maxy?e5.maxy:ex.maxy;var eM=e2.aabb;var eR=ez.aabb;var ew=eY.aabb;eM.minx=eR.minx<ew.minx?eR.minx:ew.minx;eM.miny=eR.miny<ew.miny?eR.miny:ew.miny;eM.maxx=eR.maxx>ew.maxx?eR.maxx:ew.maxx;eM.maxy=eR.maxy>ew.maxy?eR.maxy:ew.maxy;var eF=e4.height;var eD=eV.height;ez.height=1+(eF>eD?eF:eD);var en=ez.height;var e8=eY.height;e2.height=1+(en>e8?en:e8)}else{e2.child2=eV;ez.child2=eY;eY.parent=ez;var eK=ez.aabb;var eQ=e4.aabb;var ev=eY.aabb;eK.minx=eQ.minx<ev.minx?eQ.minx:ev.minx;eK.miny=eQ.miny<ev.miny?eQ.miny:ev.miny;eK.maxx=eQ.maxx>ev.maxx?eQ.maxx:ev.maxx;eK.maxy=eQ.maxy>ev.maxy?eQ.maxy:ev.maxy;var eI=e2.aabb;var eP=ez.aabb;var eu=eV.aabb;eI.minx=eP.minx<eu.minx?eP.minx:eu.minx;eI.miny=eP.miny<eu.miny?eP.miny:eu.miny;eI.maxx=eP.maxx>eu.maxx?eP.maxx:eu.maxx;eI.maxy=eP.maxy>eu.maxy?eP.maxy:eu.maxy;var em=e4.height;var e7=eY.height;ez.height=1+(em>e7?em:e7);var el=ez.height;var e6=eV.height;e2.height=1+(el>e6?el:e6)}ez=e2}else{if(es<-1){var ed=e4.child1;var eU=e4.child2;e4.child1=ez;e4.parent=ez.parent;ez.parent=e4;if(e4.parent!=null){if(e4.parent.child1==ez){e4.parent.child1=e4}else{e4.parent.child2=e4}}else{this.root=e4}if(ed.height>eU.height){e4.child2=ed;ez.child1=eU;eU.parent=ez;var eG=ez.aabb;var eO=e2.aabb;var et=eU.aabb;eG.minx=eO.minx<et.minx?eO.minx:et.minx;eG.miny=eO.miny<et.miny?eO.miny:et.miny;eG.maxx=eO.maxx>et.maxx?eO.maxx:et.maxx;eG.maxy=eO.maxy>et.maxy?eO.maxy:et.maxy;var eE=e4.aabb;var eN=ez.aabb;var er=ed.aabb;eE.minx=eN.minx<er.minx?eN.minx:er.minx;eE.miny=eN.miny<er.miny?eN.miny:er.miny;eE.maxx=eN.maxx>er.maxx?eN.maxx:er.maxx;eE.maxy=eN.maxy>er.maxy?eN.maxy:er.maxy;var ek=e2.height;var e3=eU.height;ez.height=1+(ek>e3?ek:e3);var ej=ez.height;var e1=ed.height;e4.height=1+(ej>e1?ej:e1)}else{e4.child2=eU;ez.child1=ed;ed.parent=ez;var eC=ez.aabb;var eL=e2.aabb;var eq=ed.aabb;eC.minx=eL.minx<eq.minx?eL.minx:eq.minx;eC.miny=eL.miny<eq.miny?eL.miny:eq.miny;eC.maxx=eL.maxx>eq.maxx?eL.maxx:eq.maxx;eC.maxy=eL.maxy>eq.maxy?eL.maxy:eq.maxy;var eB=e4.aabb;var eJ=ez.aabb;var ep=eU.aabb;eB.minx=eJ.minx<ep.minx?eJ.minx:ep.minx;eB.miny=eJ.miny<ep.miny?eJ.miny:ep.miny;eB.maxx=eJ.maxx>ep.maxx?eJ.maxx:ep.maxx;eB.maxy=eJ.maxy>ep.maxy?eJ.maxy:ep.maxy;var ei=e2.height;var e0=ed.height;ez.height=1+(ei>e0?ei:e0);var eh=ez.height;var eZ=eU.height;e4.height=1+(eh>eZ?eh:eZ)}ez=e4}else{ez=ez}}}var eb=ez.child1;var ea=ez.child2;var eA=ez.aabb;var eH=eb.aabb;var eo=ea.aabb;eA.minx=eH.minx<eo.minx?eH.minx:eo.minx;eA.miny=eH.miny<eo.miny?eH.miny:eo.miny;eA.maxx=eH.maxx>eo.maxx?eH.maxx:eo.maxx;eA.maxy=eH.maxy>eo.maxy?eH.maxy:eo.maxy;var ef=eb.height;var eX=ea.height;ez.height=1+(ef>eX?ef:eX);ez=ez.parent}}else{this.root=eT;eT.parent=null;ee.height=-1;var eg=ee.aabb;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg.wrap_min=eg.wrap_max=null;eg._invalidate=null;eg._validate=null;eg.next=bT.zpp_pool;bT.zpp_pool=eg;ee.child1=ee.child2=ee.parent=null;ee.next=null;ee.snext=null;ee.mnext=null;ee.next=dz.zpp_pool;dz.zpp_pool=ee}}};d.prototype.balance=function(eS){if(eS.child1==null||eS.height<2){return eS}else{var eR=eS.child1;var eP=eS.child2;var em=eP.height-eR.height;if(em>1){var eL=eP.child1;var eK=eP.child2;eP.child1=eS;eP.parent=eS.parent;eS.parent=eP;if(eP.parent!=null){if(eP.parent.child1==eS){eP.parent.child1=eP}else{eP.parent.child2=eP}}else{this.root=eP}if(eL.height>eK.height){eP.child2=eL;eS.child2=eK;eK.parent=eS;var ea=eS.aabb;var eI=eR.aabb;var er=eK.aabb;ea.minx=eI.minx<er.minx?eI.minx:er.minx;ea.miny=eI.miny<er.miny?eI.miny:er.miny;ea.maxx=eI.maxx>er.maxx?eI.maxx:er.maxx;ea.maxy=eI.maxy>er.maxy?eI.maxy:er.maxy;var eD=eP.aabb;var eH=eS.aabb;var eq=eL.aabb;eD.minx=eH.minx<eq.minx?eH.minx:eq.minx;eD.miny=eH.miny<eq.miny?eH.miny:eq.miny;eD.maxx=eH.maxx>eq.maxx?eH.maxx:eq.maxx;eD.maxy=eH.maxy>eq.maxy?eH.maxy:eq.maxy;var ew=eR.height;var eu=eK.height;eS.height=1+(ew>eu?ew:eu);var ei=eS.height;var eV=eL.height;eP.height=1+(ei>eV?ei:eV)}else{eP.child2=eK;eS.child2=eL;eL.parent=eS;var eB=eS.aabb;var eG=eR.aabb;var ep=eL.aabb;eB.minx=eG.minx<ep.minx?eG.minx:ep.minx;eB.miny=eG.miny<ep.miny?eG.miny:ep.miny;eB.maxx=eG.maxx>ep.maxx?eG.maxx:ep.maxx;eB.maxy=eG.maxy>ep.maxy?eG.maxy:ep.maxy;var ez=eP.aabb;var eF=eS.aabb;var eo=eK.aabb;ez.minx=eF.minx<eo.minx?eF.minx:eo.minx;ez.miny=eF.miny<eo.miny?eF.miny:eo.miny;ez.maxx=eF.maxx>eo.maxx?eF.maxx:eo.maxx;ez.maxy=eF.maxy>eo.maxy?eF.maxy:eo.maxy;var eh=eR.height;var eU=eL.height;eS.height=1+(eh>eU?eh:eU);var eg=eS.height;var eT=eK.height;eP.height=1+(eg>eT?eg:eT)}return eP}else{if(em<-1){var eb=eR.child1;var eJ=eR.child2;eR.child1=eS;eR.parent=eS.parent;eS.parent=eR;if(eR.parent!=null){if(eR.parent.child1==eS){eR.parent.child1=eR}else{eR.parent.child2=eR}}else{this.root=eR}if(eb.height>eJ.height){eR.child2=eb;eS.child1=eJ;eJ.parent=eS;var ex=eS.aabb;var eE=eP.aabb;var en=eJ.aabb;ex.minx=eE.minx<en.minx?eE.minx:en.minx;ex.miny=eE.miny<en.miny?eE.miny:en.miny;ex.maxx=eE.maxx>en.maxx?eE.maxx:en.maxx;ex.maxy=eE.maxy>en.maxy?eE.maxy:en.maxy;var ev=eR.aabb;var eC=eS.aabb;var el=eb.aabb;ev.minx=eC.minx<el.minx?eC.minx:el.minx;ev.miny=eC.miny<el.miny?eC.miny:el.miny;ev.maxx=eC.maxx>el.maxx?eC.maxx:el.maxx;ev.maxy=eC.maxy>el.maxy?eC.maxy:el.maxy;var ef=eP.height;var eQ=eJ.height;eS.height=1+(ef>eQ?ef:eQ);var ee=eS.height;var eO=eb.height;eR.height=1+(ee>eO?ee:eO)}else{eR.child2=eJ;eS.child1=eb;eb.parent=eS;var et=eS.aabb;var eA=eP.aabb;var ek=eb.aabb;et.minx=eA.minx<ek.minx?eA.minx:ek.minx;et.miny=eA.miny<ek.miny?eA.miny:ek.miny;et.maxx=eA.maxx>ek.maxx?eA.maxx:ek.maxx;et.maxy=eA.maxy>ek.maxy?eA.maxy:ek.maxy;var es=eR.aabb;var ey=eS.aabb;var ej=eJ.aabb;es.minx=ey.minx<ej.minx?ey.minx:ej.minx;es.miny=ey.miny<ej.miny?ey.miny:ej.miny;es.maxx=ey.maxx>ej.maxx?ey.maxx:ej.maxx;es.maxy=ey.maxy>ej.maxy?ey.maxy:ej.maxy;var ed=eP.height;var eN=eb.height;eS.height=1+(ed>eN?ed:eN);var ec=eS.height;var eM=eJ.height;eR.height=1+(ec>eM?ec:eM)}return eR}else{return eS}}}};d.prototype.__class__=d;var cT=zpp_nape.space.ZPP_DynAABBPhase=function(ea){this.openlist=null;this.failed=null;this.treeStack2=null;this.treeStack=null;this.moves=null;this.syncs=null;this.pairs=null;this.dtree=null;this.stree=null;dB.call(this);this.space=ea;this.is_sweep=false;this.dynab=this;this.stree=new d();this.dtree=new d()};cT.__name__=["zpp_nape","space","ZPP_DynAABBPhase"];cT.__super__=dB;cT.prototype=Object.create(dB.prototype);cT.prototype.stree=null;cT.prototype.dtree=null;cT.prototype.pairs=null;cT.prototype.syncs=null;cT.prototype.moves=null;cT.prototype.dyn=function(ea){if(ea.body.type==1){return false}else{return !ea.body.component.sleeping}};cT.prototype.__insert=function(ea){var eb;if(dz.zpp_pool==null){eb=new dz()}else{eb=dz.zpp_pool;dz.zpp_pool=eb.next;eb.next=null}if(bT.zpp_pool==null){eb.aabb=new bT()}else{eb.aabb=bT.zpp_pool;bT.zpp_pool=eb.aabb.next;eb.aabb.next=null}eb.moved=false;eb.synced=false;eb.first_sync=false;eb.shape=ea;ea.node=eb;eb.synced=true;eb.first_sync=true;eb.snext=this.syncs;this.syncs=eb};cT.prototype.__remove=function(eh){var ee=eh.node;if(!ee.first_sync){if(ee.dyn){this.dtree.removeLeaf(ee)}else{this.stree.removeLeaf(ee)}}eh.node=null;if(ee.synced){var eg=null;var el=this.syncs;while(el!=null){if(el==ee){break}eg=el;el=el.snext}if(eg==null){this.syncs=el.snext}else{eg.snext=el.snext}el.snext=null;ee.synced=false}if(ee.moved){var ef=null;var ek=this.moves;while(ek!=null){if(ek==ee){break}ef=ek;ek=ek.mnext}if(ef==null){this.moves=ek.mnext}else{ef.mnext=ek.mnext}ek.mnext=null;ee.moved=false}var ed=null;var ej=this.pairs;while(ej!=null){var ea=ej.next;if(ej.n1==ee||ej.n2==ee){if(ed==null){this.pairs=ea}else{ed.next=ea}if(ej.arb!=null){ej.arb.pair=null}ej.arb=null;ej.n1.shape.pairs.remove(ej);ej.n2.shape.pairs.remove(ej);var eb=ej;eb.n1=eb.n2=null;eb.sleeping=false;eb.next=bG.zpp_pool;bG.zpp_pool=eb;ej=ea;continue}ed=ej;ej=ea}while(eh.pairs.head!=null){var ei=eh.pairs.pop_unsafe();if(ei.n1==ee){ei.n2.shape.pairs.remove(ei)}else{ei.n1.shape.pairs.remove(ei)}if(ei.arb!=null){ei.arb.pair=null}ei.arb=null;ei.n1=ei.n2=null;ei.sleeping=false;ei.next=bG.zpp_pool;bG.zpp_pool=ei}ee.height=-1;var ec=ee.aabb;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec.wrap_min=ec.wrap_max=null;ec._invalidate=null;ec._validate=null;ec.next=bT.zpp_pool;bT.zpp_pool=ec;ee.child1=ee.child2=ee.parent=null;ee.next=null;ee.snext=null;ee.mnext=null;ee.next=dz.zpp_pool;dz.zpp_pool=ee};cT.prototype.__sync=function(ea){var et=ea.node;if(!et.synced){if(!this.space.continuous){if(ea.zip_aabb){if(ea.body!=null){ea.zip_aabb=false;if(ea.type==0){var ew=ea.circle;if(ew.zip_worldCOM){if(ew.body!=null){ew.zip_worldCOM=false;if(ew.zip_localCOM){ew.zip_localCOM=false;if(ew.type==1){var eC=ew.polygon;if(eC.lverts.next.next==null){eC.localCOMx=eC.lverts.next.x;eC.localCOMy=eC.lverts.next.y}else{if(eC.lverts.next.next.next==null){eC.localCOMx=eC.lverts.next.x;eC.localCOMy=eC.lverts.next.y;eC.localCOMx+=eC.lverts.next.next.x;eC.localCOMy+=eC.lverts.next.next.y;eC.localCOMx*=0.5;eC.localCOMy*=0.5}else{eC.localCOMx=0;eC.localCOMy=0;var eD=0;var ev=eC.lverts.next;var em=ev;ev=ev.next;var el=ev;ev=ev.next;while(ev!=null){var ej=ev;eD+=el.x*(ej.y-em.y);var ep=ej.y*el.x-ej.x*el.y;eC.localCOMx+=(el.x+ej.x)*ep;eC.localCOMy+=(el.y+ej.y)*ep;em=el;el=ej;ev=ev.next}ev=eC.lverts.next;var ek=ev;eD+=el.x*(ek.y-em.y);var eh=ek.y*el.x-ek.x*el.y;eC.localCOMx+=(el.x+ek.x)*eh;eC.localCOMy+=(el.y+ek.y)*eh;em=el;ev=ev.next;var ei=ev;eD+=ek.x*(ei.y-em.y);var ef=ei.y*ek.x-ei.x*ek.y;eC.localCOMx+=(ek.x+ei.x)*ef;eC.localCOMy+=(ek.y+ei.y)*ef;eD=1/(3*eD);var eo=eD;eC.localCOMx*=eo;eC.localCOMy*=eo}}}if(ew.wrap_localCOM!=null){ew.wrap_localCOM.zpp_inner.x=ew.localCOMx;ew.wrap_localCOM.zpp_inner.y=ew.localCOMy}}var eB=ew.body;if(eB.zip_axis){eB.zip_axis=false;eB.axisx=Math.sin(eB.rot);eB.axisy=Math.cos(eB.rot)}ew.worldCOMx=ew.body.posx+(ew.body.axisy*ew.localCOMx-ew.body.axisx*ew.localCOMy);ew.worldCOMy=ew.body.posy+(ew.localCOMx*ew.body.axisx+ew.localCOMy*ew.body.axisy)}}var ed=ew.radius;var ec=ew.radius;ew.aabb.minx=ew.worldCOMx-ed;ew.aabb.miny=ew.worldCOMy-ec;ew.aabb.maxx=ew.worldCOMx+ed;ew.aabb.maxy=ew.worldCOMy+ec}else{var ez=ea.polygon;if(ez.zip_gverts){if(ez.body!=null){ez.zip_gverts=false;ez.validate_lverts();var ey=ez.body;if(ey.zip_axis){ey.zip_axis=false;ey.axisx=Math.sin(ey.rot);ey.axisy=Math.cos(ey.rot)}var en=ez.lverts.next;var es=ez.gverts.next;while(es!=null){var eA=es;var eu=en;en=en.next;eA.x=ez.body.posx+(ez.body.axisy*eu.x-ez.body.axisx*eu.y);eA.y=ez.body.posy+(eu.x*ez.body.axisx+eu.y*ez.body.axisy);es=es.next}}}var eb=ez.gverts.next;ez.aabb.minx=eb.x;ez.aabb.miny=eb.y;ez.aabb.maxx=eb.x;ez.aabb.maxy=eb.y;var er=ez.gverts.next.next;while(er!=null){var eq=er;if(eq.x<ez.aabb.minx){ez.aabb.minx=eq.x}if(eq.x>ez.aabb.maxx){ez.aabb.maxx=eq.x}if(eq.y<ez.aabb.miny){ez.aabb.miny=eq.y}if(eq.y>ez.aabb.maxy){ez.aabb.maxy=eq.y}er=er.next}}}}}var ee;if(et.dyn==(ea.body.type==1?false:!ea.body.component.sleeping)){var ex=et.aabb;var eg=ea.aabb;ee=!(eg.minx>=ex.minx&&eg.miny>=ex.miny&&eg.maxx<=ex.maxx&&eg.maxy<=ex.maxy)}else{ee=true}if(ee){et.synced=true;et.snext=this.syncs;this.syncs=et}}};cT.prototype.sync_broadphase=function(){this.space.validation();if(this.syncs!=null){if(this.moves==null){var fF=this.syncs;while(fF!=null){var hG=fF.shape;if(!fF.first_sync){var hF=fF.dyn?this.dtree:this.stree;if(fF==hF.root){hF.root=null}else{var i5=fF.parent;var jT=i5.parent;var fC=i5.child1==fF?i5.child2:i5.child1;if(jT!=null){if(jT.child1==i5){jT.child1=fC}else{jT.child2=fC}fC.parent=jT;i5.height=-1;var jF=i5.aabb;if(jF.outer!=null){jF.outer.zpp_inner=null;jF.outer=null}jF.wrap_min=jF.wrap_max=null;jF._invalidate=null;jF._validate=null;jF.next=bT.zpp_pool;bT.zpp_pool=jF;i5.child1=i5.child2=i5.parent=null;i5.next=null;i5.snext=null;i5.mnext=null;i5.next=dz.zpp_pool;dz.zpp_pool=i5;var i1=jT;while(i1!=null){if(i1.child1==null||i1.height<2){i1=i1}else{var jL=i1.child1;var jK=i1.child2;var jO=jK.height-jL.height;if(jO>1){var jJ=jK.child1;var jH=jK.child2;jK.child1=i1;jK.parent=i1.parent;i1.parent=jK;if(jK.parent!=null){if(jK.parent.child1==i1){jK.parent.child1=jK}else{jK.parent.child2=jK}}else{hF.root=jK}if(jJ.height>jH.height){jK.child2=jJ;i1.child2=jH;jH.parent=i1;var fx=i1.aabb;var jN=jL.aabb;var j9=jH.aabb;fx.minx=jN.minx<j9.minx?jN.minx:j9.minx;fx.miny=jN.miny<j9.miny?jN.miny:j9.miny;fx.maxx=jN.maxx>j9.maxx?jN.maxx:j9.maxx;fx.maxy=jN.maxy>j9.maxy?jN.maxy:j9.maxy;var eG=jK.aabb;var ei=i1.aabb;var j7=jJ.aabb;eG.minx=ei.minx<j7.minx?ei.minx:j7.minx;eG.miny=ei.miny<j7.miny?ei.miny:j7.miny;eG.maxx=ei.maxx>j7.maxx?ei.maxx:j7.maxx;eG.maxy=ei.maxy>j7.maxy?ei.maxy:j7.maxy;var jz=jL.height;var jy=jH.height;i1.height=1+(jz>jy?jz:jy);var eX=i1.height;var ev=jJ.height;jK.height=1+(eX>ev?eX:ev)}else{jK.child2=jH;i1.child2=jJ;jJ.parent=i1;var eF=i1.aabb;var eh=jL.aabb;var j4=jJ.aabb;eF.minx=eh.minx<j4.minx?eh.minx:j4.minx;eF.miny=eh.miny<j4.miny?eh.miny:j4.miny;eF.maxx=eh.maxx>j4.maxx?eh.maxx:j4.maxx;eF.maxy=eh.maxy>j4.maxy?eh.maxy:j4.maxy;var eE=jK.aabb;var eg=i1.aabb;var j3=jH.aabb;eE.minx=eg.minx<j3.minx?eg.minx:j3.minx;eE.miny=eg.miny<j3.miny?eg.miny:j3.miny;eE.maxx=eg.maxx>j3.maxx?eg.maxx:j3.maxx;eE.maxy=eg.maxy>j3.maxy?eg.maxy:j3.maxy;var eV=jL.height;var et=jJ.height;i1.height=1+(eV>et?eV:et);var eT=i1.height;var er=jH.height;jK.height=1+(eT>er?eT:er)}i1=jK}else{if(jO<-1){var jw=jL.child1;var jm=jL.child2;jL.child1=i1;jL.parent=i1.parent;i1.parent=jL;if(jL.parent!=null){if(jL.parent.child1==i1){jL.parent.child1=jL}else{jL.parent.child2=jL}}else{hF.root=jL}if(jw.height>jm.height){jL.child2=jw;i1.child1=jm;jm.parent=i1;var eD=i1.aabb;var ef=jK.aabb;var j2=jm.aabb;eD.minx=ef.minx<j2.minx?ef.minx:j2.minx;eD.miny=ef.miny<j2.miny?ef.miny:j2.miny;eD.maxx=ef.maxx>j2.maxx?ef.maxx:j2.maxx;eD.maxy=ef.maxy>j2.maxy?ef.maxy:j2.maxy;var eC=jL.aabb;var ee=i1.aabb;var j1=jw.aabb;eC.minx=ee.minx<j1.minx?ee.minx:j1.minx;eC.miny=ee.miny<j1.miny?ee.miny:j1.miny;eC.maxx=ee.maxx>j1.maxx?ee.maxx:j1.maxx;eC.maxy=ee.maxy>j1.maxy?ee.maxy:j1.maxy;var eR=jK.height;var ep=jm.height;i1.height=1+(eR>ep?eR:ep);var eP=i1.height;var en=jw.height;jL.height=1+(eP>en?eP:en)}else{jL.child2=jm;i1.child1=jw;jw.parent=i1;var eB=i1.aabb;var ed=jK.aabb;var j0=jw.aabb;eB.minx=ed.minx<j0.minx?ed.minx:j0.minx;eB.miny=ed.miny<j0.miny?ed.miny:j0.miny;eB.maxx=ed.maxx>j0.maxx?ed.maxx:j0.maxx;eB.maxy=ed.maxy>j0.maxy?ed.maxy:j0.maxy;var eA=jL.aabb;var ec=i1.aabb;var jZ=jm.aabb;eA.minx=ec.minx<jZ.minx?ec.minx:jZ.minx;eA.miny=ec.miny<jZ.miny?ec.miny:jZ.miny;eA.maxx=ec.maxx>jZ.maxx?ec.maxx:jZ.maxx;eA.maxy=ec.maxy>jZ.maxy?ec.maxy:jZ.maxy;var eN=jK.height;var em=jw.height;i1.height=1+(eN>em?eN:em);var eL=i1.height;var el=jm.height;jL.height=1+(eL>el?eL:el)}i1=jL}else{i1=i1}}}var gv=i1.child1;var gs=i1.child2;var ez=i1.aabb;var eb=gv.aabb;var jY=gs.aabb;ez.minx=eb.minx<jY.minx?eb.minx:jY.minx;ez.miny=eb.miny<jY.miny?eb.miny:jY.miny;ez.maxx=eb.maxx>jY.maxx?eb.maxx:jY.maxx;ez.maxy=eb.maxy>jY.maxy?eb.maxy:jY.maxy;var eJ=gv.height;var ek=gs.height;i1.height=1+(eJ>ek?eJ:ek);i1=i1.parent}}else{hF.root=fC;fC.parent=null;i5.height=-1;var ie=i5.aabb;if(ie.outer!=null){ie.outer.zpp_inner=null;ie.outer=null}ie.wrap_min=ie.wrap_max=null;ie._invalidate=null;ie._validate=null;ie.next=bT.zpp_pool;bT.zpp_pool=ie;i5.child1=i5.child2=i5.parent=null;i5.next=null;i5.snext=null;i5.mnext=null;i5.next=dz.zpp_pool;dz.zpp_pool=i5}}}else{fF.first_sync=false}var jp=fF.aabb;if(!this.space.continuous){if(hG.zip_aabb){if(hG.body!=null){hG.zip_aabb=false;if(hG.type==0){var ey=hG.circle;if(ey.zip_worldCOM){if(ey.body!=null){ey.zip_worldCOM=false;if(ey.zip_localCOM){ey.zip_localCOM=false;if(ey.type==1){var ir=ey.polygon;if(ir.lverts.next.next==null){ir.localCOMx=ir.lverts.next.x;ir.localCOMy=ir.lverts.next.y}else{if(ir.lverts.next.next.next==null){ir.localCOMx=ir.lverts.next.x;ir.localCOMy=ir.lverts.next.y;ir.localCOMx+=ir.lverts.next.next.x;ir.localCOMy+=ir.lverts.next.next.y;ir.localCOMx*=0.5;ir.localCOMy*=0.5}else{ir.localCOMx=0;ir.localCOMy=0;var ht=0;var i6=ir.lverts.next;var jC=i6;i6=i6.next;var jB=i6;i6=i6.next;while(i6!=null){var jA=i6;ht+=jB.x*(jA.y-jC.y);var jI=jA.y*jB.x-jA.x*jB.y;ir.localCOMx+=(jB.x+jA.x)*jI;ir.localCOMy+=(jB.y+jA.y)*jI;jC=jB;jB=jA;i6=i6.next}i6=ir.lverts.next;var fc=i6;ht+=jB.x*(fc.y-jC.y);var jn=fc.y*jB.x-fc.x*jB.y;ir.localCOMx+=(jB.x+fc.x)*jn;ir.localCOMy+=(jB.y+fc.y)*jn;jC=jB;i6=i6.next;var fa=i6;ht+=fc.x*(fa.y-jC.y);var jl=fa.y*fc.x-fa.x*fc.y;ir.localCOMx+=(fc.x+fa.x)*jl;ir.localCOMy+=(fc.y+fa.y)*jl;ht=1/(3*ht);var jD=ht;ir.localCOMx*=jD;ir.localCOMy*=jD}}}if(ey.wrap_localCOM!=null){ey.wrap_localCOM.zpp_inner.x=ey.localCOMx;ey.wrap_localCOM.zpp_inner.y=ey.localCOMy}}var iq=ey.body;if(iq.zip_axis){iq.zip_axis=false;iq.axisx=Math.sin(iq.rot);iq.axisy=Math.cos(iq.rot)}ey.worldCOMx=ey.body.posx+(ey.body.axisy*ey.localCOMx-ey.body.axisx*ey.localCOMy);ey.worldCOMy=ey.body.posy+(ey.localCOMx*ey.body.axisx+ey.localCOMy*ey.body.axisy)}}var fD=ey.radius;var fB=ey.radius;ey.aabb.minx=ey.worldCOMx-fD;ey.aabb.miny=ey.worldCOMy-fB;ey.aabb.maxx=ey.worldCOMx+fD;ey.aabb.maxy=ey.worldCOMy+fB}else{var ip=hG.polygon;if(ip.zip_gverts){if(ip.body!=null){ip.zip_gverts=false;ip.validate_lverts();var io=ip.body;if(io.zip_axis){io.zip_axis=false;io.axisx=Math.sin(io.rot);io.axisy=Math.cos(io.rot)}var it=ip.lverts.next;var fn=ip.gverts.next;while(fn!=null){var jk=fn;var jG=it;it=it.next;jk.x=ip.body.posx+(ip.body.axisy*jG.x-ip.body.axisx*jG.y);jk.y=ip.body.posy+(jG.x*ip.body.axisx+jG.y*ip.body.axisy);fn=fn.next}}}var hK=ip.gverts.next;ip.aabb.minx=hK.x;ip.aabb.miny=hK.y;ip.aabb.maxx=hK.x;ip.aabb.maxy=hK.y;var fl=ip.gverts.next.next;while(fl!=null){var jE=fl;if(jE.x<ip.aabb.minx){ip.aabb.minx=jE.x}if(jE.x>ip.aabb.maxx){ip.aabb.maxx=jE.x}if(jE.y<ip.aabb.miny){ip.aabb.miny=jE.y}if(jE.y>ip.aabb.maxy){ip.aabb.maxy=jE.y}fl=fl.next}}}}}var ea=hG.aabb;jp.minx=ea.minx-3;jp.miny=ea.miny-3;jp.maxx=ea.maxx+3;jp.maxy=ea.maxy+3;var hY=(fF.dyn=hG.body.type==1?false:!hG.body.component.sleeping)?this.dtree:this.stree;if(hY.root==null){hY.root=fF;hY.root.parent=null}else{var jx=fF.aabb;var i0=hY.root;while(i0.child1!=null){var hh=i0.child1;var gy=i0.child2;var im=i0.aabb;var jR=(im.maxx-im.minx+(im.maxy-im.miny))*2;var il=d.tmpaabb;var hU=i0.aabb;il.minx=hU.minx<jx.minx?hU.minx:jx.minx;il.miny=hU.miny<jx.miny?hU.miny:jx.miny;il.maxx=hU.maxx>jx.maxx?hU.maxx:jx.maxx;il.maxy=hU.maxy>jx.maxy?hU.maxy:jx.maxy;var ik=d.tmpaabb;var iB=(ik.maxx-ik.minx+(ik.maxy-ik.miny))*2;var jM=2*iB;var i2=2*(iB-jR);var ii=d.tmpaabb;var fw=hh.aabb;ii.minx=jx.minx<fw.minx?jx.minx:fw.minx;ii.miny=jx.miny<fw.miny?jx.miny:fw.miny;ii.maxx=jx.maxx>fw.maxx?jx.maxx:fw.maxx;ii.maxy=jx.maxy>fw.maxy?jx.maxy:fw.maxy;var ka;if(hh.child1==null){var ih=d.tmpaabb;ka=(ih.maxx-ih.minx+(ih.maxy-ih.miny))*2+i2}else{var ig=hh.aabb;var i8=(ig.maxx-ig.minx+(ig.maxy-ig.miny))*2;var ib=d.tmpaabb;ka=(ib.maxx-ib.minx+(ib.maxy-ib.miny))*2-i8+i2}var ia=d.tmpaabb;var fv=gy.aabb;ia.minx=jx.minx<fv.minx?jx.minx:fv.minx;ia.miny=jx.miny<fv.miny?jx.miny:fv.miny;ia.maxx=jx.maxx>fv.maxx?jx.maxx:fv.maxx;ia.maxy=jx.maxy>fv.maxy?jx.maxy:fv.maxy;var j8;if(gy.child1==null){var h9=d.tmpaabb;j8=(h9.maxx-h9.minx+(h9.maxy-h9.miny))*2+i2}else{var h8=gy.aabb;var h1=(h8.maxx-h8.minx+(h8.maxy-h8.miny))*2;var h7=d.tmpaabb;j8=(h7.maxx-h7.minx+(h7.maxy-h7.miny))*2-h1+i2}if(jM<ka&&jM<j8){break}else{if(ka<j8){i0=hh}else{i0=gy}}}var gw=i0;var iN=gw.parent;var i7;if(dz.zpp_pool==null){i7=new dz()}else{i7=dz.zpp_pool;dz.zpp_pool=i7.next;i7.next=null}if(bT.zpp_pool==null){i7.aabb=new bT()}else{i7.aabb=bT.zpp_pool;bT.zpp_pool=i7.aabb.next;i7.aabb.next=null}i7.moved=false;i7.synced=false;i7.first_sync=false;i7.parent=iN;var h6=i7.aabb;var fu=gw.aabb;h6.minx=jx.minx<fu.minx?jx.minx:fu.minx;h6.miny=jx.miny<fu.miny?jx.miny:fu.miny;h6.maxx=jx.maxx>fu.maxx?jx.maxx:fu.maxx;h6.maxy=jx.maxy>fu.maxy?jx.maxy:fu.maxy;i7.height=gw.height+1;if(iN!=null){if(iN.child1==gw){iN.child1=i7}else{iN.child2=i7}i7.child1=gw;i7.child2=fF;gw.parent=i7;fF.parent=i7}else{i7.child1=gw;i7.child2=fF;gw.parent=i7;fF.parent=i7;hY.root=i7}i0=fF.parent;while(i0!=null){if(i0.child1==null||i0.height<2){i0=i0}else{var fs=i0.child1;var jX=i0.child2;var hI=jX.height-fs.height;if(hI>1){var jv=jX.child1;var ji=jX.child2;jX.child1=i0;jX.parent=i0.parent;i0.parent=jX;if(jX.parent!=null){if(jX.parent.child1==i0){jX.parent.child1=jX}else{jX.parent.child2=jX}}else{hY.root=jX}if(jv.height>ji.height){jX.child2=jv;i0.child2=ji;ji.parent=i0;var h5=i0.aabb;var hT=fs.aabb;var fr=ji.aabb;h5.minx=hT.minx<fr.minx?hT.minx:fr.minx;h5.miny=hT.miny<fr.miny?hT.miny:fr.miny;h5.maxx=hT.maxx>fr.maxx?hT.maxx:fr.maxx;h5.maxy=hT.maxy>fr.maxy?hT.maxy:fr.maxy;var h3=jX.aabb;var hS=i0.aabb;var fq=jv.aabb;h3.minx=hS.minx<fq.minx?hS.minx:fq.minx;h3.miny=hS.miny<fq.miny?hS.miny:fq.miny;h3.maxx=hS.maxx>fq.maxx?hS.maxx:fq.maxx;h3.maxy=hS.maxy>fq.maxy?hS.maxy:fq.maxy;var eH=fs.height;var ej=ji.height;i0.height=1+(eH>ej?eH:ej);var iX=i0.height;var gY=jv.height;jX.height=1+(iX>gY?iX:gY)}else{jX.child2=ji;i0.child2=jv;jv.parent=i0;var h2=i0.aabb;var hR=fs.aabb;var fp=jv.aabb;h2.minx=hR.minx<fp.minx?hR.minx:fp.minx;h2.miny=hR.miny<fp.miny?hR.miny:fp.miny;h2.maxx=hR.maxx>fp.maxx?hR.maxx:fp.maxx;h2.maxy=hR.maxy>fp.maxy?hR.maxy:fp.maxy;var h0=jX.aabb;var hQ=i0.aabb;var fo=ji.aabb;h0.minx=hQ.minx<fo.minx?hQ.minx:fo.minx;h0.miny=hQ.miny<fo.miny?hQ.miny:fo.miny;h0.maxx=hQ.maxx>fo.maxx?hQ.maxx:fo.maxx;h0.maxy=hQ.maxy>fo.maxy?hQ.maxy:fo.maxy;var iW=fs.height;var gW=jv.height;i0.height=1+(iW>gW?iW:gW);var iV=i0.height;var gU=ji.height;jX.height=1+(iV>gU?iV:gU)}i0=jX}else{if(hI<-1){var ju=fs.child1;var jg=fs.child2;fs.child1=i0;fs.parent=i0.parent;i0.parent=fs;if(fs.parent!=null){if(fs.parent.child1==i0){fs.parent.child1=fs}else{fs.parent.child2=fs}}else{hY.root=fs}if(ju.height>jg.height){fs.child2=ju;i0.child1=jg;jg.parent=i0;var hD=i0.aabb;var hP=jX.aabb;var fm=jg.aabb;hD.minx=hP.minx<fm.minx?hP.minx:fm.minx;hD.miny=hP.miny<fm.miny?hP.miny:fm.miny;hD.maxx=hP.maxx>fm.maxx?hP.maxx:fm.maxx;hD.maxy=hP.maxy>fm.maxy?hP.maxy:fm.maxy;var hC=fs.aabb;var hO=i0.aabb;var fk=ju.aabb;hC.minx=hO.minx<fk.minx?hO.minx:fk.minx;hC.miny=hO.miny<fk.miny?hO.miny:fk.miny;hC.maxx=hO.maxx>fk.maxx?hO.maxx:fk.maxx;hC.maxy=hO.maxy>fk.maxy?hO.maxy:fk.maxy;var iU=jX.height;var gS=jg.height;i0.height=1+(iU>gS?iU:gS);var iT=i0.height;var gQ=ju.height;fs.height=1+(iT>gQ?iT:gQ)}else{fs.child2=jg;i0.child1=ju;ju.parent=i0;var hB=i0.aabb;var hN=jX.aabb;var fe=ju.aabb;hB.minx=hN.minx<fe.minx?hN.minx:fe.minx;hB.miny=hN.miny<fe.miny?hN.miny:fe.miny;hB.maxx=hN.maxx>fe.maxx?hN.maxx:fe.maxx;hB.maxy=hN.maxy>fe.maxy?hN.maxy:fe.maxy;var hA=fs.aabb;var hM=i0.aabb;var fd=jg.aabb;hA.minx=hM.minx<fd.minx?hM.minx:fd.minx;hA.miny=hM.miny<fd.miny?hM.miny:fd.miny;hA.maxx=hM.maxx>fd.maxx?hM.maxx:fd.maxx;hA.maxy=hM.maxy>fd.maxy?hM.maxy:fd.maxy;var iS=jX.height;var gO=ju.height;i0.height=1+(iS>gO?iS:gO);var iR=i0.height;var gM=jg.height;fs.height=1+(iR>gM?iR:gM)}i0=fs}else{i0=i0}}}var hg=i0.child1;var gx=i0.child2;var iQ=hg.height;var gL=gx.height;i0.height=1+(iQ>gL?iQ:gL);var hz=i0.aabb;var hL=hg.aabb;var fb=gx.aabb;hz.minx=hL.minx<fb.minx?hL.minx:fb.minx;hz.miny=hL.miny<fb.miny?hL.miny:fb.miny;hz.maxx=hL.maxx>fb.maxx?hL.maxx:fb.maxx;hz.maxy=hL.maxy>fb.maxy?hL.maxy:fb.maxy;i0=i0.parent}}fF.synced=false;fF.moved=true;fF.mnext=fF.snext;fF.snext=null;fF=fF.mnext}var fG=this.syncs;this.syncs=this.moves;this.moves=fG}else{while(this.syncs!=null){var jV=this.syncs;this.syncs=jV.snext;jV.snext=null;var i9=jV.shape;if(!jV.first_sync){var hW=jV.dyn?this.dtree:this.stree;if(jV==hW.root){hW.root=null}else{var i3=jV.parent;var fA=i3.parent;var gt=i3.child1==jV?i3.child2:i3.child1;if(fA!=null){if(fA.child1==i3){fA.child1=gt}else{fA.child2=gt}gt.parent=fA;i3.height=-1;var id=i3.aabb;if(id.outer!=null){id.outer.zpp_inner=null;id.outer=null}id.wrap_min=id.wrap_max=null;id._invalidate=null;id._validate=null;id.next=bT.zpp_pool;bT.zpp_pool=id;i3.child1=i3.child2=i3.parent=null;i3.next=null;i3.snext=null;i3.mnext=null;i3.next=dz.zpp_pool;dz.zpp_pool=i3;var iZ=fA;while(iZ!=null){if(iZ.child1==null||iZ.height<2){iZ=iZ}else{var e9=iZ.child1;var jW=iZ.child2;var hH=jW.height-e9.height;if(hH>1){var jt=jW.child1;var je=jW.child2;jW.child1=iZ;jW.parent=iZ.parent;iZ.parent=jW;if(jW.parent!=null){if(jW.parent.child1==iZ){jW.parent.child1=jW}else{jW.parent.child2=jW}}else{hW.root=jW}if(jt.height>je.height){jW.child2=jt;iZ.child2=je;je.parent=iZ;var hy=iZ.aabb;var hs=e9.aabb;var e7=je.aabb;hy.minx=hs.minx<e7.minx?hs.minx:e7.minx;hy.miny=hs.miny<e7.miny?hs.miny:e7.miny;hy.maxx=hs.maxx>e7.maxx?hs.maxx:e7.maxx;hy.maxy=hs.maxy>e7.maxy?hs.maxy:e7.maxy;var hx=jW.aabb;var hr=iZ.aabb;var e5=jt.aabb;hx.minx=hr.minx<e5.minx?hr.minx:e5.minx;hx.miny=hr.miny<e5.miny?hr.miny:e5.miny;hx.maxx=hr.maxx>e5.maxx?hr.maxx:e5.maxx;hx.maxy=hr.maxy>e5.maxy?hr.maxy:e5.maxy;var iP=e9.height;var gK=je.height;iZ.height=1+(iP>gK?iP:gK);var iO=iZ.height;var gI=jt.height;jW.height=1+(iO>gI?iO:gI)}else{jW.child2=je;iZ.child2=jt;jt.parent=iZ;var hw=iZ.aabb;var hq=e9.aabb;var e3=jt.aabb;hw.minx=hq.minx<e3.minx?hq.minx:e3.minx;hw.miny=hq.miny<e3.miny?hq.miny:e3.miny;hw.maxx=hq.maxx>e3.maxx?hq.maxx:e3.maxx;hw.maxy=hq.maxy>e3.maxy?hq.maxy:e3.maxy;var hv=jW.aabb;var hp=iZ.aabb;var e2=je.aabb;hv.minx=hp.minx<e2.minx?hp.minx:e2.minx;hv.miny=hp.miny<e2.miny?hp.miny:e2.miny;hv.maxx=hp.maxx>e2.maxx?hp.maxx:e2.maxx;hv.maxy=hp.maxy>e2.maxy?hp.maxy:e2.maxy;var iL=e9.height;var gk=jt.height;iZ.height=1+(iL>gk?iL:gk);var iK=iZ.height;var gi=je.height;jW.height=1+(iK>gi?iK:gi)}iZ=jW}else{if(hH<-1){var jr=e9.child1;var jd=e9.child2;e9.child1=iZ;e9.parent=iZ.parent;iZ.parent=e9;if(e9.parent!=null){if(e9.parent.child1==iZ){e9.parent.child1=e9}else{e9.parent.child2=e9}}else{hW.root=e9}if(jr.height>jd.height){e9.child2=jr;iZ.child1=jd;jd.parent=iZ;var hu=iZ.aabb;var ho=jW.aabb;var e1=jd.aabb;hu.minx=ho.minx<e1.minx?ho.minx:e1.minx;hu.miny=ho.miny<e1.miny?ho.miny:e1.miny;hu.maxx=ho.maxx>e1.maxx?ho.maxx:e1.maxx;hu.maxy=ho.maxy>e1.maxy?ho.maxy:e1.maxy;var hc=e9.aabb;var hm=iZ.aabb;var e0=jr.aabb;hc.minx=hm.minx<e0.minx?hm.minx:e0.minx;hc.miny=hm.miny<e0.miny?hm.miny:e0.miny;hc.maxx=hm.maxx>e0.maxx?hm.maxx:e0.maxx;hc.maxy=hm.maxy>e0.maxy?hm.maxy:e0.maxy;var iJ=jW.height;var gg=jd.height;iZ.height=1+(iJ>gg?iJ:gg);var iI=iZ.height;var ge=jr.height;e9.height=1+(iI>ge?iI:ge)}else{e9.child2=jd;iZ.child1=jr;jr.parent=iZ;var ha=iZ.aabb;var hl=jW.aabb;var eZ=jr.aabb;ha.minx=hl.minx<eZ.minx?hl.minx:eZ.minx;ha.miny=hl.miny<eZ.miny?hl.miny:eZ.miny;ha.maxx=hl.maxx>eZ.maxx?hl.maxx:eZ.maxx;ha.maxy=hl.maxy>eZ.maxy?hl.maxy:eZ.maxy;var g0=e9.aabb;var hk=iZ.aabb;var eY=jd.aabb;g0.minx=hk.minx<eY.minx?hk.minx:eY.minx;g0.miny=hk.miny<eY.miny?hk.miny:eY.miny;g0.maxx=hk.maxx>eY.maxx?hk.maxx:eY.maxx;g0.maxy=hk.maxy>eY.maxy?hk.maxy:eY.maxy;var iH=jW.height;var gc=jr.height;iZ.height=1+(iH>gc?iH:gc);var iG=iZ.height;var ga=jd.height;e9.height=1+(iG>ga?iG:ga)}iZ=e9}else{iZ=iZ}}}var hf=iZ.child1;var gu=iZ.child2;var gZ=iZ.aabb;var hj=hf.aabb;var eW=gu.aabb;gZ.minx=hj.minx<eW.minx?hj.minx:eW.minx;gZ.miny=hj.miny<eW.miny?hj.miny:eW.miny;gZ.maxx=hj.maxx>eW.maxx?hj.maxx:eW.maxx;gZ.maxy=hj.maxy>eW.maxy?hj.maxy:eW.maxy;var iF=hf.height;var f8=gu.height;iZ.height=1+(iF>f8?iF:f8);iZ=iZ.parent}}else{hW.root=gt;gt.parent=null;i3.height=-1;var ic=i3.aabb;if(ic.outer!=null){ic.outer.zpp_inner=null;ic.outer=null}ic.wrap_min=ic.wrap_max=null;ic._invalidate=null;ic._validate=null;ic.next=bT.zpp_pool;bT.zpp_pool=ic;i3.child1=i3.child2=i3.parent=null;i3.next=null;i3.snext=null;i3.mnext=null;i3.next=dz.zpp_pool;dz.zpp_pool=i3}}}else{jV.first_sync=false}var jS=jV.aabb;if(!this.space.continuous){if(i9.zip_aabb){if(i9.body!=null){i9.zip_aabb=false;if(i9.type==0){var gX=i9.circle;if(gX.zip_worldCOM){if(gX.body!=null){gX.zip_worldCOM=false;if(gX.zip_localCOM){gX.zip_localCOM=false;if(gX.type==1){var gV=gX.polygon;if(gV.lverts.next.next==null){gV.localCOMx=gV.lverts.next.x;gV.localCOMy=gV.lverts.next.y}else{if(gV.lverts.next.next.next==null){gV.localCOMx=gV.lverts.next.x;gV.localCOMy=gV.lverts.next.y;gV.localCOMx+=gV.lverts.next.next.x;gV.localCOMy+=gV.lverts.next.next.y;gV.localCOMx*=0.5;gV.localCOMy*=0.5}else{gV.localCOMx=0;gV.localCOMy=0;var jQ=0;var fj=gV.lverts.next;var fy=fj;fj=fj.next;var ft=fj;fj=fj.next;while(fj!=null){var e8=fj;jQ+=ft.x*(e8.y-fy.y);var jj=e8.y*ft.x-e8.x*ft.y;gV.localCOMx+=(ft.x+e8.x)*jj;gV.localCOMy+=(ft.y+e8.y)*jj;fy=ft;ft=e8;fj=fj.next}fj=gV.lverts.next;var e6=fj;jQ+=ft.x*(e6.y-fy.y);var jh=e6.y*ft.x-e6.x*ft.y;gV.localCOMx+=(ft.x+e6.x)*jh;gV.localCOMy+=(ft.y+e6.y)*jh;fy=ft;fj=fj.next;var e4=fj;jQ+=e6.x*(e4.y-fy.y);var jf=e4.y*e6.x-e4.x*e6.y;gV.localCOMx+=(e6.x+e4.x)*jf;gV.localCOMy+=(e6.y+e4.y)*jf;jQ=1/(3*jQ);var fE=jQ;gV.localCOMx*=fE;gV.localCOMy*=fE}}}if(gX.wrap_localCOM!=null){gX.wrap_localCOM.zpp_inner.x=gX.localCOMx;gX.wrap_localCOM.zpp_inner.y=gX.localCOMy}}var gT=gX.body;if(gT.zip_axis){gT.zip_axis=false;gT.axisx=Math.sin(gT.rot);gT.axisy=Math.cos(gT.rot)}gX.worldCOMx=gX.body.posx+(gX.body.axisy*gX.localCOMx-gX.body.axisx*gX.localCOMy);gX.worldCOMy=gX.body.posy+(gX.localCOMx*gX.body.axisx+gX.localCOMy*gX.body.axisy)}}var fH=gX.radius;var fz=gX.radius;gX.aabb.minx=gX.worldCOMx-fH;gX.aabb.miny=gX.worldCOMy-fz;gX.aabb.maxx=gX.worldCOMx+fH;gX.aabb.maxy=gX.worldCOMy+fz}else{var gR=i9.polygon;if(gR.zip_gverts){if(gR.body!=null){gR.zip_gverts=false;gR.validate_lverts();var gP=gR.body;if(gP.zip_axis){gP.zip_axis=false;gP.axisx=Math.sin(gP.rot);gP.axisy=Math.cos(gP.rot)}var hn=gR.lverts.next;var fi=gR.gverts.next;while(fi!=null){var jc=fi;var iM=hn;hn=hn.next;jc.x=gR.body.posx+(gR.body.axisy*iM.x-gR.body.axisx*iM.y);jc.y=gR.body.posy+(iM.x*gR.body.axisx+iM.y*gR.body.axisy);fi=fi.next}}}var i4=gR.gverts.next;gR.aabb.minx=i4.x;gR.aabb.miny=i4.y;gR.aabb.maxx=i4.x;gR.aabb.maxy=i4.y;var fh=gR.gverts.next.next;while(fh!=null){var hJ=fh;if(hJ.x<gR.aabb.minx){gR.aabb.minx=hJ.x}if(hJ.x>gR.aabb.maxx){gR.aabb.maxx=hJ.x}if(hJ.y<gR.aabb.miny){gR.aabb.miny=hJ.y}if(hJ.y>gR.aabb.maxy){gR.aabb.maxy=hJ.y}fh=fh.next}}}}}var hi=i9.aabb;jS.minx=hi.minx-3;jS.miny=hi.miny-3;jS.maxx=hi.maxx+3;jS.maxy=hi.maxy+3;var hV=(jV.dyn=i9.body.type==1?false:!i9.body.component.sleeping)?this.dtree:this.stree;if(hV.root==null){hV.root=jV;hV.root.parent=null}else{var j5=jV.aabb;var iY=hV.root;while(iY.child1!=null){var he=iY.child1;var gr=iY.child2;var gN=iY.aabb;var jP=(gN.maxx-gN.minx+(gN.maxy-gN.miny))*2;var go=d.tmpaabb;var gJ=iY.aabb;go.minx=gJ.minx<j5.minx?gJ.minx:j5.minx;go.miny=gJ.miny<j5.miny?gJ.miny:j5.miny;go.maxx=gJ.maxx>j5.maxx?gJ.maxx:j5.maxx;go.maxy=gJ.maxy>j5.maxy?gJ.maxy:j5.maxy;var gn=d.tmpaabb;var ff=(gn.maxx-gn.minx+(gn.maxy-gn.miny))*2;var j6=2*ff;var hb=2*(ff-jP);var gm=d.tmpaabb;var eU=he.aabb;gm.minx=j5.minx<eU.minx?j5.minx:eU.minx;gm.miny=j5.miny<eU.miny?j5.miny:eU.miny;gm.maxx=j5.maxx>eU.maxx?j5.maxx:eU.maxx;gm.maxy=j5.maxy>eU.maxy?j5.maxy:eU.maxy;var ij;if(he.child1==null){var gl=d.tmpaabb;ij=(gl.maxx-gl.minx+(gl.maxy-gl.miny))*2+hb}else{var gj=he.aabb;var hZ=(gj.maxx-gj.minx+(gj.maxy-gj.miny))*2;var gh=d.tmpaabb;ij=(gh.maxx-gh.minx+(gh.maxy-gh.miny))*2-hZ+hb}var gf=d.tmpaabb;var eS=gr.aabb;gf.minx=j5.minx<eS.minx?j5.minx:eS.minx;gf.miny=j5.miny<eS.miny?j5.miny:eS.miny;gf.maxx=j5.maxx>eS.maxx?j5.maxx:eS.maxx;gf.maxy=j5.maxy>eS.maxy?j5.maxy:eS.maxy;var h4;if(gr.child1==null){var gd=d.tmpaabb;h4=(gd.maxx-gd.minx+(gd.maxy-gd.miny))*2+hb}else{var gb=gr.aabb;var hX=(gb.maxx-gb.minx+(gb.maxy-gb.miny))*2;var f9=d.tmpaabb;h4=(f9.maxx-f9.minx+(f9.maxy-f9.miny))*2-hX+hb}if(j6<ij&&j6<h4){break}else{if(ij<h4){iY=he}else{iY=gr}}}var gq=iY;var iu=gq.parent;var fg;if(dz.zpp_pool==null){fg=new dz()}else{fg=dz.zpp_pool;dz.zpp_pool=fg.next;fg.next=null}if(bT.zpp_pool==null){fg.aabb=new bT()}else{fg.aabb=bT.zpp_pool;bT.zpp_pool=fg.aabb.next;fg.aabb.next=null}fg.moved=false;fg.synced=false;fg.first_sync=false;fg.parent=iu;var fX=fg.aabb;var eQ=gq.aabb;fX.minx=j5.minx<eQ.minx?j5.minx:eQ.minx;fX.miny=j5.miny<eQ.miny?j5.miny:eQ.miny;fX.maxx=j5.maxx>eQ.maxx?j5.maxx:eQ.maxx;fX.maxy=j5.maxy>eQ.maxy?j5.maxy:eQ.maxy;fg.height=gq.height+1;if(iu!=null){if(iu.child1==gq){iu.child1=fg}else{iu.child2=fg}fg.child1=gq;fg.child2=jV;gq.parent=fg;jV.parent=fg}else{fg.child1=gq;fg.child2=jV;gq.parent=fg;jV.parent=fg;hV.root=fg}iY=jV.parent;while(iY!=null){if(iY.child1==null||iY.height<2){iY=iY}else{var eO=iY.child1;var jU=iY.child2;var hE=jU.height-eO.height;if(hE>1){var jq=jU.child1;var jb=jU.child2;jU.child1=iY;jU.parent=iY.parent;iY.parent=jU;if(jU.parent!=null){if(jU.parent.child1==iY){jU.parent.child1=jU}else{jU.parent.child2=jU}}else{hV.root=jU}if(jq.height>jb.height){jU.child2=jq;iY.child2=jb;jb.parent=iY;var fW=iY.aabb;var gH=eO.aabb;var eM=jb.aabb;fW.minx=gH.minx<eM.minx?gH.minx:eM.minx;fW.miny=gH.miny<eM.miny?gH.miny:eM.miny;fW.maxx=gH.maxx>eM.maxx?gH.maxx:eM.maxx;fW.maxy=gH.maxy>eM.maxy?gH.maxy:eM.maxy;var fV=jU.aabb;var gG=iY.aabb;var eK=jq.aabb;fV.minx=gG.minx<eK.minx?gG.minx:eK.minx;fV.miny=gG.miny<eK.miny?gG.miny:eK.miny;fV.maxx=gG.maxx>eK.maxx?gG.maxx:eK.maxx;fV.maxy=gG.maxy>eK.maxy?gG.maxy:eK.maxy;var iE=eO.height;var f0=jb.height;iY.height=1+(iE>f0?iE:f0);var iD=iY.height;var fZ=jq.height;jU.height=1+(iD>fZ?iD:fZ)}else{jU.child2=jb;iY.child2=jq;jq.parent=iY;var fU=iY.aabb;var gF=eO.aabb;var eI=jq.aabb;fU.minx=gF.minx<eI.minx?gF.minx:eI.minx;fU.miny=gF.miny<eI.miny?gF.miny:eI.miny;fU.maxx=gF.maxx>eI.maxx?gF.maxx:eI.maxx;fU.maxy=gF.maxy>eI.maxy?gF.maxy:eI.maxy;var fT=jU.aabb;var gE=iY.aabb;var ex=jb.aabb;fT.minx=gE.minx<ex.minx?gE.minx:ex.minx;fT.miny=gE.miny<ex.miny?gE.miny:ex.miny;fT.maxx=gE.maxx>ex.maxx?gE.maxx:ex.maxx;fT.maxy=gE.maxy>ex.maxy?gE.maxy:ex.maxy;var iC=eO.height;var fY=jq.height;iY.height=1+(iC>fY?iC:fY);var iA=iY.height;var fS=jb.height;jU.height=1+(iA>fS?iA:fS)}iY=jU}else{if(hE<-1){var jo=eO.child1;var ja=eO.child2;eO.child1=iY;eO.parent=iY.parent;iY.parent=eO;if(eO.parent!=null){if(eO.parent.child1==iY){eO.parent.child1=eO}else{eO.parent.child2=eO}}else{hV.root=eO}if(jo.height>ja.height){eO.child2=jo;iY.child1=ja;ja.parent=iY;var fR=iY.aabb;var gD=jU.aabb;var ew=ja.aabb;fR.minx=gD.minx<ew.minx?gD.minx:ew.minx;fR.miny=gD.miny<ew.miny?gD.miny:ew.miny;fR.maxx=gD.maxx>ew.maxx?gD.maxx:ew.maxx;fR.maxy=gD.maxy>ew.maxy?gD.maxy:ew.maxy;var fP=eO.aabb;var gC=iY.aabb;var eu=jo.aabb;fP.minx=gC.minx<eu.minx?gC.minx:eu.minx;fP.miny=gC.miny<eu.miny?gC.miny:eu.miny;fP.maxx=gC.maxx>eu.maxx?gC.maxx:eu.maxx;fP.maxy=gC.maxy>eu.maxy?gC.maxy:eu.maxy;var iz=jU.height;var fQ=ja.height;iY.height=1+(iz>fQ?iz:fQ);var iy=iY.height;var fO=jo.height;eO.height=1+(iy>fO?iy:fO)}else{eO.child2=ja;iY.child1=jo;jo.parent=iY;var fN=iY.aabb;var gB=jU.aabb;var es=jo.aabb;fN.minx=gB.minx<es.minx?gB.minx:es.minx;fN.miny=gB.miny<es.miny?gB.miny:es.miny;fN.maxx=gB.maxx>es.maxx?gB.maxx:es.maxx;fN.maxy=gB.maxy>es.maxy?gB.maxy:es.maxy;var fL=eO.aabb;var gA=iY.aabb;var eq=ja.aabb;fL.minx=gA.minx<eq.minx?gA.minx:eq.minx;fL.miny=gA.miny<eq.miny?gA.miny:eq.miny;fL.maxx=gA.maxx>eq.maxx?gA.maxx:eq.maxx;fL.maxy=gA.maxy>eq.maxy?gA.maxy:eq.maxy;var ix=jU.height;var fM=jo.height;iY.height=1+(ix>fM?ix:fM);var iw=iY.height;var fK=ja.height;eO.height=1+(iw>fK?iw:fK)}iY=eO}else{iY=iY}}}var hd=iY.child1;var gp=iY.child2;var iv=hd.height;var fJ=gp.height;iY.height=1+(iv>fJ?iv:fJ);var fI=iY.aabb;var gz=hd.aabb;var eo=gp.aabb;fI.minx=gz.minx<eo.minx?gz.minx:eo.minx;fI.miny=gz.miny<eo.miny?gz.miny:eo.miny;fI.maxx=gz.maxx>eo.maxx?gz.maxx:eo.maxx;fI.maxy=gz.maxy>eo.maxy?gz.maxy:eo.maxy;iY=iY.parent}}jV.synced=false;if(!jV.moved){jV.moved=true;jV.mnext=this.moves;this.moves=jV}}}}};cT.prototype.broadphase=function(eT,eq){var iD=this.syncs;while(iD!=null){var fO=iD.shape;if(!iD.first_sync){var hf=iD.dyn?this.dtree:this.stree;if(iD==hf.root){hf.root=null}else{var g0=iD.parent;var eZ=g0.parent;var he=g0.child1==iD?g0.child2:g0.child1;if(eZ!=null){if(eZ.child1==g0){eZ.child1=he}else{eZ.child2=he}he.parent=eZ;g0.height=-1;var ho=g0.aabb;if(ho.outer!=null){ho.outer.zpp_inner=null;ho.outer=null}ho.wrap_min=ho.wrap_max=null;ho._invalidate=null;ho._validate=null;ho.next=bT.zpp_pool;bT.zpp_pool=ho;g0.child1=g0.child2=g0.parent=null;g0.next=null;g0.snext=null;g0.mnext=null;g0.next=dz.zpp_pool;dz.zpp_pool=g0;var h7=eZ;while(h7!=null){if(h7.child1==null||h7.height<2){h7=h7}else{var hG=h7.child1;var hE=h7.child2;var eE=hE.height-hG.height;if(eE>1){var hD=hE.child1;var hC=hE.child2;hE.child1=h7;hE.parent=h7.parent;h7.parent=hE;if(hE.parent!=null){if(hE.parent.child1==h7){hE.parent.child1=hE}else{hE.parent.child2=hE}}else{hf.root=hE}if(hD.height>hC.height){hE.child2=hD;h7.child2=hC;hC.parent=h7;var g7=h7.aabb;var hI=hG.aabb;var iB=hC.aabb;g7.minx=hI.minx<iB.minx?hI.minx:iB.minx;g7.miny=hI.miny<iB.miny?hI.miny:iB.miny;g7.maxx=hI.maxx>iB.maxx?hI.maxx:iB.maxx;g7.maxy=hI.maxy>iB.maxy?hI.maxy:iB.maxy;var fU=hE.aabb;var ep=h7.aabb;var iA=hD.aabb;fU.minx=ep.minx<iA.minx?ep.minx:iA.minx;fU.miny=ep.miny<iA.miny?ep.miny:iA.miny;fU.maxx=ep.maxx>iA.maxx?ep.maxx:iA.maxx;fU.maxy=ep.maxy>iA.maxy?ep.maxy:iA.maxy;var hh=hG.height;var hg=hC.height;h7.height=1+(hh>hg?hh:hg);var eS=h7.height;var eD=hD.height;hE.height=1+(eS>eD?eS:eD)}else{hE.child2=hC;h7.child2=hD;hD.parent=h7;var fS=h7.aabb;var eo=hG.aabb;var iz=hD.aabb;fS.minx=eo.minx<iz.minx?eo.minx:iz.minx;fS.miny=eo.miny<iz.miny?eo.miny:iz.miny;fS.maxx=eo.maxx>iz.maxx?eo.maxx:iz.maxx;fS.maxy=eo.maxy>iz.maxy?eo.maxy:iz.maxy;var fQ=hE.aabb;var en=h7.aabb;var iy=hC.aabb;fQ.minx=en.minx<iy.minx?en.minx:iy.minx;fQ.miny=en.miny<iy.miny?en.miny:iy.miny;fQ.maxx=en.maxx>iy.maxx?en.maxx:iy.maxx;fQ.maxy=en.maxy>iy.maxy?en.maxy:iy.maxy;var eR=hG.height;var eC=hD.height;h7.height=1+(eR>eC?eR:eC);var eQ=h7.height;var eB=hC.height;hE.height=1+(eQ>eB?eQ:eB)}h7=hE}else{if(eE<-1){var ha=hG.child1;var gD=hG.child2;hG.child1=h7;hG.parent=h7.parent;h7.parent=hG;if(hG.parent!=null){if(hG.parent.child1==h7){hG.parent.child1=hG}else{hG.parent.child2=hG}}else{hf.root=hG}if(ha.height>gD.height){hG.child2=ha;h7.child1=gD;gD.parent=h7;var fN=h7.aabb;var el=hE.aabb;var iw=gD.aabb;fN.minx=el.minx<iw.minx?el.minx:iw.minx;fN.miny=el.miny<iw.miny?el.miny:iw.miny;fN.maxx=el.maxx>iw.maxx?el.maxx:iw.maxx;fN.maxy=el.maxy>iw.maxy?el.maxy:iw.maxy;var fL=hG.aabb;var ej=h7.aabb;var iu=ha.aabb;fL.minx=ej.minx<iu.minx?ej.minx:iu.minx;fL.miny=ej.miny<iu.miny?ej.miny:iu.miny;fL.maxx=ej.maxx>iu.maxx?ej.maxx:iu.maxx;fL.maxy=ej.maxy>iu.maxy?ej.maxy:iu.maxy;var eP=hE.height;var ez=gD.height;h7.height=1+(eP>ez?eP:ez);var eO=h7.height;var ex=ha.height;hG.height=1+(eO>ex?eO:ex)}else{hG.child2=gD;h7.child1=ha;ha.parent=h7;var fJ=h7.aabb;var eh=hE.aabb;var iq=ha.aabb;fJ.minx=eh.minx<iq.minx?eh.minx:iq.minx;fJ.miny=eh.miny<iq.miny?eh.miny:iq.miny;fJ.maxx=eh.maxx>iq.maxx?eh.maxx:iq.maxx;fJ.maxy=eh.maxy>iq.maxy?eh.maxy:iq.maxy;var fH=hG.aabb;var ee=h7.aabb;var im=gD.aabb;fH.minx=ee.minx<im.minx?ee.minx:im.minx;fH.miny=ee.miny<im.miny?ee.miny:im.miny;fH.maxx=ee.maxx>im.maxx?ee.maxx:im.maxx;fH.maxy=ee.maxy>im.maxy?ee.maxy:im.maxy;var eN=hE.height;var ev=ha.height;h7.height=1+(eN>ev?eN:ev);var eL=h7.height;var eu=gD.height;hG.height=1+(eL>eu?eL:eu)}h7=hG}else{h7=h7}}}var hy=h7.child1;var hu=h7.child2;var fF=h7.aabb;var eb=hy.aabb;var il=hu.aabb;fF.minx=eb.minx<il.minx?eb.minx:il.minx;fF.miny=eb.miny<il.miny?eb.miny:il.miny;fF.maxx=eb.maxx>il.maxx?eb.maxx:il.maxx;fF.maxy=eb.maxy>il.maxy?eb.maxy:il.maxy;var eK=hy.height;var et=hu.height;h7.height=1+(eK>et?eK:et);h7=h7.parent}}else{hf.root=he;he.parent=null;g0.height=-1;var ii=g0.aabb;if(ii.outer!=null){ii.outer.zpp_inner=null;ii.outer=null}ii.wrap_min=ii.wrap_max=null;ii._invalidate=null;ii._validate=null;ii.next=bT.zpp_pool;bT.zpp_pool=ii;g0.child1=g0.child2=g0.parent=null;g0.next=null;g0.snext=null;g0.mnext=null;g0.next=dz.zpp_pool;dz.zpp_pool=g0}}}else{iD.first_sync=false}var fV=iD.aabb;if(!eT.continuous){if(fO.zip_aabb){if(fO.body!=null){fO.zip_aabb=false;if(fO.type==0){var fD=fO.circle;if(fD.zip_worldCOM){if(fD.body!=null){fD.zip_worldCOM=false;if(fD.zip_localCOM){fD.zip_localCOM=false;if(fD.type==1){var gU=fD.polygon;if(gU.lverts.next.next==null){gU.localCOMx=gU.lverts.next.x;gU.localCOMy=gU.lverts.next.y}else{if(gU.lverts.next.next.next==null){gU.localCOMx=gU.lverts.next.x;gU.localCOMy=gU.lverts.next.y;gU.localCOMx+=gU.lverts.next.next.x;gU.localCOMy+=gU.lverts.next.next.y;gU.localCOMx*=0.5;gU.localCOMy*=0.5}else{gU.localCOMx=0;gU.localCOMy=0;var gK=0;var eJ=gU.lverts.next;var hk=eJ;eJ=eJ.next;var hj=eJ;eJ=eJ.next;while(eJ!=null){var hi=eJ;gK+=hj.x*(hi.y-hk.y);var hv=hi.y*hj.x-hi.x*hj.y;gU.localCOMx+=(hj.x+hi.x)*hv;gU.localCOMy+=(hj.y+hi.y)*hv;hk=hj;hj=hi;eJ=eJ.next}eJ=gU.lverts.next;var e2=eJ;gK+=hj.x*(e2.y-hk.y);var eX=e2.y*hj.x-e2.x*hj.y;gU.localCOMx+=(hj.x+e2.x)*eX;gU.localCOMy+=(hj.y+e2.y)*eX;hk=hj;eJ=eJ.next;var e0=eJ;gK+=e2.x*(e0.y-hk.y);var eW=e0.y*e2.x-e0.x*e2.y;gU.localCOMx+=(e2.x+e0.x)*eW;gU.localCOMy+=(e2.y+e0.y)*eW;gK=1/(3*gK);var hl=gK;gU.localCOMx*=hl;gU.localCOMy*=hl}}}if(fD.wrap_localCOM!=null){fD.wrap_localCOM.zpp_inner.x=fD.localCOMx;fD.wrap_localCOM.zpp_inner.y=fD.localCOMy}}var gS=fD.body;if(gS.zip_axis){gS.zip_axis=false;gS.axisx=Math.sin(gS.rot);gS.axisy=Math.cos(gS.rot)}fD.worldCOMx=fD.body.posx+(fD.body.axisy*fD.localCOMx-fD.body.axisx*fD.localCOMy);fD.worldCOMy=fD.body.posy+(fD.localCOMx*fD.body.axisx+fD.localCOMy*fD.body.axisy)}}var f0=fD.radius;var fY=fD.radius;fD.aabb.minx=fD.worldCOMx-f0;fD.aabb.miny=fD.worldCOMy-fY;fD.aabb.maxx=fD.worldCOMx+f0;fD.aabb.maxy=fD.worldCOMy+fY}else{var gQ=fO.polygon;if(gQ.zip_gverts){if(gQ.body!=null){gQ.zip_gverts=false;gQ.validate_lverts();var gO=gQ.body;if(gO.zip_axis){gO.zip_axis=false;gO.axisx=Math.sin(gO.rot);gO.axisy=Math.cos(gO.rot)}var iF=gQ.lverts.next;var fj=gQ.gverts.next;while(fj!=null){var gC=fj;var hs=iF;iF=iF.next;gC.x=gQ.body.posx+(gQ.body.axisy*hs.x-gQ.body.axisx*hs.y);gC.y=gQ.body.posy+(hs.x*gQ.body.axisx+hs.y*gQ.body.axisy);fj=fj.next}}}var h4=gQ.gverts.next;gQ.aabb.minx=h4.x;gQ.aabb.miny=h4.y;gQ.aabb.maxx=h4.x;gQ.aabb.maxy=h4.y;var fh=gQ.gverts.next.next;while(fh!=null){var hn=fh;if(hn.x<gQ.aabb.minx){gQ.aabb.minx=hn.x}if(hn.x>gQ.aabb.maxx){gQ.aabb.maxx=hn.x}if(hn.y<gQ.aabb.miny){gQ.aabb.miny=hn.y}if(hn.y>gQ.aabb.maxy){gQ.aabb.maxy=hn.y}fh=fh.next}}}}}var iL=fO.aabb;fV.minx=iL.minx-3;fV.miny=iL.miny-3;fV.maxx=iL.maxx+3;fV.maxy=iL.maxy+3;var e6=(iD.dyn=fO.body.type==1?false:!fO.body.component.sleeping)?this.dtree:this.stree;if(e6.root==null){e6.root=iD;e6.root.parent=null}else{var ik=iD.aabb;var h6=e6.root;while(h6.child1!=null){var fz=h6.child1;var e5=h6.child2;var gM=h6.aabb;var iC=(gM.maxx-gM.minx+(gM.maxy-gM.miny))*2;var gJ=d.tmpaabb;var gx=h6.aabb;gJ.minx=gx.minx<ik.minx?gx.minx:ik.minx;gJ.miny=gx.miny<ik.miny?gx.miny:ik.miny;gJ.maxx=gx.maxx>ik.maxx?gx.maxx:ik.maxx;gJ.maxy=gx.maxy>ik.maxy?gx.maxy:ik.maxy;var gI=d.tmpaabb;var hd=(gI.maxx-gI.minx+(gI.maxy-gI.miny))*2;var fx=2*hd;var hw=2*(hd-iC);var gH=d.tmpaabb;var em=fz.aabb;gH.minx=ik.minx<em.minx?ik.minx:em.minx;gH.miny=ik.miny<em.miny?ik.miny:em.miny;gH.maxx=ik.maxx>em.maxx?ik.maxx:em.maxx;gH.maxy=ik.maxy>em.maxy?ik.maxy:em.maxy;var ey;if(fz.child1==null){var gG=d.tmpaabb;ey=(gG.maxx-gG.minx+(gG.maxy-gG.miny))*2+hw}else{var gF=fz.aabb;var e3=(gF.maxx-gF.minx+(gF.maxy-gF.miny))*2;var gk=d.tmpaabb;ey=(gk.maxx-gk.minx+(gk.maxy-gk.miny))*2-e3+hw}var gh=d.tmpaabb;var ek=e5.aabb;gh.minx=ik.minx<ek.minx?ik.minx:ek.minx;gh.miny=ik.miny<ek.miny?ik.miny:ek.miny;gh.maxx=ik.maxx>ek.maxx?ik.maxx:ek.maxx;gh.maxy=ik.maxy>ek.maxy?ik.maxy:ek.maxy;var ew;if(e5.child1==null){var ge=d.tmpaabb;ew=(ge.maxx-ge.minx+(ge.maxy-ge.miny))*2+hw}else{var gc=e5.aabb;var gN=(gc.maxx-gc.minx+(gc.maxy-gc.miny))*2;var ga=d.tmpaabb;ew=(ga.maxx-ga.minx+(ga.maxy-ga.miny))*2-gN+hw}if(fx<ey&&fx<ew){break}else{if(ey<ew){h6=fz}else{h6=e5}}}var e8=h6;var eA=e8.parent;var eM;if(dz.zpp_pool==null){eM=new dz()}else{eM=dz.zpp_pool;dz.zpp_pool=eM.next;eM.next=null}if(bT.zpp_pool==null){eM.aabb=new bT()}else{eM.aabb=bT.zpp_pool;bT.zpp_pool=eM.aabb.next;eM.aabb.next=null}eM.moved=false;eM.synced=false;eM.first_sync=false;eM.parent=eA;var f8=eM.aabb;var ei=e8.aabb;f8.minx=ik.minx<ei.minx?ik.minx:ei.minx;f8.miny=ik.miny<ei.miny?ik.miny:ei.miny;f8.maxx=ik.maxx>ei.maxx?ik.maxx:ei.maxx;f8.maxy=ik.maxy>ei.maxy?ik.maxy:ei.maxy;eM.height=e8.height+1;if(eA!=null){if(eA.child1==e8){eA.child1=eM}else{eA.child2=eM}eM.child1=e8;eM.child2=iD;e8.parent=eM;iD.parent=eM}else{eM.child1=e8;eM.child2=iD;e8.parent=eM;iD.parent=eM;e6.root=eM}h6=iD.parent;while(h6!=null){if(h6.child1==null||h6.height<2){h6=h6}else{var ef=h6.child1;var ib=h6.child2;var ic=ib.height-ef.height;if(ic>1){var g9=ib.child1;var gB=ib.child2;ib.child1=h6;ib.parent=h6.parent;h6.parent=ib;if(ib.parent!=null){if(ib.parent.child1==h6){ib.parent.child1=ib}else{ib.parent.child2=ib}}else{e6.root=ib}if(g9.height>gB.height){ib.child2=g9;h6.child2=gB;gB.parent=h6;var f7=h6.aabb;var gw=ef.aabb;var ec=gB.aabb;f7.minx=gw.minx<ec.minx?gw.minx:ec.minx;f7.miny=gw.miny<ec.miny?gw.miny:ec.miny;f7.maxx=gw.maxx>ec.maxx?gw.maxx:ec.maxx;f7.maxy=gw.maxy>ec.maxy?gw.maxy:ec.maxy;var f6=ib.aabb;var gv=h6.aabb;var iM=g9.aabb;f6.minx=gv.minx<iM.minx?gv.minx:iM.minx;f6.miny=gv.miny<iM.miny?gv.miny:iM.miny;f6.maxx=gv.maxx>iM.maxx?gv.maxx:iM.maxx;f6.maxy=gv.maxy>iM.maxy?gv.maxy:iM.maxy;var eI=ef.height;var es=gB.height;h6.height=1+(eI>es?eI:es);var h5=h6.height;var fm=g9.height;ib.height=1+(h5>fm?h5:fm)}else{ib.child2=gB;h6.child2=g9;g9.parent=h6;var f5=h6.aabb;var gu=ef.aabb;var iJ=g9.aabb;f5.minx=gu.minx<iJ.minx?gu.minx:iJ.minx;f5.miny=gu.miny<iJ.miny?gu.miny:iJ.miny;f5.maxx=gu.maxx>iJ.maxx?gu.maxx:iJ.maxx;f5.maxy=gu.maxy>iJ.maxy?gu.maxy:iJ.maxy;var f4=ib.aabb;var gt=h6.aabb;var iI=gB.aabb;f4.minx=gt.minx<iI.minx?gt.minx:iI.minx;f4.miny=gt.miny<iI.miny?gt.miny:iI.miny;f4.maxx=gt.maxx>iI.maxx?gt.maxx:iI.maxx;f4.maxy=gt.maxy>iI.maxy?gt.maxy:iI.maxy;var h3=ef.height;var fl=g9.height;h6.height=1+(h3>fl?h3:fl);var h2=h6.height;var fk=gB.height;ib.height=1+(h2>fk?h2:fk)}h6=ib}else{if(ic<-1){var g8=ef.child1;var gz=ef.child2;ef.child1=h6;ef.parent=h6.parent;h6.parent=ef;if(ef.parent!=null){if(ef.parent.child1==h6){ef.parent.child1=ef}else{ef.parent.child2=ef}}else{e6.root=ef}if(g8.height>gz.height){ef.child2=g8;h6.child1=gz;gz.parent=h6;var fT=h6.aabb;var gs=ib.aabb;var iH=gz.aabb;fT.minx=gs.minx<iH.minx?gs.minx:iH.minx;fT.miny=gs.miny<iH.miny?gs.miny:iH.miny;fT.maxx=gs.maxx>iH.maxx?gs.maxx:iH.maxx;fT.maxy=gs.maxy>iH.maxy?gs.maxy:iH.maxy;var fR=ef.aabb;var gr=h6.aabb;var iG=g8.aabb;fR.minx=gr.minx<iG.minx?gr.minx:iG.minx;fR.miny=gr.miny<iG.miny?gr.miny:iG.miny;fR.maxx=gr.maxx>iG.maxx?gr.maxx:iG.maxx;fR.maxy=gr.maxy>iG.maxy?gr.maxy:iG.maxy;var h0=ib.height;var fi=gz.height;h6.height=1+(h0>fi?h0:fi);var hY=h6.height;var fg=g8.height;ef.height=1+(hY>fg?hY:fg)}else{ef.child2=gz;h6.child1=g8;g8.parent=h6;var fP=h6.aabb;var gq=ib.aabb;var ix=g8.aabb;fP.minx=gq.minx<ix.minx?gq.minx:ix.minx;fP.miny=gq.miny<ix.miny?gq.miny:ix.miny;fP.maxx=gq.maxx>ix.maxx?gq.maxx:ix.maxx;fP.maxy=gq.maxy>ix.maxy?gq.maxy:ix.maxy;var fM=ef.aabb;var gp=h6.aabb;var iv=gz.aabb;fM.minx=gp.minx<iv.minx?gp.minx:iv.minx;fM.miny=gp.miny<iv.miny?gp.miny:iv.miny;fM.maxx=gp.maxx>iv.maxx?gp.maxx:iv.maxx;fM.maxy=gp.maxy>iv.maxy?gp.maxy:iv.maxy;var hW=ib.height;var ff=g8.height;h6.height=1+(hW>ff?hW:ff);var hU=h6.height;var fd=gz.height;ef.height=1+(hU>fd?hU:fd)}h6=ef}else{h6=h6}}}var fy=h6.child1;var e4=h6.child2;var hT=fy.height;var fb=e4.height;h6.height=1+(hT>fb?hT:fb);var fK=h6.aabb;var go=fy.aabb;var it=e4.aabb;fK.minx=go.minx<it.minx?go.minx:it.minx;fK.miny=go.miny<it.miny?go.miny:it.miny;fK.maxx=go.maxx>it.maxx?go.maxx:it.maxx;fK.maxy=go.maxy>it.maxy?go.maxy:it.maxy;h6=h6.parent}}iD.synced=false;iD=iD.snext}while(this.syncs!=null){var gg=this.syncs;this.syncs=gg.snext;gg.snext=null;if(gg.moved){continue}gg.moved=false;var eY=gg.shape;if(eY.body.component.sleeping){continue}var ij=gg.aabb;var er=null;if(this.dtree.root!=null){this.dtree.root.next=er;er=this.dtree.root}while(er!=null){var hQ=er;er=hQ.next;hQ.next=null;if(hQ==gg){continue}if(hQ.child1==null){var eg=hQ.shape;if(eg.body!=eY.body&&!(eg.body.type==1&&eY.body.type==1)){var hS=hQ.aabb;if(hS.miny<=ij.maxy&&ij.miny<=hS.maxy&&hS.minx<=ij.maxx&&ij.minx<=hS.maxx){var e1;var hc;if(eY.id<eg.id){e1=eY.id;hc=eg.id}else{e1=eg.id;hc=eY.id}var hm=eY.pairs.length<eg.pairs.length?eY:eg;var h1=null;var fe=hm.pairs.head;while(fe!=null){var hb=fe.elt;if(hb.id==e1&&hb.di==hc){h1=hb;break}fe=fe.next}if(h1!=null){if(h1.sleeping){h1.sleeping=false;h1.next=this.pairs;this.pairs=h1;h1.first=true}continue}if(bG.zpp_pool==null){h1=new bG()}else{h1=bG.zpp_pool;bG.zpp_pool=h1.next;h1.next=null}h1.n1=gg;h1.n2=hQ;h1.id=e1;h1.di=hc;h1.next=this.pairs;this.pairs=h1;h1.first=true;var fI=eY.pairs;var hP;if(cl.zpp_pool==null){hP=new cl()}else{hP=cl.zpp_pool;cl.zpp_pool=hP.next;hP.next=null}hP.elt=h1;var g6=hP;g6.next=fI.head;fI.head=g6;fI.modified=true;fI.length++;var fG=eg.pairs;var hO;if(cl.zpp_pool==null){hO=new cl()}else{hO=cl.zpp_pool;cl.zpp_pool=hO.next;hO.next=null}hO.elt=h1;var gn=hO;gn.next=fG.head;fG.head=gn;fG.modified=true;fG.length++}}}else{var hR=hQ.aabb;if(hR.miny<=ij.maxy&&ij.miny<=hR.maxy&&hR.minx<=ij.maxx&&ij.minx<=hR.maxx){if(hQ.child1!=null){hQ.child1.next=er;er=hQ.child1}if(hQ.child2!=null){hQ.child2.next=er;er=hQ.child2}}}}if(this.stree.root!=null){this.stree.root.next=er;er=this.stree.root}while(er!=null){var hN=er;er=hN.next;hN.next=null;if(hN==gg){continue}if(hN.child1==null){var ed=hN.shape;if(ed.body!=eY.body&&!(ed.body.type==1&&eY.body.type==1)){var hB=hN.aabb;if(hB.miny<=ij.maxy&&ij.miny<=hB.maxy&&hB.minx<=ij.maxx&&ij.minx<=hB.maxx){var fv;var fZ;if(eY.id<ed.id){fv=eY.id;fZ=ed.id}else{fv=ed.id;fZ=eY.id}var gT=eY.pairs.length<ed.pairs.length?eY:ed;var hZ=null;var fc=gT.pairs.head;while(fc!=null){var eH=fc.elt;if(eH.id==fv&&eH.di==fZ){hZ=eH;break}fc=fc.next}if(hZ!=null){if(hZ.sleeping){hZ.sleeping=false;hZ.next=this.pairs;this.pairs=hZ;hZ.first=true}continue}if(bG.zpp_pool==null){hZ=new bG()}else{hZ=bG.zpp_pool;bG.zpp_pool=hZ.next;hZ.next=null}hZ.n1=gg;hZ.n2=hN;hZ.id=fv;hZ.di=fZ;hZ.next=this.pairs;this.pairs=hZ;hZ.first=true;var fE=eY.pairs;var hL;if(cl.zpp_pool==null){hL=new cl()}else{hL=cl.zpp_pool;cl.zpp_pool=hL.next;hL.next=null}hL.elt=hZ;var gm=hL;gm.next=fE.head;fE.head=gm;fE.modified=true;fE.length++;var fC=ed.pairs;var hK;if(cl.zpp_pool==null){hK=new cl()}else{hK=cl.zpp_pool;cl.zpp_pool=hK.next;hK.next=null}hK.elt=hZ;var gj=hK;gj.next=fC.head;fC.head=gj;fC.modified=true;fC.length++}}}else{var hA=hN.aabb;if(hA.miny<=ij.maxy&&ij.miny<=hA.maxy&&hA.minx<=ij.maxx&&ij.minx<=hA.maxx){if(hN.child1!=null){hN.child1.next=er;er=hN.child1}if(hN.child2!=null){hN.child2.next=er;er=hN.child2}}}}}while(this.moves!=null){var hJ=this.moves;this.moves=hJ.mnext;hJ.mnext=null;hJ.moved=false;var gE=hJ.shape;if(gE.body.component.sleeping){continue}var gL=hJ.aabb;var hM=null;if(this.dtree.root!=null){this.dtree.root.next=hM;hM=this.dtree.root}while(hM!=null){var hH=hM;hM=hH.next;hH.next=null;if(hH==hJ){continue}if(hH.child1==null){var ea=hH.shape;if(ea.body!=gE.body&&!(ea.body.type==1&&gE.body.type==1)){var hz=hH.aabb;if(hz.miny<=gL.maxy&&gL.miny<=hz.maxy&&hz.minx<=gL.maxx&&gL.minx<=hz.maxx){var ft;var fX;if(gE.id<ea.id){ft=gE.id;fX=ea.id}else{ft=ea.id;fX=gE.id}var gR=gE.pairs.length<ea.pairs.length?gE:ea;var hX=null;var fa=gR.pairs.head;while(fa!=null){var eG=fa.elt;if(eG.id==ft&&eG.di==fX){hX=eG;break}fa=fa.next}if(hX!=null){if(hX.sleeping){hX.sleeping=false;hX.next=this.pairs;this.pairs=hX;hX.first=true}continue}if(bG.zpp_pool==null){hX=new bG()}else{hX=bG.zpp_pool;bG.zpp_pool=hX.next;hX.next=null}hX.n1=hJ;hX.n2=hH;hX.id=ft;hX.di=fX;hX.next=this.pairs;this.pairs=hX;hX.first=true;var fB=gE.pairs;var hF;if(cl.zpp_pool==null){hF=new cl()}else{hF=cl.zpp_pool;cl.zpp_pool=hF.next;hF.next=null}hF.elt=hX;var gf=hF;gf.next=fB.head;fB.head=gf;fB.modified=true;fB.length++;var fw=ea.pairs;var g5;if(cl.zpp_pool==null){g5=new cl()}else{g5=cl.zpp_pool;cl.zpp_pool=g5.next;g5.next=null}g5.elt=hX;var gd=g5;gd.next=fw.head;fw.head=gd;fw.modified=true;fw.length++}}}else{var hx=hH.aabb;if(hx.miny<=gL.maxy&&gL.miny<=hx.maxy&&hx.minx<=gL.maxx&&gL.minx<=hx.maxx){if(hH.child1!=null){hH.child1.next=hM;hM=hH.child1}if(hH.child2!=null){hH.child2.next=hM;hM=hH.child2}}}}if(this.stree.root!=null){this.stree.root.next=hM;hM=this.stree.root}while(hM!=null){var gZ=hM;hM=gZ.next;gZ.next=null;if(gZ==hJ){continue}if(gZ.child1==null){var iK=gZ.shape;if(iK.body!=gE.body&&!(iK.body.type==1&&gE.body.type==1)){var ht=gZ.aabb;if(ht.miny<=gL.maxy&&gL.miny<=ht.maxy&&ht.minx<=gL.maxx&&gL.minx<=ht.maxx){var fr;var fW;if(gE.id<iK.id){fr=gE.id;fW=iK.id}else{fr=iK.id;fW=gE.id}var gP=gE.pairs.length<iK.pairs.length?gE:iK;var hV=null;var e9=gP.pairs.head;while(e9!=null){var eF=e9.elt;if(eF.id==fr&&eF.di==fW){hV=eF;break}e9=e9.next}if(hV!=null){if(hV.sleeping){hV.sleeping=false;hV.next=this.pairs;this.pairs=hV;hV.first=true}continue}if(bG.zpp_pool==null){hV=new bG()}else{hV=bG.zpp_pool;bG.zpp_pool=hV.next;hV.next=null}hV.n1=hJ;hV.n2=gZ;hV.id=fr;hV.di=fW;hV.next=this.pairs;this.pairs=hV;hV.first=true;var fu=gE.pairs;var gY;if(cl.zpp_pool==null){gY=new cl()}else{gY=cl.zpp_pool;cl.zpp_pool=gY.next;gY.next=null}gY.elt=hV;var gb=gY;gb.next=fu.head;fu.head=gb;fu.modified=true;fu.length++;var fs=iK.pairs;var gX;if(cl.zpp_pool==null){gX=new cl()}else{gX=cl.zpp_pool;cl.zpp_pool=gX.next;gX.next=null}gX.elt=hV;var f9=gX;f9.next=fs.head;fs.head=f9;fs.modified=true;fs.length++}}}else{var hr=gZ.aabb;if(hr.miny<=gL.maxy&&gL.miny<=hr.maxy&&hr.minx<=gL.maxx&&gL.minx<=hr.maxx){if(gZ.child1!=null){gZ.child1.next=hM;hM=gZ.child1}if(gZ.child2!=null){gZ.child2.next=hM;hM=gZ.child2}}}}}var gl=null;var h9=this.pairs;while(h9!=null){var h8;if(!h9.first){var fq=h9.n1.aabb;var hq=h9.n2.aabb;h8=!(hq.miny<=fq.maxy&&fq.miny<=hq.maxy&&hq.minx<=fq.maxx&&fq.minx<=hq.maxx)}else{h8=false}if(h8){if(gl==null){this.pairs=h9.next}else{gl.next=h9.next}var fp=h9.n1.shape.pairs;var ir=null;var gA=fp.head;while(gA!=null){if(gA.elt==h9){var gi;var gW;if(ir==null){gi=fp.head;gW=gi.next;fp.head=gW;if(fp.head==null){fp.pushmod=true}}else{gi=ir.next;gW=gi.next;ir.next=gW;if(gW==null){fp.pushmod=true}}var ih=gi;ih.elt=null;ih.next=cl.zpp_pool;cl.zpp_pool=ih;fp.modified=true;fp.length--;fp.pushmod=true;break}ir=gA;gA=gA.next}var fo=h9.n2.shape.pairs;var ip=null;var gy=fo.head;while(gy!=null){if(gy.elt==h9){var ia;var gV;if(ip==null){ia=fo.head;gV=ia.next;fo.head=gV;if(fo.head==null){fo.pushmod=true}}else{ia=ip.next;gV=ia.next;ip.next=gV;if(gV==null){fo.pushmod=true}}var ig=ia;ig.elt=null;ig.next=cl.zpp_pool;cl.zpp_pool=ig;fo.modified=true;fo.length--;fo.pushmod=true;break}ip=gy;gy=gy.next}var iE=h9.next;if(h9.arb!=null){h9.arb.pair=null}h9.arb=null;var ie=h9;ie.n1=ie.n2=null;ie.sleeping=false;ie.next=bG.zpp_pool;bG.zpp_pool=ie;h9=iE;continue}var fA=h9.n1.shape;var eV=fA.body;var e7=h9.n2.shape;var io=e7.body;if(!h9.first){if((eV.component.sleeping||eV.type==1)&&(io.component.sleeping||io.type==1)){h9.sleeping=true;if(gl==null){this.pairs=h9.next}else{gl.next=h9.next}h9=h9.next;continue}}h9.first=false;var fn=fA.aabb;var hp=e7.aabb;if(hp.miny<=fn.maxy&&fn.miny<=hp.maxy&&hp.minx<=fn.maxx&&fn.minx<=hp.maxx){var eU=h9.arb;if(eq){h9.arb=eT.narrowPhase(fA,e7,eV.type!=2||io.type!=2,h9.arb,false)}else{h9.arb=eT.continuousEvent(fA,e7,eV.type!=2||io.type!=2,h9.arb,false)}if(h9.arb==null){if(eU!=null){eU.pair=null}}else{h9.arb.pair=h9}}gl=h9;h9=h9.next}};cT.prototype.clear=function(){while(this.syncs!=null){var ej=this.syncs.snext;this.syncs.snext=null;if(this.syncs.first_sync){this.syncs.shape.node=null;this.syncs.shape.removedFromSpace();this.syncs.shape=null}this.syncs=ej}while(this.moves!=null){var en=this.moves.mnext;this.moves.mnext=null;if(this.moves.first_sync){this.moves.shape.node=null;this.moves.shape.removedFromSpace();this.moves.shape=null}this.moves=en}while(this.pairs!=null){var ee=this.pairs.next;if(this.pairs.arb!=null){this.pairs.arb.pair=null}this.pairs.arb=null;var em=this.pairs.n1.shape.pairs;var eh=this.pairs;var ei=null;var ec=em.head;while(ec!=null){if(ec.elt==eh){var ea;var er;if(ei==null){ea=em.head;er=ea.next;em.head=er;if(em.head==null){em.pushmod=true}}else{ea=ei.next;er=ea.next;ei.next=er;if(er==null){em.pushmod=true}}var ek=ea;ek.elt=null;ek.next=cl.zpp_pool;cl.zpp_pool=ek;em.modified=true;em.length--;em.pushmod=true;break}ei=ec;ec=ec.next}var eq=this.pairs.n2.shape.pairs;var ep=this.pairs;var eb=null;var ed=eq.head;while(ed!=null){if(ed.elt==ep){var ef;var eg;if(eb==null){ef=eq.head;eg=ef.next;eq.head=eg;if(eq.head==null){eq.pushmod=true}}else{ef=eb.next;eg=ef.next;eb.next=eg;if(eg==null){eq.pushmod=true}}var eo=ef;eo.elt=null;eo.next=cl.zpp_pool;cl.zpp_pool=eo;eq.modified=true;eq.length--;eq.pushmod=true;break}eb=ed;ed=ed.next}var el=this.pairs;el.n1=el.n2=null;el.sleeping=false;el.next=bG.zpp_pool;bG.zpp_pool=el;this.pairs=ee}this.dtree.clear();this.stree.clear()};cT.prototype.treeStack=null;cT.prototype.shapesUnderPoint=function(em,ek,ea,eb){this.sync_broadphase();var ei;if(bB.zpp_pool==null){ei=new bB()}else{ei=bB.zpp_pool;bB.zpp_pool=ei.next;ei.next=null}ei.weak=false;ei._immutable=false;ei.x=em;ei.y=ek;var en=ei;var el=eb==null?new cZ():eb;if(this.stree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.stree.root);while(this.treeStack.head!=null){var ec=this.treeStack.pop_unsafe();var eg=ec.aabb;if(en.x>=eg.minx&&en.x<=eg.maxx&&en.y>=eg.miny&&en.y<=eg.maxy){if(ec.child1==null){var ee;if(ea!=null){var ej=ec.shape.filter;if((ej.collisionMask&ea.collisionGroup)!=0){ee=(ea.collisionMask&ej.collisionGroup)!=0}else{ee=false}}else{ee=true}if(ee){if(ec.shape.type==0){if(b7.circleContains(ec.shape.circle,en)){el.push(ec.shape.outer)}}else{if(b7.polyContains(ec.shape.polygon,en)){el.push(ec.shape.outer)}}}}else{if(ec.child1!=null){this.treeStack.add(ec.child1)}if(ec.child2!=null){this.treeStack.add(ec.child2)}}}}}if(this.dtree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.dtree.root);while(this.treeStack.head!=null){var eo=this.treeStack.pop_unsafe();var eh=eo.aabb;if(en.x>=eh.minx&&en.x<=eh.maxx&&en.y>=eh.miny&&en.y<=eh.maxy){if(eo.child1==null){var ed;if(ea!=null){var ef=eo.shape.filter;if((ef.collisionMask&ea.collisionGroup)!=0){ed=(ea.collisionMask&ef.collisionGroup)!=0}else{ed=false}}else{ed=true}if(ed){if(eo.shape.type==0){if(b7.circleContains(eo.shape.circle,en)){el.push(eo.shape.outer)}}else{if(b7.polyContains(eo.shape.polygon,en)){el.push(eo.shape.outer)}}}}else{if(eo.child1!=null){this.treeStack.add(eo.child1)}if(eo.child2!=null){this.treeStack.add(eo.child2)}}}}}if(en.outer!=null){en.outer.zpp_inner=null;en.outer=null}en._isimmutable=null;en._validate=null;en._invalidate=null;en.next=bB.zpp_pool;bB.zpp_pool=en;return el};cT.prototype.bodiesUnderPoint=function(eo,em,eb,ec){this.sync_broadphase();var ek;if(bB.zpp_pool==null){ek=new bB()}else{ek=bB.zpp_pool;bB.zpp_pool=ek.next;ek.next=null}ek.weak=false;ek._immutable=false;ek.x=eo;ek.y=em;var ep=ek;var en=ec==null?new a5():ec;if(this.stree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.stree.root);while(this.treeStack.head!=null){var ed=this.treeStack.pop_unsafe();var ei=ed.aabb;if(ep.x>=ei.minx&&ep.x<=ei.maxx&&ep.y>=ei.miny&&ep.y<=ei.maxy){if(ed.child1==null){var eg=ed.shape.body.outer;if(!en.has(eg)){var ef;if(eb!=null){var el=ed.shape.filter;if((el.collisionMask&eb.collisionGroup)!=0){ef=(eb.collisionMask&el.collisionGroup)!=0}else{ef=false}}else{ef=true}if(ef){if(ed.shape.type==0){if(b7.circleContains(ed.shape.circle,ep)){en.push(eg)}}else{if(b7.polyContains(ed.shape.polygon,ep)){en.push(eg)}}}}}else{if(ed.child1!=null){this.treeStack.add(ed.child1)}if(ed.child2!=null){this.treeStack.add(ed.child2)}}}}}if(this.dtree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.dtree.root);while(this.treeStack.head!=null){var eq=this.treeStack.pop_unsafe();var ej=eq.aabb;if(ep.x>=ej.minx&&ep.x<=ej.maxx&&ep.y>=ej.miny&&ep.y<=ej.maxy){if(eq.child1==null){var ea=eq.shape.body.outer;if(!en.has(ea)){var ee;if(eb!=null){var eh=eq.shape.filter;if((eh.collisionMask&eb.collisionGroup)!=0){ee=(eb.collisionMask&eh.collisionGroup)!=0}else{ee=false}}else{ee=true}if(ee){if(eq.shape.type==0){if(b7.circleContains(eq.shape.circle,ep)){en.push(ea)}}else{if(b7.polyContains(eq.shape.polygon,ep)){en.push(ea)}}}}}else{if(eq.child1!=null){this.treeStack.add(eq.child1)}if(eq.child2!=null){this.treeStack.add(eq.child2)}}}}}if(ep.outer!=null){ep.outer.zpp_inner=null;ep.outer=null}ep._isimmutable=null;ep._validate=null;ep._invalidate=null;ep.next=bB.zpp_pool;bB.zpp_pool=ep;return en};cT.prototype.treeStack2=null;cT.prototype.shapesInAABB=function(ed,eG,eC,eg,ee){this.sync_broadphase();this.updateAABBShape(ed);var eE=this.aabbShape.zpp_inner.aabb;var eF=ee==null?new cZ():ee;if(this.stree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.stree.root);while(this.treeStack.head!=null){var eo=this.treeStack.pop_unsafe();var ef=eo.aabb;if(ef.minx>=eE.minx&&ef.miny>=eE.miny&&ef.maxx<=eE.maxx&&ef.maxy<=eE.maxy){if(eo.child1==null){var eD;if(eg!=null){var es=eo.shape.filter;if((es.collisionMask&eg.collisionGroup)!=0){eD=(eg.collisionMask&es.collisionGroup)!=0}else{eD=false}}else{eD=true}if(eD){eF.push(eo.shape.outer)}}else{if(this.treeStack2==null){this.treeStack2=new ai()}this.treeStack2.add(eo);while(this.treeStack2.head!=null){var ec=this.treeStack2.pop_unsafe();if(ec.child1==null){var en;if(eg!=null){var eB=ec.shape.filter;if((eB.collisionMask&eg.collisionGroup)!=0){en=(eg.collisionMask&eB.collisionGroup)!=0}else{en=false}}else{en=true}if(en){eF.push(ec.shape.outer)}}else{if(ec.child1!=null){this.treeStack2.add(ec.child1)}if(ec.child2!=null){this.treeStack2.add(ec.child2)}}}}}else{var eA=eo.aabb;if(eE.miny<=eA.maxy&&eA.miny<=eE.maxy&&eE.minx<=eA.maxx&&eA.minx<=eE.maxx){if(eo.child1==null){var em;if(eg!=null){var ey=eo.shape.filter;if((ey.collisionMask&eg.collisionGroup)!=0){em=(eg.collisionMask&ey.collisionGroup)!=0}else{em=false}}else{em=true}if(em){if(eG){if(eC){if(b7.containTest(this.aabbShape.zpp_inner,eo.shape)){eF.push(eo.shape.outer)}}else{var ez=eo.shape.aabb;if(ez.minx>=eE.minx&&ez.miny>=eE.miny&&ez.maxx<=eE.maxx&&ez.maxy<=eE.maxy){eF.push(eo.shape.outer)}else{if(b7.testCollide_safe(eo.shape,this.aabbShape.zpp_inner)){eF.push(eo.shape.outer)}}}}else{var el;if(!(!eC)){var ex=eo.shape.aabb;if(ex.minx>=eE.minx&&ex.miny>=eE.miny&&ex.maxx<=eE.maxx){el=ex.maxy<=eE.maxy}else{el=false}}else{el=true}if(el){eF.push(eo.shape.outer)}}}}else{if(eo.child1!=null){this.treeStack.add(eo.child1)}if(eo.child2!=null){this.treeStack.add(eo.child2)}}}}}}if(this.dtree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.dtree.root);while(this.treeStack.head!=null){var eb=this.treeStack.pop_unsafe();var ew=eb.aabb;if(ew.minx>=eE.minx&&ew.miny>=eE.miny&&ew.maxx<=eE.maxx&&ew.maxy<=eE.maxy){if(eb.child1==null){var ek;if(eg!=null){var ev=eb.shape.filter;if((ev.collisionMask&eg.collisionGroup)!=0){ek=(eg.collisionMask&ev.collisionGroup)!=0}else{ek=false}}else{ek=true}if(ek){eF.push(eb.shape.outer)}}else{if(this.treeStack2==null){this.treeStack2=new ai()}this.treeStack2.add(eb);while(this.treeStack2.head!=null){var ea=this.treeStack2.pop_unsafe();if(ea.child1==null){var ej;if(eg!=null){var eu=ea.shape.filter;if((eu.collisionMask&eg.collisionGroup)!=0){ej=(eg.collisionMask&eu.collisionGroup)!=0}else{ej=false}}else{ej=true}if(ej){eF.push(ea.shape.outer)}}else{if(ea.child1!=null){this.treeStack2.add(ea.child1)}if(ea.child2!=null){this.treeStack2.add(ea.child2)}}}}}else{var er=eb.aabb;if(eE.miny<=er.maxy&&er.miny<=eE.maxy&&eE.minx<=er.maxx&&er.minx<=eE.maxx){if(eb.child1==null){var ei;if(eg!=null){var ep=eb.shape.filter;if((ep.collisionMask&eg.collisionGroup)!=0){ei=(eg.collisionMask&ep.collisionGroup)!=0}else{ei=false}}else{ei=true}if(ei){if(eG){if(eC){if(b7.containTest(this.aabbShape.zpp_inner,eb.shape)){eF.push(eb.shape.outer)}}else{var et=eb.shape.aabb;if(et.minx>=eE.minx&&et.miny>=eE.miny&&et.maxx<=eE.maxx&&et.maxy<=eE.maxy){eF.push(eb.shape.outer)}else{if(b7.testCollide_safe(eb.shape,this.aabbShape.zpp_inner)){eF.push(eb.shape.outer)}}}}else{var eh;if(!(!eC)){var eq=eb.shape.aabb;if(eq.minx>=eE.minx&&eq.miny>=eE.miny&&eq.maxx<=eE.maxx){eh=eq.maxy<=eE.maxy}else{eh=false}}else{eh=true}if(eh){eF.push(eb.shape.outer)}}}}else{if(eb.child1!=null){this.treeStack.add(eb.child1)}if(eb.child2!=null){this.treeStack.add(eb.child2)}}}}}}return eF};cT.prototype.failed=null;cT.prototype.bodiesInAABB=function(ew,eB,eu,ez,ev){this.sync_broadphase();this.updateAABBShape(ew);var en=this.aabbShape.zpp_inner.aabb;var ey=ev==null?new a5():ev;if(this.failed==null){this.failed=new a5()}if(this.stree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.stree.root);while(this.treeStack.head!=null){var ex=this.treeStack.pop_unsafe();var eE=ex.aabb;if(eE.minx>=en.minx&&eE.miny>=en.miny&&eE.maxx<=en.maxx&&eE.maxy<=en.maxy){if(ex.child1==null){var eJ;if(ez!=null){var ed=ex.shape.filter;if((ed.collisionMask&ez.collisionGroup)!=0){eJ=(ez.collisionMask&ed.collisionGroup)!=0}else{eJ=false}}else{eJ=true}if(eJ){var et=ex.shape.body.outer;if(!ey.has(et)){ey.push(et)}}}else{if(this.treeStack2==null){this.treeStack2=new ai()}this.treeStack2.add(ex);while(this.treeStack2.head!=null){var es=this.treeStack2.pop_unsafe();if(es.child1==null){var eQ;if(ez!=null){var eI=es.shape.filter;if((eI.collisionMask&ez.collisionGroup)!=0){eQ=(ez.collisionMask&eI.collisionGroup)!=0}else{eQ=false}}else{eQ=true}if(eQ){var ei=es.shape.body.outer;if(!ey.has(ei)){ey.push(ei)}}}else{if(es.child1!=null){this.treeStack2.add(es.child1)}if(es.child2!=null){this.treeStack2.add(es.child2)}}}}}else{var eH=ex.aabb;if(en.miny<=eH.maxy&&eH.miny<=en.maxy&&en.minx<=eH.maxx&&eH.minx<=en.maxx){if(ex.child1==null){var eh=ex.shape.body.outer;var eP;if(ez!=null){var eG=ex.shape.filter;if((eG.collisionMask&ez.collisionGroup)!=0){eP=(ez.collisionMask&eG.collisionGroup)!=0}else{eP=false}}else{eP=true}if(eP){if(eB){if(eu){if(!this.failed.has(eh)){var ej=b7.containTest(this.aabbShape.zpp_inner,ex.shape);if(!ey.has(eh)&&ej){ey.push(eh)}else{if(!ej){ey.remove(eh);this.failed.push(eh)}}}}else{if(!ey.has(eh)&&b7.testCollide_safe(ex.shape,this.aabbShape.zpp_inner)){ey.push(eh)}}}else{if(eu){if(!this.failed.has(eh)){var ep=ex.shape.aabb;var ec=ep.minx>=en.minx&&ep.miny>=en.miny&&ep.maxx<=en.maxx&&ep.maxy<=en.maxy;if(!ey.has(eh)&&ec){ey.push(eh)}else{if(!ec){ey.remove(eh);this.failed.push(eh)}}}}else{var eO;if(!ey.has(eh)){var eo=ex.shape.aabb;if(eo.minx>=en.minx&&eo.miny>=en.miny&&eo.maxx<=en.maxx){eO=eo.maxy<=en.maxy}else{eO=false}}else{eO=false}if(eO){ey.push(eh)}}}}}else{if(ex.child1!=null){this.treeStack.add(ex.child1)}if(ex.child2!=null){this.treeStack.add(ex.child2)}}}}}}if(this.dtree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.dtree.root);while(this.treeStack.head!=null){var er=this.treeStack.pop_unsafe();var em=er.aabb;if(em.minx>=en.minx&&em.miny>=en.miny&&em.maxx<=en.maxx&&em.maxy<=en.maxy){if(er.child1==null){var eN;if(ez!=null){var eF=er.shape.filter;if((eF.collisionMask&ez.collisionGroup)!=0){eN=(ez.collisionMask&eF.collisionGroup)!=0}else{eN=false}}else{eN=true}if(eN){var eg=er.shape.body.outer;if(!ey.has(eg)){ey.push(eg)}}}else{if(this.treeStack2==null){this.treeStack2=new ai()}this.treeStack2.add(er);while(this.treeStack2.head!=null){var eq=this.treeStack2.pop_unsafe();if(eq.child1==null){var eM;if(ez!=null){var eD=eq.shape.filter;if((eD.collisionMask&ez.collisionGroup)!=0){eM=(ez.collisionMask&eD.collisionGroup)!=0}else{eM=false}}else{eM=true}if(eM){var ef=eq.shape.body.outer;if(!ey.has(ef)){ey.push(ef)}}}else{if(eq.child1!=null){this.treeStack2.add(eq.child1)}if(eq.child2!=null){this.treeStack2.add(eq.child2)}}}}}else{var eC=er.aabb;if(en.miny<=eC.maxy&&eC.miny<=en.maxy&&en.minx<=eC.maxx&&eC.minx<=en.maxx){if(er.child1==null){var ee=er.shape.body.outer;var eL;if(ez!=null){var eA=er.shape.filter;if((eA.collisionMask&ez.collisionGroup)!=0){eL=(ez.collisionMask&eA.collisionGroup)!=0}else{eL=false}}else{eL=true}if(eL){if(eB){if(eu){if(!this.failed.has(ee)){var eb=b7.containTest(this.aabbShape.zpp_inner,er.shape);if(!ey.has(ee)&&eb){ey.push(ee)}else{if(!eb){ey.remove(ee);this.failed.push(ee)}}}}else{if(!ey.has(ee)&&b7.testCollide_safe(er.shape,this.aabbShape.zpp_inner)){ey.push(ee)}}}else{if(eu){if(!this.failed.has(ee)){var el=er.shape.aabb;var ea=el.minx>=en.minx&&el.miny>=en.miny&&el.maxx<=en.maxx&&el.maxy<=en.maxy;if(!ey.has(ee)&&ea){ey.push(ee)}else{if(!ea){ey.remove(ee);this.failed.push(ee)}}}}else{var eK;if(!ey.has(ee)){var ek=er.shape.aabb;if(ek.minx>=en.minx&&ek.miny>=en.miny&&ek.maxx<=en.maxx){eK=ek.maxy<=en.maxy}else{eK=false}}else{eK=false}if(eK){ey.push(ee)}}}}}else{if(er.child1!=null){this.treeStack.add(er.child1)}if(er.child2!=null){this.treeStack.add(er.child2)}}}}}}this.failed.clear();return ey};cT.prototype.shapesInCircle=function(en,em,eb,ea,ec,ed){this.sync_broadphase();this.updateCircShape(en,em,eb);var ep=this.circShape.zpp_inner.aabb;var ek=ed==null?new cZ():ed;if(this.stree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.stree.root);while(this.treeStack.head!=null){var ee=this.treeStack.pop_unsafe();var ei=ee.aabb;if(ep.miny<=ei.maxy&&ei.miny<=ep.maxy&&ep.minx<=ei.maxx&&ei.minx<=ep.maxx){if(ee.child1==null){var eg;if(ec!=null){var el=ee.shape.filter;if((el.collisionMask&ec.collisionGroup)!=0){eg=(ec.collisionMask&el.collisionGroup)!=0}else{eg=false}}else{eg=true}if(eg){if(ea){if(b7.containTest(this.circShape.zpp_inner,ee.shape)){ek.push(ee.shape.outer)}}else{if(b7.testCollide_safe(ee.shape,this.circShape.zpp_inner)){ek.push(ee.shape.outer)}}}}else{if(ee.child1!=null){this.treeStack.add(ee.child1)}if(ee.child2!=null){this.treeStack.add(ee.child2)}}}}}if(this.dtree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.dtree.root);while(this.treeStack.head!=null){var eo=this.treeStack.pop_unsafe();var ej=eo.aabb;if(ep.miny<=ej.maxy&&ej.miny<=ep.maxy&&ep.minx<=ej.maxx&&ej.minx<=ep.maxx){if(eo.child1==null){var ef;if(ec!=null){var eh=eo.shape.filter;if((eh.collisionMask&ec.collisionGroup)!=0){ef=(ec.collisionMask&eh.collisionGroup)!=0}else{ef=false}}else{ef=true}if(ef){if(ea){if(b7.containTest(this.circShape.zpp_inner,eo.shape)){ek.push(eo.shape.outer)}}else{if(b7.testCollide_safe(eo.shape,this.circShape.zpp_inner)){ek.push(eo.shape.outer)}}}}else{if(eo.child1!=null){this.treeStack.add(eo.child1)}if(eo.child2!=null){this.treeStack.add(eo.child2)}}}}}return ek};cT.prototype.bodiesInCircle=function(ee,ed,ei,eq,eg,ec){this.sync_broadphase();this.updateCircShape(ee,ed,ei);var es=this.circShape.zpp_inner.aabb;var et=ec==null?new a5():ec;if(this.failed==null){this.failed=new a5()}if(this.stree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.stree.root);while(this.treeStack.head!=null){var ek=this.treeStack.pop_unsafe();var el=ek.aabb;if(es.miny<=el.maxy&&el.miny<=es.maxy&&es.minx<=el.maxx&&el.minx<=es.maxx){if(ek.child1==null){var ef=ek.shape.body.outer;var er;if(eg!=null){var eo=ek.shape.filter;if((eo.collisionMask&eg.collisionGroup)!=0){er=(eg.collisionMask&eo.collisionGroup)!=0}else{er=false}}else{er=true}if(er){if(eq){if(!this.failed.has(ef)){var eb=b7.containTest(this.circShape.zpp_inner,ek.shape);if(!et.has(ef)&&eb){et.push(ef)}else{if(!eb){et.remove(ef);this.failed.push(ef)}}}}else{if(!et.has(ef)&&b7.testCollide_safe(ek.shape,this.circShape.zpp_inner)){et.push(ef)}}}}else{if(ek.child1!=null){this.treeStack.add(ek.child1)}if(ek.child2!=null){this.treeStack.add(ek.child2)}}}}}if(this.dtree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.dtree.root);while(this.treeStack.head!=null){var ea=this.treeStack.pop_unsafe();var en=ea.aabb;if(es.miny<=en.maxy&&en.miny<=es.maxy&&es.minx<=en.maxx&&en.minx<=es.maxx){if(ea.child1==null){var eh=ea.shape.body.outer;var ej;if(eg!=null){var em=ea.shape.filter;if((em.collisionMask&eg.collisionGroup)!=0){ej=(eg.collisionMask&em.collisionGroup)!=0}else{ej=false}}else{ej=true}if(ej){if(eq){if(!this.failed.has(eh)){var ep=b7.containTest(this.circShape.zpp_inner,ea.shape);if(!et.has(eh)&&ep){et.push(eh)}else{if(!ep){et.remove(eh);this.failed.push(eh)}}}}else{if(!et.has(eh)&&b7.testCollide_safe(ea.shape,this.circShape.zpp_inner)){et.push(eh)}}}}else{if(ea.child1!=null){this.treeStack.add(ea.child1)}if(ea.child2!=null){this.treeStack.add(ea.child2)}}}}}this.failed.clear();return et};cT.prototype.shapesInShape=function(em,ea,eb,ec){this.sync_broadphase();this.validateShape(em);var en=em.aabb;var ej=ec==null?new cZ():ec;if(this.stree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.stree.root);while(this.treeStack.head!=null){var ed=this.treeStack.pop_unsafe();var eh=ed.aabb;if(en.miny<=eh.maxy&&eh.miny<=en.maxy&&en.minx<=eh.maxx&&eh.minx<=en.maxx){if(ed.child1==null){var ef;if(eb!=null){var ek=ed.shape.filter;if((ek.collisionMask&eb.collisionGroup)!=0){ef=(eb.collisionMask&ek.collisionGroup)!=0}else{ef=false}}else{ef=true}if(ef){if(ea){if(b7.containTest(em,ed.shape)){ej.push(ed.shape.outer)}}else{if(b7.testCollide_safe(ed.shape,em)){ej.push(ed.shape.outer)}}}}else{if(ed.child1!=null){this.treeStack.add(ed.child1)}if(ed.child2!=null){this.treeStack.add(ed.child2)}}}}}if(this.dtree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.dtree.root);while(this.treeStack.head!=null){var el=this.treeStack.pop_unsafe();var ei=el.aabb;if(en.miny<=ei.maxy&&ei.miny<=en.maxy&&en.minx<=ei.maxx&&ei.minx<=en.maxx){if(el.child1==null){var ee;if(eb!=null){var eg=el.shape.filter;if((eg.collisionMask&eb.collisionGroup)!=0){ee=(eb.collisionMask&eg.collisionGroup)!=0}else{ee=false}}else{ee=true}if(ee){if(ea){if(b7.containTest(em,el.shape)){ej.push(el.shape.outer)}}else{if(b7.testCollide_safe(el.shape,em)){ej.push(el.shape.outer)}}}}else{if(el.child1!=null){this.treeStack.add(el.child1)}if(el.child2!=null){this.treeStack.add(el.child2)}}}}}return ej};cT.prototype.bodiesInShape=function(eg,eo,ee,ec){this.sync_broadphase();this.validateShape(eg);var eq=eg.aabb;var er=ec==null?new a5():ec;if(this.failed==null){this.failed=new a5()}if(this.stree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.stree.root);while(this.treeStack.head!=null){var ei=this.treeStack.pop_unsafe();var ej=ei.aabb;if(eq.miny<=ej.maxy&&ej.miny<=eq.maxy&&eq.minx<=ej.maxx&&ej.minx<=eq.maxx){if(ei.child1==null){var ed=ei.shape.body.outer;var ep;if(ee!=null){var em=ei.shape.filter;if((em.collisionMask&ee.collisionGroup)!=0){ep=(ee.collisionMask&em.collisionGroup)!=0}else{ep=false}}else{ep=true}if(ep){if(eo){if(!this.failed.has(ed)){var eb=b7.containTest(eg,ei.shape);if(!er.has(ed)&&eb){er.push(ed)}else{if(!eb){er.remove(ed);this.failed.push(ed)}}}}else{if(!er.has(ed)&&b7.testCollide_safe(ei.shape,eg)){er.push(ed)}}}}else{if(ei.child1!=null){this.treeStack.add(ei.child1)}if(ei.child2!=null){this.treeStack.add(ei.child2)}}}}}if(this.dtree.root!=null){if(this.treeStack==null){this.treeStack=new ai()}this.treeStack.add(this.dtree.root);while(this.treeStack.head!=null){var ea=this.treeStack.pop_unsafe();var el=ea.aabb;if(eq.miny<=el.maxy&&el.miny<=eq.maxy&&eq.minx<=el.maxx&&el.minx<=eq.maxx){if(ea.child1==null){var ef=ea.shape.body.outer;var eh;if(ee!=null){var ek=ea.shape.filter;if((ek.collisionMask&ee.collisionGroup)!=0){eh=(ee.collisionMask&ek.collisionGroup)!=0}else{eh=false}}else{eh=true}if(eh){if(eo){if(!this.failed.has(ef)){var en=b7.containTest(eg,ea.shape);if(!er.has(ef)&&en){er.push(ef)}else{if(!en){er.remove(ef);this.failed.push(ef)}}}}else{if(!er.has(ef)&&b7.testCollide_safe(ea.shape,eg)){er.push(ef)}}}}else{if(ea.child1!=null){this.treeStack.add(ea.child1)}if(ea.child2!=null){this.treeStack.add(ea.child2)}}}}}this.failed.clear();return er};cT.prototype.openlist=null;cT.prototype.rayCast=function(en,eF,em){if(this.openlist==null){this.openlist=new ai()}this.sync_broadphase();en.validate_dir();var eh=en.maxdist;if(this.dtree.root!=null){if(en.aabbtest(this.dtree.root.aabb)){var eo=en.aabbsect(this.dtree.root.aabb);if(eo>=0&&eo<eh){this.dtree.root.rayt=eo;var es=null;var eu=this.openlist.head;while(eu!=null){if(this.dtree.root.rayt<eu.elt.rayt){break}es=eu;eu=eu.next}var ev=this.openlist;var eG;if(d2.zpp_pool==null){eG=new d2()}else{eG=d2.zpp_pool;d2.zpp_pool=eG.next;eG.next=null}eG.elt=this.dtree.root;var eB=eG;if(es==null){eB.next=ev.head;ev.head=eB}else{eB.next=es.next;es.next=eB}ev.pushmod=ev.modified=true;ev.length++}}}if(this.stree.root!=null){if(en.aabbtest(this.stree.root.aabb)){var ek=en.aabbsect(this.stree.root.aabb);if(ek>=0&&ek<eh){this.stree.root.rayt=ek;var ed=null;var et=this.openlist.head;while(et!=null){if(this.stree.root.rayt<et.elt.rayt){break}ed=et;et=et.next}var eA=this.openlist;var eg;if(d2.zpp_pool==null){eg=new d2()}else{eg=d2.zpp_pool;d2.zpp_pool=eg.next;eg.next=null}eg.elt=this.stree.root;var eH=eg;if(ed==null){eH.next=eA.head;eA.head=eH}else{eH.next=ed.next;ed.next=eH}eA.pushmod=eA.modified=true;eA.length++}}}var ep=null;while(this.openlist.head!=null){var ex=this.openlist.pop_unsafe();if(ex.rayt>=eh){break}if(ex.child1==null){var ec=ex.shape;var eC;if(em!=null){var ez=ec.filter;if((ez.collisionMask&em.collisionGroup)!=0){eC=(em.collisionMask&ez.collisionGroup)!=0}else{eC=false}}else{eC=true}if(eC){var el=ec.type==0?en.circlesect(ec.circle,eF,eh):en.aabbtest(ec.aabb)?en.polysect(ec.polygon,eF,eh):null;if(el!=null){eh=el.zpp_inner.toiDistance;if(ep!=null){ep.zpp_inner.free()}ep=el}}}else{if(ex.child1!=null){if(en.aabbtest(ex.child1.aabb)){var ej=en.aabbsect(ex.child1.aabb);if(ej>=0&&ej<eh){ex.child1.rayt=ej;var eb=null;var er=this.openlist.head;while(er!=null){if(ex.child1.rayt<er.elt.rayt){break}eb=er;er=er.next}var ey=this.openlist;var ef;if(d2.zpp_pool==null){ef=new d2()}else{ef=d2.zpp_pool;d2.zpp_pool=ef.next;ef.next=null}ef.elt=ex.child1;var eE=ef;if(eb==null){eE.next=ey.head;ey.head=eE}else{eE.next=eb.next;eb.next=eE}ey.pushmod=ey.modified=true;ey.length++}}}if(ex.child2!=null){if(en.aabbtest(ex.child2.aabb)){var ei=en.aabbsect(ex.child2.aabb);if(ei>=0&&ei<eh){ex.child2.rayt=ei;var ea=null;var eq=this.openlist.head;while(eq!=null){if(ex.child2.rayt<eq.elt.rayt){break}ea=eq;eq=eq.next}var ew=this.openlist;var ee;if(d2.zpp_pool==null){ee=new d2()}else{ee=d2.zpp_pool;d2.zpp_pool=ee.next;ee.next=null}ee.elt=ex.child2;var eD=ee;if(ea==null){eD.next=ew.head;ew.head=eD}else{eD.next=ea.next;ea.next=eD}ew.pushmod=ew.modified=true;ew.length++}}}}}this.openlist.clear();return ep};cT.prototype.rayMultiCast=function(el,en,ea,ec){if(this.openlist==null){this.openlist=new ai()}this.sync_broadphase();el.validate_dir();var eb=el.maxdist>=Infinity;var ej=ec==null?new aa():ec;if(this.dtree.root!=null){if(el.aabbtest(this.dtree.root.aabb)){if(eb){this.openlist.add(this.dtree.root)}else{var em=el.aabbsect(this.dtree.root.aabb);if(em>=0&&em<el.maxdist){this.openlist.add(this.dtree.root)}}}}if(this.stree.root!=null){if(el.aabbtest(this.stree.root.aabb)){if(eb){this.openlist.add(this.stree.root)}else{var eg=el.aabbsect(this.stree.root.aabb);if(eg>=0&&eg<el.maxdist){this.openlist.add(this.stree.root)}}}}while(this.openlist.head!=null){var ek=this.openlist.pop_unsafe();if(ek.child1==null){var ei=ek.shape;var ee;if(ea!=null){var eh=ei.filter;if((eh.collisionMask&ea.collisionGroup)!=0){ee=(ea.collisionMask&eh.collisionGroup)!=0}else{ee=false}}else{ee=true}if(ee){if(ei.type==0){el.circlesect2(ei.circle,en,ej)}else{if(el.aabbtest(ei.aabb)){el.polysect2(ei.polygon,en,ej)}}}}else{if(ek.child1!=null){if(el.aabbtest(ek.child1.aabb)){if(eb){this.openlist.add(ek.child1)}else{var ef=el.aabbsect(ek.child1.aabb);if(ef>=0&&ef<el.maxdist){this.openlist.add(ek.child1)}}}}if(ek.child2!=null){if(el.aabbtest(ek.child2.aabb)){if(eb){this.openlist.add(ek.child2)}else{var ed=el.aabbsect(ek.child2.aabb);if(ed>=0&&ed<el.maxdist){this.openlist.add(ek.child2)}}}}}}this.openlist.clear();return ej};cT.prototype.__class__=cT;var cW=zpp_nape.space.ZPP_Island=function(){this.waket=0;this.sleep=false;this.comps=null;this.length=0;this.pushmod=false;this.modified=false;this._inuse=false;this.next=null;this.comps=new bN()};cW.__name__=["zpp_nape","space","ZPP_Island"];cW.prototype.next=null;cW.prototype.elem=function(){return this};cW.prototype.begin=function(){return this.next};cW.prototype._inuse=null;cW.prototype.modified=null;cW.prototype.pushmod=null;cW.prototype.length=null;cW.prototype.setbegin=function(ea){this.next=ea;this.modified=true;this.pushmod=true};cW.prototype.add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};cW.prototype.inlined_add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};cW.prototype.addAll=function(ea){var eb=ea.next;while(eb!=null){this.add(eb);eb=eb.next}};cW.prototype.insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cW.prototype.inlined_insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cW.prototype.pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};cW.prototype.inlined_pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};cW.prototype.pop_unsafe=function(){var ea=this.next;this.pop();return ea};cW.prototype.inlined_pop_unsafe=function(){var ea=this.next;this.pop();return ea};cW.prototype.remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};cW.prototype.try_remove=function(ec){var eb=null;var ed=this.next;var ea=false;while(ed!=null){if(ed==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};cW.prototype.inlined_remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};cW.prototype.inlined_try_remove=function(ee){var ed=null;var ef=this.next;var eb=false;while(ef!=null){if(ef==ee){var ea;var ec;if(ed==null){ea=this.next;ec=ea.next;this.next=ec;if(this.next==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=ef;ef=ef.next}return eb};cW.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};cW.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};cW.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};cW.prototype.clear=function(){};cW.prototype.inlined_clear=function(){};cW.prototype.reverse=function(){var ec=this.next;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.next=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};cW.prototype.empty=function(){return this.next==null};cW.prototype.size=function(){return this.length};cW.prototype.has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};cW.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};cW.prototype.front=function(){return this.next};cW.prototype.back=function(){var ea=this.next;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea};cW.prototype.iterator_at=function(eb){var ea=this.next;while(eb-->0&&ea!=null){ea=ea.next}return ea};cW.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea}else{return null}};cW.prototype.comps=null;cW.prototype.sleep=null;cW.prototype.waket=null;cW.prototype.free=function(){};cW.prototype.alloc=function(){this.waket=0};cW.prototype.__class__=cW;var bx=zpp_nape.space.ZPP_Component=function(){this.woken=false;this.waket=0;this.sleeping=false;this.island=null;this.constraint=null;this.body=null;this.isBody=false;this.rank=0;this.parent=null;this.next=null;this.sleeping=false;this.island=null;this.parent=this;this.rank=0;this.woken=false};bx.__name__=["zpp_nape","space","ZPP_Component"];bx.prototype.next=null;bx.prototype.parent=null;bx.prototype.rank=null;bx.prototype.isBody=null;bx.prototype.body=null;bx.prototype.constraint=null;bx.prototype.island=null;bx.prototype.sleeping=null;bx.prototype.waket=null;bx.prototype.woken=null;bx.prototype.free=function(){this.body=null;this.constraint=null};bx.prototype.alloc=function(){};bx.prototype.reset=function(){this.sleeping=false;this.island=null;this.parent=this;this.rank=0};bx.prototype.__class__=bx;var cg=zpp_nape.space.ZPP_CallbackSet=function(){this.lazydel=false;this.freed=false;this.length=0;this.pushmod=false;this.modified=false;this._inuse=false;this.next=null;this.int2=null;this.int1=null;this.di=0;this.id=0;this.arbiters=new h()};cg.__name__=["zpp_nape","space","ZPP_CallbackSet"];cg.get=function(ec,eb){var ea;if(cg.zpp_pool==null){ea=new cg()}else{ea=cg.zpp_pool;cg.zpp_pool=ea.next;ea.next=null}ea.freed=false;ea.lazydel=false;ea.COLLISIONstate=1;ea.COLLISIONstamp=0;ea.SENSORstate=1;ea.SENSORstamp=0;ea.FLUIDstate=1;ea.FLUIDstamp=0;if(ec.id<eb.id){ea.int1=ec;ea.int2=eb}else{ea.int1=eb;ea.int2=ec}ea.id=ea.int1.id;ea.di=ea.int2.id;return ea};cg.prototype.id=null;cg.prototype.di=null;cg.prototype.int1=null;cg.prototype.int2=null;cg.prototype.arbiters=null;cg.prototype.COLLISIONstate=null;cg.prototype.COLLISIONstamp=null;cg.prototype.SENSORstate=null;cg.prototype.SENSORstamp=null;cg.prototype.FLUIDstate=null;cg.prototype.FLUIDstamp=null;cg.prototype.next=null;cg.prototype.elem=function(){return this};cg.prototype.begin=function(){return this.next};cg.prototype._inuse=null;cg.prototype.modified=null;cg.prototype.pushmod=null;cg.prototype.length=null;cg.prototype.setbegin=function(ea){this.next=ea;this.modified=true;this.pushmod=true};cg.prototype.add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};cg.prototype.inlined_add=function(ea){ea._inuse=true;ea.next=this.next;this.next=ea;this.modified=true;this.length++;return ea};cg.prototype.addAll=function(ea){var eb=ea.next;while(eb!=null){this.add(eb);eb=eb.next}};cg.prototype.insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cg.prototype.inlined_insert=function(eb,ea){ea._inuse=true;if(eb==null){ea.next=this.next;this.next=ea}else{ea.next=eb.next;eb.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cg.prototype.pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};cg.prototype.inlined_pop=function(){var ea=this.next;this.next=ea.next;ea._inuse=false;if(this.next==null){this.pushmod=true}this.modified=true;this.length--};cg.prototype.pop_unsafe=function(){var ea=this.next;this.pop();return ea};cg.prototype.inlined_pop_unsafe=function(){var ea=this.next;this.pop();return ea};cg.prototype.remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};cg.prototype.try_remove=function(ec){var eb=null;var ed=this.next;var ea=false;while(ed!=null){if(ed==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};cg.prototype.inlined_remove=function(ed){var ec=null;var ee=this.next;while(ee!=null){if(ee==ed){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;break}ec=ee;ee=ee.next}};cg.prototype.inlined_try_remove=function(ee){var ed=null;var ef=this.next;var eb=false;while(ef!=null){if(ef==ee){var ea;var ec;if(ed==null){ea=this.next;ec=ea.next;this.next=ec;if(this.next==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=ef;ef=ef.next}return eb};cg.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};cg.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.next;eb=ea.next;this.next=eb;if(this.next==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}ea._inuse=false;this.modified=true;this.length--;this.pushmod=true;return eb};cg.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};cg.prototype.clear=function(){};cg.prototype.inlined_clear=function(){};cg.prototype.reverse=function(){var ec=this.next;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.next=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};cg.prototype.empty=function(){return this.next==null};cg.prototype.size=function(){return this.length};cg.prototype.has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};cg.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.next;while(eb!=null){if(eb==ec){ea=true;break}eb=eb.next}return ea};cg.prototype.front=function(){return this.next};cg.prototype.back=function(){var ea=this.next;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea};cg.prototype.iterator_at=function(eb){var ea=this.next;while(eb-->0&&ea!=null){ea=ea.next}return ea};cg.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea}else{return null}};cg.prototype.freed=null;cg.prototype.lazydel=null;cg.prototype.free=function(){this.int1=this.int2=null;this.id=this.di=-1;this.freed=true};cg.prototype.alloc=function(){this.freed=false;this.lazydel=false;this.COLLISIONstate=1;this.COLLISIONstamp=0;this.SENSORstate=1;this.SENSORstamp=0;this.FLUIDstate=1;this.FLUIDstamp=0};cg.prototype.add_arb=function(ea){var ec;ec=false;var ed=this.arbiters.head;while(ed!=null){if(ed.elt==ea){ec=true;break}ed=ed.next}if(!ec){var ef=this.arbiters;var ee;if(dL.zpp_pool==null){ee=new dL()}else{ee=dL.zpp_pool;dL.zpp_pool=ee.next;ee.next=null}ee.elt=ea;var eb=ee;eb.next=ef.head;ef.head=eb;ef.modified=true;ef.length++;return true}else{return false}};cg.prototype.try_remove_arb=function(ea){var eh=this.arbiters;var ee=null;var eg=eh.head;var ec=false;while(eg!=null){if(eg.elt==ea){var eb;var ed;if(ee==null){eb=eh.head;ed=eb.next;eh.head=ed;if(eh.head==null){eh.pushmod=true}}else{eb=ee.next;ed=eb.next;ee.next=ed;if(ed==null){eh.pushmod=true}}var ef=eb;ef.elt=null;ef.next=dL.zpp_pool;dL.zpp_pool=ef;eh.modified=true;eh.length--;eh.pushmod=true;ec=true;break}ee=eg;eg=eg.next}return ec};cg.prototype.remove_arb=function(ea){var eg=this.arbiters;var ed=null;var ef=eg.head;while(ef!=null){if(ef.elt==ea){var eb;var ec;if(ed==null){eb=eg.head;ec=eb.next;eg.head=ec;if(eg.head==null){eg.pushmod=true}}else{eb=ed.next;ec=eb.next;ed.next=ec;if(ec==null){eg.pushmod=true}}var ee=eb;ee.elt=null;ee.next=dL.zpp_pool;dL.zpp_pool=ee;eg.modified=true;eg.length--;eg.pushmod=true;break}ed=ef;ef=ef.next}};cg.prototype.empty_arb=function(eb){var ec;ec=true;var ea=this.arbiters.head;while(ea!=null){if((ea.elt.type&eb)==0){ea=ea.next;continue}else{ec=false;break}}return ec};cg.prototype.really_empty=function(){return this.arbiters.head==null};cg.prototype.sleeping=function(){var ea;ea=true;var eb=this.arbiters.head;while(eb!=null){if(eb.elt.sleeping){eb=eb.next;continue}else{ea=false;break}}return ea};cg.prototype.__class__=cg;var M=zpp_nape.space.ZPP_CbSetManager=function(ea){this.space=null;this.cbsets=null;if(dT.zpp_pool==null){this.cbsets=new dT()}else{this.cbsets=dT.zpp_pool;dT.zpp_pool=this.cbsets.next;this.cbsets.next=null}this.cbsets.lt=cC.setlt;this.space=ea};M.__name__=["zpp_nape","space","ZPP_CbSetManager"];M.prototype.cbsets=null;M.prototype.space=null;M.prototype.get=function(ee){if(ee.head==null){return null}var ea;if(cC.zpp_pool==null){ea=new cC()}else{ea=cC.zpp_pool;cC.zpp_pool=ea.next;ea.next=null}var eb=ea.cbTypes;ea.cbTypes=ee;var ed=this.cbsets.find_weak(ea);var ec;if(ed!=null){ec=ed.data}else{var eg=cC.get(ee);this.cbsets.insert(eg);eg.manager=this;ec=eg}ea.cbTypes=eb;var ef=ea;ef.listeners.clear();ef.zip_listeners=true;ef.bodylisteners.clear();ef.zip_bodylisteners=true;ef.conlisteners.clear();ef.zip_conlisteners=true;while(ef.cbTypes.head!=null){ef.cbTypes.pop_unsafe().cbsets.remove(ef)}ef.next=cC.zpp_pool;cC.zpp_pool=ef;return ec};M.prototype.remove=function(eb){this.cbsets.remove(eb);while(eb.cbpairs.head!=null){var ea=eb.cbpairs.pop_unsafe();if(ea.a!=ea.b){if(eb==ea.a){ea.b.cbpairs.remove(ea)}else{ea.a.cbpairs.remove(ea)}}ea.a=ea.b=null;ea.listeners.clear();ea.next=ar.zpp_pool;ar.zpp_pool=ea}eb.manager=null};M.prototype.clear=function(){};M.prototype.validate=function(){if(!this.cbsets.empty()){var ea=this.cbsets.parent;while(ea.prev!=null){ea=ea.prev}while(ea!=null){ea.data.validate();if(ea.next!=null){ea=ea.next;while(ea.prev!=null){ea=ea.prev}}else{while(ea.parent!=null&&ea==ea.parent.next){ea=ea.parent}ea=ea.parent}}}};M.prototype.pair=function(eb,ea){var ec=null;var ed=(eb.cbpairs.length<ea.cbpairs.length?eb.cbpairs:ea.cbpairs).head;while(ed!=null){var ef=ed.elt;if(ef.a==eb&&ef.b==ea||ef.a==ea&&ef.b==eb){ec=ef;break}ed=ed.next}if(ec==null){var ee;if(ar.zpp_pool==null){ee=new ar()}else{ee=ar.zpp_pool;ar.zpp_pool=ee.next;ee.next=null}ee.zip_listeners=true;if(cC.setlt(eb,ea)){ee.a=eb;ee.b=ea}else{ee.a=ea;ee.b=eb}ec=ee;eb.cbpairs.add(ec);if(ea!=eb){ea.cbpairs.add(ec)}}if(ec.zip_listeners){ec.zip_listeners=false;ec.__validate()}return ec};M.prototype.valid_listener=function(ea){return ea.space==this.space};M.prototype.__class__=M;var a3=zpp_nape.space.ZPP_Space=function(ec,eb){this.prelisteners=null;this.precb=null;this.continuous=false;this.toiEvents=null;this.pre_dt=0;this.convexShapeList=null;this.cbsets=null;this.callbackset_list=null;this.callbacks=null;this.wrap_listeners=null;this.listeners=null;this.islands=null;this.staticsleep=null;this.wrap_livecon=null;this.live_constraints=null;this.wrap_live=null;this.live=null;this.wrap_arbiters=null;this.s_arbiters=null;this.f_arbiters=null;this.c_arbiters_false=null;this.c_arbiters_true=null;this.sortcontacts=false;this.time=0;this.midstep=false;this.stamp=0;this.global_ang_drag=0;this.global_lin_drag=0;this.__static=null;this.bphase=null;this.kinematics=null;this.wrap_constraints=null;this.constraints=null;this.wrap_compounds=null;this.compounds=null;this.wrap_bodies=null;this.bodies=null;this.wrap_gravity=null;this.gravityy=0;this.gravityx=0;this.userData=null;this.outer=null;this.toiEvents=new d4();this.global_lin_drag=0.015;this.global_ang_drag=0.015;this.precb=new a9();this.precb.zpp_inner=new cS();this.sortcontacts=true;this.pre_dt=0;var ea;if(eb!=null){if(br.Broadphase_DYNAMIC_AABB_TREE==null){br.internal=true;br.Broadphase_DYNAMIC_AABB_TREE=new aQ();br.internal=false}ea=eb==br.Broadphase_DYNAMIC_AABB_TREE}else{ea=true}if(ea){this.bphase=new cT(this)}else{if(br.Broadphase_SWEEP_AND_PRUNE==null){br.internal=true;br.Broadphase_SWEEP_AND_PRUNE=new aQ();br.internal=false}if(eb==br.Broadphase_SWEEP_AND_PRUNE){this.bphase=new c6(this)}}this.time=0;if(ec!=null){this.gravityx=ec.x;this.gravityy=ec.y}else{this.gravityx=0;this.gravityy=0}this.bodies=new bs();this.wrap_bodies=b0.get(this.bodies);this.wrap_bodies.zpp_inner.adder=dX(this,this.bodies_adder);this.wrap_bodies.zpp_inner.subber=dX(this,this.bodies_subber);this.compounds=new n();this.wrap_compounds=bj.get(this.compounds);this.wrap_compounds.zpp_inner.adder=dX(this,this.compounds_adder);this.wrap_compounds.zpp_inner.subber=dX(this,this.compounds_subber);this.kinematics=new bs();this.c_arbiters_true=new bH();this.c_arbiters_false=new bH();this.f_arbiters=new c7();this.s_arbiters=new bd();this.islands=new cW();this.live=new bs();this.wrap_live=b0.get(this.live,true);this.staticsleep=new bs();this.constraints=new m();this.wrap_constraints=aZ.get(this.constraints);this.wrap_constraints.zpp_inner.adder=dX(this,this.constraints_adder);this.wrap_constraints.zpp_inner.subber=dX(this,this.constraints_subber);this.live_constraints=new m();this.wrap_livecon=aZ.get(this.live_constraints,true);this.__static=cj.__static();this.__static.zpp_inner.space=this;this.callbacks=new cS();this.midstep=false;this.listeners=new dP();this.wrap_listeners=a1.get(this.listeners);this.wrap_listeners.zpp_inner.adder=dX(this,this.listeners_adder);this.wrap_listeners.zpp_inner.subber=dX(this,this.listeners_subber);this.callbackset_list=new cg();this.mrca1=new bn();this.mrca2=new bn();this.prelisteners=new cp();this.cbsets=new M(this)};a3.__name__=["zpp_nape","space","ZPP_Space"];a3.prototype.outer=null;a3.prototype.userData=null;a3.prototype.gravityx=null;a3.prototype.gravityy=null;a3.prototype.wrap_gravity=null;a3.prototype.getgravity=function(){var ea=this.gravityx;var eh=this.gravityy;var eb;if(au.poolVec2==null){eb=new r()}else{eb=au.poolVec2;au.poolVec2=eb.zpp_pool;eb.zpp_pool=null}if(eb.zpp_inner==null){var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ea;ef.y=eh;eb.zpp_inner=ef;eb.zpp_inner.outer=eb}else{var ec;var eg=eb.zpp_inner;if(eg._validate!=null){eg._validate()}if(eb.zpp_inner.x==ea){var ee=eb.zpp_inner;if(ee._validate!=null){ee._validate()}ec=eb.zpp_inner.y==eh}else{ec=false}if(!ec){eb.zpp_inner.x=ea;eb.zpp_inner.y=eh;var ed=eb.zpp_inner;if(ed._invalidate!=null){ed._invalidate(ed)}}}eb.zpp_inner.weak=false;this.wrap_gravity=eb;this.wrap_gravity.zpp_inner._inuse=true;this.wrap_gravity.zpp_inner._invalidate=dX(this,this.gravity_invalidate);this.wrap_gravity.zpp_inner._validate=dX(this,this.gravity_validate)};a3.prototype.gravity_invalidate=function(eg){this.gravityx=eg.x;this.gravityy=eg.y;var ee=new n();var ec=this.bodies.head;while(ec!=null){var eb=ec.elt;if(!eb.world){eb.component.waket=this.stamp+(this.midstep?0:1);if(eb.type==3){eb.kinematicDelaySleep=true}if(eb.component.sleeping){this.really_wake(eb,false)}}ec=ec.next}var eh=this.compounds.head;while(eh!=null){ee.add(eh.elt);eh=eh.next}while(ee.head!=null){var ei=ee.pop_unsafe();var ef=ei.bodies.head;while(ef!=null){var ea=ef.elt;if(!ea.world){ea.component.waket=this.stamp+(this.midstep?0:1);if(ea.type==3){ea.kinematicDelaySleep=true}if(ea.component.sleeping){this.really_wake(ea,false)}}ef=ef.next}var ed=ei.compounds.head;while(ed!=null){ee.add(ed.elt);ed=ed.next}}};a3.prototype.gravity_validate=function(){this.wrap_gravity.zpp_inner.x=this.gravityx;this.wrap_gravity.zpp_inner.y=this.gravityy};a3.prototype.bodies=null;a3.prototype.wrap_bodies=null;a3.prototype.compounds=null;a3.prototype.wrap_compounds=null;a3.prototype.constraints=null;a3.prototype.wrap_constraints=null;a3.prototype.kinematics=null;a3.prototype.bphase=null;a3.prototype.__static=null;a3.prototype.global_lin_drag=null;a3.prototype.global_ang_drag=null;a3.prototype.stamp=null;a3.prototype.midstep=null;a3.prototype.time=null;a3.prototype.sortcontacts=null;a3.prototype.c_arbiters_true=null;a3.prototype.c_arbiters_false=null;a3.prototype.f_arbiters=null;a3.prototype.s_arbiters=null;a3.prototype.wrap_arbiters=null;a3.prototype.live=null;a3.prototype.wrap_live=null;a3.prototype.live_constraints=null;a3.prototype.wrap_livecon=null;a3.prototype.staticsleep=null;a3.prototype.islands=null;a3.prototype.listeners=null;a3.prototype.wrap_listeners=null;a3.prototype.callbacks=null;a3.prototype.callbackset_list=null;a3.prototype.cbsets=null;a3.prototype.clear=function(){while(this.listeners.head!=null){this.remListener(this.listeners.pop_unsafe())}while(this.callbackset_list.next!=null){var eE=this.callbackset_list.pop_unsafe();eE.arbiters.clear();eE.int1=eE.int2=null;eE.id=eE.di=-1;eE.freed=true;eE.next=cg.zpp_pool;cg.zpp_pool=eE}while(this.c_arbiters_true.head!=null){var fn=this.c_arbiters_true.pop_unsafe();if(!fn.cleared){var em=fn.b1.arbiters;var eC=null;var eo=em.head;while(eo!=null){if(eo.elt==fn){var eD;var ev;if(eC==null){eD=em.head;ev=eD.next;em.head=ev;if(em.head==null){em.pushmod=true}}else{eD=eC.next;ev=eD.next;eC.next=ev;if(ev==null){em.pushmod=true}}var et=eD;et.elt=null;et.next=dL.zpp_pool;dL.zpp_pool=et;em.modified=true;em.length--;em.pushmod=true;break}eC=eo;eo=eo.next}var eA=fn.b2.arbiters;var e5=null;var el=eA.head;while(el!=null){if(el.elt==fn){var ee;var fg;if(e5==null){ee=eA.head;fg=ee.next;eA.head=fg;if(eA.head==null){eA.pushmod=true}}else{ee=e5.next;fg=ee.next;e5.next=fg;if(fg==null){eA.pushmod=true}}var fh=ee;fh.elt=null;fh.next=dL.zpp_pool;dL.zpp_pool=fh;eA.modified=true;eA.length--;eA.pushmod=true;break}e5=el;el=el.next}if(fn.pair!=null){fn.pair.arb=null;fn.pair=null}}fn.b1=fn.b2=null;fn.active=false;fn.intchange=false;while(fn.contacts.next!=null){var ez=fn.contacts;var fe=ez.next;ez.pop();fe.arbiter=null;fe.next=c2.zpp_pool;c2.zpp_pool=fe;var ey=fn.innards;var fc=ey.next;ey.next=fc.next;fc._inuse=false;if(ey.next==null){ey.pushmod=true}ey.modified=true;ey.length--}fn.userdef_dyn_fric=false;fn.userdef_stat_fric=false;fn.userdef_restitution=false;fn.userdef_rfric=false;fn.__ref_edge1=fn.__ref_edge2=null;fn.next=d9.zpp_pool;d9.zpp_pool=fn;fn.pre_dt=-1}while(this.c_arbiters_false.head!=null){var fk=this.c_arbiters_false.pop_unsafe();if(!fk.cleared){var ex=fk.b1.arbiters;var e2=null;var ek=ex.head;while(ek!=null){if(ek.elt==fk){var ed;var fa;if(e2==null){ed=ex.head;fa=ed.next;ex.head=fa;if(ex.head==null){ex.pushmod=true}}else{ed=e2.next;fa=ed.next;e2.next=fa;if(fa==null){ex.pushmod=true}}var ff=ed;ff.elt=null;ff.next=dL.zpp_pool;dL.zpp_pool=ff;ex.modified=true;ex.length--;ex.pushmod=true;break}e2=ek;ek=ek.next}var ew=fk.b2.arbiters;var eZ=null;var ej=ew.head;while(ej!=null){if(ej.elt==fk){var ec;var e8;if(eZ==null){ec=ew.head;e8=ec.next;ew.head=e8;if(ew.head==null){ew.pushmod=true}}else{ec=eZ.next;e8=ec.next;eZ.next=e8;if(e8==null){ew.pushmod=true}}var fd=ec;fd.elt=null;fd.next=dL.zpp_pool;dL.zpp_pool=fd;ew.modified=true;ew.length--;ew.pushmod=true;break}eZ=ej;ej=ej.next}if(fk.pair!=null){fk.pair.arb=null;fk.pair=null}}fk.b1=fk.b2=null;fk.active=false;fk.intchange=false;while(fk.contacts.next!=null){var eu=fk.contacts;var e4=eu.next;eu.pop();e4.arbiter=null;e4.next=c2.zpp_pool;c2.zpp_pool=e4;var es=fk.innards;var e1=es.next;es.next=e1.next;e1._inuse=false;if(es.next==null){es.pushmod=true}es.modified=true;es.length--}fk.userdef_dyn_fric=false;fk.userdef_stat_fric=false;fk.userdef_restitution=false;fk.userdef_rfric=false;fk.__ref_edge1=fk.__ref_edge2=null;fk.next=d9.zpp_pool;d9.zpp_pool=fk;fk.pre_dt=-1}while(this.s_arbiters.head!=null){var fj=this.s_arbiters.pop_unsafe();if(!fj.cleared){var er=fj.b1.arbiters;var eW=null;var ei=er.head;while(ei!=null){if(ei.elt==fj){var eb;var eY;if(eW==null){eb=er.head;eY=eb.next;er.head=eY;if(er.head==null){er.pushmod=true}}else{eb=eW.next;eY=eb.next;eW.next=eY;if(eY==null){er.pushmod=true}}var fb=eb;fb.elt=null;fb.next=dL.zpp_pool;dL.zpp_pool=fb;er.modified=true;er.length--;er.pushmod=true;break}eW=ei;ei=ei.next}var eq=fj.b2.arbiters;var eT=null;var eh=eq.head;while(eh!=null){if(eh.elt==fj){var ea;var eU;if(eT==null){ea=eq.head;eU=ea.next;eq.head=eU;if(eq.head==null){eq.pushmod=true}}else{ea=eT.next;eU=ea.next;eT.next=eU;if(eU==null){eq.pushmod=true}}var e9=ea;e9.elt=null;e9.next=dL.zpp_pool;dL.zpp_pool=e9;eq.modified=true;eq.length--;eq.pushmod=true;break}eT=eh;eh=eh.next}if(fj.pair!=null){fj.pair.arb=null;fj.pair=null}}fj.b1=fj.b2=null;fj.active=false;fj.intchange=false;fj.next=A.zpp_pool;A.zpp_pool=fj}while(this.f_arbiters.head!=null){var fi=this.f_arbiters.pop_unsafe();if(!fi.cleared){var eH=fi.b1.arbiters;var eR=null;var eg=eH.head;while(eg!=null){if(eg.elt==fi){var fp;var ep;if(eR==null){fp=eH.head;ep=fp.next;eH.head=ep;if(eH.head==null){eH.pushmod=true}}else{fp=eR.next;ep=fp.next;eR.next=ep;if(ep==null){eH.pushmod=true}}var e7=fp;e7.elt=null;e7.next=dL.zpp_pool;dL.zpp_pool=e7;eH.modified=true;eH.length--;eH.pushmod=true;break}eR=eg;eg=eg.next}var eG=fi.b2.arbiters;var eP=null;var ef=eG.head;while(ef!=null){if(ef.elt==fi){var fo;var en;if(eP==null){fo=eG.head;en=fo.next;eG.head=en;if(eG.head==null){eG.pushmod=true}}else{fo=eP.next;en=fo.next;eP.next=en;if(en==null){eG.pushmod=true}}var e3=fo;e3.elt=null;e3.next=dL.zpp_pool;dL.zpp_pool=e3;eG.modified=true;eG.length--;eG.pushmod=true;break}eP=ef;ef=ef.next}if(fi.pair!=null){fi.pair.arb=null;fi.pair=null}}fi.b1=fi.b2=null;fi.active=false;fi.intchange=false;fi.next=dK.zpp_pool;dK.zpp_pool=fi;fi.pre_dt=-1}this.bphase.clear();while(this.bodies.head!=null){var eF=this.bodies.pop_unsafe();if(eF.component!=null){var eB=eF.component.island;if(eB!=null){while(eB.comps.head!=null){var eS=eB.comps.pop_unsafe();eS.sleeping=false;eS.island=null;eS.parent=eS;eS.rank=0}eB.next=cW.zpp_pool;cW.zpp_pool=eB}}eF.removedFromSpace();eF.space=null}while(this.constraints.head!=null){var eQ=this.constraints.pop_unsafe();if(eQ.component!=null){var e6=eQ.component.island;if(e6!=null){while(e6.comps.head!=null){var eO=e6.comps.pop_unsafe();eO.sleeping=false;eO.island=null;eO.parent=eO;eO.rank=0}e6.next=cW.zpp_pool;cW.zpp_pool=e6}}eQ.removedFromSpace();eQ.space=null}this.kinematics.clear();var eV=new n();while(this.compounds.head!=null){eV.add(this.compounds.pop_unsafe())}while(eV.head!=null){var fl=eV.pop_unsafe();fl.removedFromSpace();fl.space=null;var eL=fl.bodies.head;while(eL!=null){var fm=eL.elt;if(fm.component!=null){var e0=fm.component.island;if(e0!=null){while(e0.comps.head!=null){var eN=e0.comps.pop_unsafe();eN.sleeping=false;eN.island=null;eN.parent=eN;eN.rank=0}e0.next=cW.zpp_pool;cW.zpp_pool=e0}}fm.removedFromSpace();fm.space=null;eL=eL.next}var eJ=fl.constraints.head;while(eJ!=null){var eM=eJ.elt;if(eM.component!=null){var eX=eM.component.island;if(eX!=null){while(eX.comps.head!=null){var eK=eX.comps.pop_unsafe();eK.sleeping=false;eK.island=null;eK.parent=eK;eK.rank=0}eX.next=cW.zpp_pool;cW.zpp_pool=eX}}eM.removedFromSpace();eM.space=null;eJ=eJ.next}var eI=fl.compounds.head;while(eI!=null){eV.add(eI.elt);eI=eI.next}}this.staticsleep.clear();this.live.clear();this.live_constraints.clear();this.stamp=0;this.time=0;this.mrca1.clear();this.mrca2.clear();this.prelisteners.clear();this.cbsets.clear()};a3.prototype.bodies_adder=function(ea){if(ea.zpp_inner.space!=this){if(ea.zpp_inner.space!=null){ea.zpp_inner.space.outer.zpp_inner.wrap_bodies.remove(ea)}this.addBody(ea.zpp_inner);return true}else{return false}};a3.prototype.bodies_subber=function(ea){this.remBody(ea.zpp_inner)};a3.prototype.compounds_adder=function(ea){if(ea.zpp_inner.space!=this){if(ea.zpp_inner.space!=null){ea.zpp_inner.space.wrap_compounds.remove(ea)}this.addCompound(ea.zpp_inner);return true}else{return false}};a3.prototype.compounds_subber=function(ea){this.remCompound(ea.zpp_inner)};a3.prototype.constraints_adder=function(ea){if(ea.zpp_inner.space!=this){if(ea.zpp_inner.space!=null){ea.zpp_inner.space.outer.zpp_inner.wrap_constraints.remove(ea)}this.addConstraint(ea.zpp_inner);return true}else{return false}};a3.prototype.constraints_subber=function(ea){this.remConstraint(ea.zpp_inner)};a3.prototype.listeners_adder=function(ea){if(ea.zpp_inner.space!=this){if(ea.zpp_inner.space!=null){ea.zpp_inner.space.outer.zpp_inner.wrap_listeners.remove(ea)}this.addListener(ea.zpp_inner);return true}else{return false}};a3.prototype.listeners_subber=function(ea){this.remListener(ea.zpp_inner)};a3.prototype.revoke_listener=function(ea){};a3.prototype.unrevoke_listener=function(ea){};a3.prototype.addListener=function(ea){ea.space=this;ea.addedToSpace()};a3.prototype.remListener=function(ea){ea.removedFromSpace();ea.space=null};a3.prototype.add_callbackset=function(ea){var eh=ea.int1.cbsets;var ec;if(cF.zpp_pool==null){ec=new cF()}else{ec=cF.zpp_pool;cF.zpp_pool=ec.next;ec.next=null}ec.elt=ea;var eb=ec;eb.next=eh.head;eh.head=eb;eh.modified=true;eh.length++;var ee=ea.int2.cbsets;var ef;if(cF.zpp_pool==null){ef=new cF()}else{ef=cF.zpp_pool;cF.zpp_pool=ef.next;ef.next=null}ef.elt=ea;var eg=ef;eg.next=ee.head;ee.head=eg;ee.modified=true;ee.length++;var ed=this.callbackset_list;ea._inuse=true;ea.next=ed.next;ed.next=ea;ed.modified=true;ed.length++};a3.prototype.remove_callbackset=function(ef){ef.lazydel=true;var eg=ef.int1.cbsets;var ee=null;var em=eg.head;while(em!=null){if(em.elt==ef){var eb;var ei;if(ee==null){eb=eg.head;ei=eb.next;eg.head=ei;if(eg.head==null){eg.pushmod=true}}else{eb=ee.next;ei=eb.next;ee.next=ei;if(ei==null){eg.pushmod=true}}var ea=eb;ea.elt=null;ea.next=cF.zpp_pool;cF.zpp_pool=ea;eg.modified=true;eg.length--;eg.pushmod=true;break}ee=em;em=em.next}var ej=ef.int2.cbsets;var ed=null;var el=ej.head;while(el!=null){if(el.elt==ef){var eh;var ek;if(ed==null){eh=ej.head;ek=eh.next;ej.head=ek;if(ej.head==null){ej.pushmod=true}}else{eh=ed.next;ek=eh.next;ed.next=ek;if(ek==null){ej.pushmod=true}}var ec=eh;ec.elt=null;ec.next=cF.zpp_pool;cF.zpp_pool=ec;ej.modified=true;ej.length--;ej.pushmod=true;break}ed=el;el=el.next}};a3.prototype.transmitType=function(ea,eb){if(!ea.world){ea.component.waket=this.stamp+(this.midstep?0:1);if(ea.type==3){ea.kinematicDelaySleep=true}if(ea.component.sleeping){this.really_wake(ea,false)}}if(ea.type==2){this.live.remove(ea)}else{if(ea.type==3){this.kinematics.remove(ea);this.staticsleep.remove(ea)}else{if(ea.type==1){this.staticsleep.remove(ea)}}}ea.type=eb;if(ea.type==3){this.kinematics.add(ea)}if(ea.type==1){this.static_validation(ea)}ea.component.sleeping=true;if(!ea.world){ea.component.waket=this.stamp+(this.midstep?0:1);if(ea.type==3){ea.kinematicDelaySleep=true}if(ea.component.sleeping){this.really_wake(ea,true)}}};a3.prototype.added_shape=function(eb,ea){if(ea==null){ea=false}if(!ea){var ec=eb.body;if(!ec.world){ec.component.waket=this.stamp+(this.midstep?0:1);if(ec.type==3){ec.kinematicDelaySleep=true}if(ec.component.sleeping){this.really_wake(ec,false)}}}this.bphase.insert(eb);eb.addedToSpace()};a3.prototype.removed_shape=function(eL,eA){if(eA==null){eA=false}var eT=this;var ew=eL.body;if(!eA){ew.wake()}var eJ=null;var ef=ew.arbiters.head;while(ef!=null){var eM=ef.elt;if(eM.ws1==eL||eM.ws2==eL){if(eM.present!=0){this.MRCA_chains(eM.ws1,eM.ws2);var eu=this.mrca1.head;while(eu!=null){var ei=eu.elt;var es=this.mrca2.head;while(es!=null){var eg=es.elt;var eb=ei.cbSet;var ea=eg.cbSet;eb.validate();ea.validate();var ex=null;var er=(eb.cbpairs.length<ea.cbpairs.length?eb.cbpairs:ea.cbpairs).head;while(er!=null){var eO=er.elt;if(eO.a==eb&&eO.b==ea||eO.a==ea&&eO.b==eb){ex=eO;break}er=er.next}if(ex==null){var eG;if(ar.zpp_pool==null){eG=new ar()}else{eG=ar.zpp_pool;ar.zpp_pool=eG.next;eG.next=null}eG.zip_listeners=true;if(cC.setlt(eb,ea)){eG.a=eb;eG.b=ea}else{eG.a=ea;eG.b=eb}ex=eG;eb.cbpairs.add(ex);if(ea!=eb){ea.cbpairs.add(ex)}}if(ex.zip_listeners){ex.zip_listeners=false;ex.__validate()}if(ex.listeners.head==null){es=es.next;continue}var ev=dM.get(ei,eg);ev.remove_arb(eM);eM.present--;var eE=null;var eq=(eb.cbpairs.length<ea.cbpairs.length?eb.cbpairs:ea.cbpairs).head;while(eq!=null){var eS=eq.elt;if(eS.a==eb&&eS.b==ea||eS.a==ea&&eS.b==eb){eE=eS;break}eq=eq.next}if(eE==null){var eD;if(ar.zpp_pool==null){eD=new ar()}else{eD=ar.zpp_pool;ar.zpp_pool=eD.next;eD.next=null}eD.zip_listeners=true;if(cC.setlt(eb,ea)){eD.a=eb;eD.b=ea}else{eD.a=ea;eD.b=eb}eE=eD;eb.cbpairs.add(eE);if(ea!=eb){ea.cbpairs.add(eE)}}if(eE.zip_listeners){eE.zip_listeners=false;eE.__validate()}var ep=eE.listeners.head;while(ep!=null){var eF=ep.elt;if(eF.event==1){if((eF.itype&eM.type)!=0&&ev.empty_arb(eF.itype)){var ez=eT.push_callback(eF);ez.event=1;var em=ev.int1;var el=ev.int2;var eN;var ed=eF.options1;var ey=em.cbTypes;if(ed.nonemptyintersection(ey,ed.includes)&&!ed.nonemptyintersection(ey,ed.excludes)){var eK=eF.options2;var ec=el.cbTypes;if(eK.nonemptyintersection(ec,eK.includes)){eN=!eK.nonemptyintersection(ec,eK.excludes)}else{eN=false}}else{eN=false}if(eN){ez.int1=em;ez.int2=el}else{ez.int1=el;ez.int2=em}ez.set=ev}}ep=ep.next}if(ev.arbiters.head==null){this.remove_callbackset(ev)}es=es.next}eu=eu.next}}if(eM.b1!=ew&&eM.b1.type==2){var eP=eM.b1;if(!eP.world){eP.component.waket=this.stamp+(this.midstep?0:1);if(eP.type==3){eP.kinematicDelaySleep=true}if(eP.component.sleeping){this.really_wake(eP,false)}}}if(eM.b2!=ew&&eM.b2.type==2){var ek=eM.b2;if(!ek.world){ek.component.waket=this.stamp+(this.midstep?0:1);if(ek.type==3){ek.kinematicDelaySleep=true}if(ek.component.sleeping){this.really_wake(ek,false)}}}eM.cleared=true;if(ew==null||eM.b2==ew){var eI=eM.b1.arbiters;var eo=null;var ee=eI.head;while(ee!=null){if(ee.elt==eM){var eQ;var eC;if(eo==null){eQ=eI.head;eC=eQ.next;eI.head=eC;if(eI.head==null){eI.pushmod=true}}else{eQ=eo.next;eC=eQ.next;eo.next=eC;if(eC==null){eI.pushmod=true}}var ej=eQ;ej.elt=null;ej.next=dL.zpp_pool;dL.zpp_pool=ej;eI.modified=true;eI.length--;eI.pushmod=true;break}eo=ee;ee=ee.next}}if(ew==null||eM.b1==ew){var eH=eM.b2.arbiters;var en=null;var et=eH.head;while(et!=null){if(et.elt==eM){var eR;var eB;if(en==null){eR=eH.head;eB=eR.next;eH.head=eB;if(eH.head==null){eH.pushmod=true}}else{eR=en.next;eB=eR.next;en.next=eB;if(eB==null){eH.pushmod=true}}var eh=eR;eh.elt=null;eh.next=dL.zpp_pool;dL.zpp_pool=eh;eH.modified=true;eH.length--;eH.pushmod=true;break}en=et;et=et.next}}if(eM.pair!=null){eM.pair.arb=null;eM.pair=null}eM.active=false;this.f_arbiters.modified=true;ef=ew.arbiters.erase(eJ);continue}eJ=ef;ef=ef.next}this.bphase.remove(eL);eL.removedFromSpace()};a3.prototype.addConstraint=function(ea){ea.space=this;ea.addedToSpace();if(ea.active){ea.component.sleeping=true;this.wake_constraint(ea,true)}};a3.prototype.remConstraint=function(ea){if(ea.active){this.wake_constraint(ea,true);this.live_constraints.remove(ea)}ea.removedFromSpace();ea.space=null};a3.prototype.addCompound=function(ea){ea.space=this;ea.addedToSpace();var eb=ea.bodies.head;while(eb!=null){this.addBody(eb.elt);eb=eb.next}var ed=ea.constraints.head;while(ed!=null){this.addConstraint(ed.elt);ed=ed.next}var ec=ea.compounds.head;while(ec!=null){this.addCompound(ec.elt);ec=ec.next}};a3.prototype.remCompound=function(ea){var eb=ea.bodies.head;while(eb!=null){this.remBody(eb.elt);eb=eb.next}var ed=ea.constraints.head;while(ed!=null){this.remConstraint(ed.elt);ed=ed.next}var ec=ea.compounds.head;while(ec!=null){this.remCompound(ec.elt);ec=ec.next}ea.removedFromSpace();ea.space=null};a3.prototype.addBody=function(ea,eb){if(eb==null){eb=-1}ea.space=this;ea.addedToSpace();ea.component.sleeping=true;if(!ea.world){ea.component.waket=this.stamp+(this.midstep?0:1);if(ea.type==3){ea.kinematicDelaySleep=true}if(ea.component.sleeping){this.really_wake(ea,true)}}var ed=ea.shapes.head;while(ed!=null){var ec=ed.elt;this.bphase.insert(ec);ec.addedToSpace();ed=ed.next}if(ea.type==1){this.static_validation(ea)}else{if(ea.type!=2){if(eb!=3){this.kinematics.add(ea)}}}};a3.prototype.remBody=function(ea,eb){if(eb==null){eb=-1}if(ea.type==1){if(!ea.world){ea.component.waket=this.stamp+(this.midstep?0:1);if(ea.type==3){ea.kinematicDelaySleep=true}if(ea.component.sleeping){this.really_wake(ea,true)}}this.staticsleep.remove(ea)}else{if(ea.type==2){if(!ea.world){ea.component.waket=this.stamp+(this.midstep?0:1);if(ea.type==3){ea.kinematicDelaySleep=true}if(ea.component.sleeping){this.really_wake(ea,true)}}this.live.remove(ea)}else{if(eb!=3){this.kinematics.remove(ea)}if(!ea.world){ea.component.waket=this.stamp+(this.midstep?0:1);if(ea.type==3){ea.kinematicDelaySleep=true}if(ea.component.sleeping){this.really_wake(ea,true)}}this.staticsleep.remove(ea)}}var ec=ea.shapes.head;while(ec!=null){this.removed_shape(ec.elt,true);ec=ec.next}ea.removedFromSpace();ea.space=null};a3.prototype.shapesUnderPoint=function(ea,ed,ec,eb){return this.bphase.shapesUnderPoint(ea,ed,ec,eb)};a3.prototype.bodiesUnderPoint=function(ea,ed,ec,eb){return this.bphase.bodiesUnderPoint(ea,ed,ec,eb)};a3.prototype.shapesInAABB=function(ec,eb,ea,ee,ed){return this.bphase.shapesInAABB(ec.zpp_inner,eb,ea,ee,ed)};a3.prototype.bodiesInAABB=function(ec,eb,ea,ee,ed){return this.bphase.bodiesInAABB(ec.zpp_inner,eb,ea,ee,ed)};a3.prototype.shapesInCircle=function(eh,eb,ea,ee,ec){var eg=eh.zpp_inner;if(eg._validate!=null){eg._validate()}var ed=eh.zpp_inner.x;var ef=eh.zpp_inner;if(ef._validate!=null){ef._validate()}return this.bphase.shapesInCircle(ed,eh.zpp_inner.y,eb,ea,ee,ec)};a3.prototype.bodiesInCircle=function(eh,eb,ea,ee,ec){var eg=eh.zpp_inner;if(eg._validate!=null){eg._validate()}var ed=eh.zpp_inner.x;var ef=eh.zpp_inner;if(ef._validate!=null){ef._validate()}return this.bphase.bodiesInCircle(ed,eh.zpp_inner.y,eb,ea,ee,ec)};a3.prototype.shapesInShape=function(ec,ea,ed,eb){return this.bphase.shapesInShape(ec,ea,ed,eb)};a3.prototype.bodiesInShape=function(ec,ea,ed,eb){return this.bphase.bodiesInShape(ec,ea,ed,eb)};a3.prototype.rayCast=function(ea,eb,ec){return this.bphase.rayCast(ea.zpp_inner,eb,ec==null?null:ec.zpp_inner)};a3.prototype.rayMultiCast=function(ea,ec,ed,eb){return this.bphase.rayMultiCast(ea.zpp_inner,ec,ed==null?null:ed.zpp_inner,eb)};a3.prototype.convexShapeList=null;a3.prototype.convexCast=function(eC,et,eF,f2){var fZ;if(ct.zpp_pool==null){fZ=new ct()}else{fZ=ct.zpp_pool;ct.zpp_pool=fZ.next;fZ.next=null}fZ.failed=false;fZ.s1=fZ.s2=null;fZ.arbiter=null;if(eC.type==0){var eA=eC.circle;if(eA.zip_worldCOM){if(eA.body!=null){eA.zip_worldCOM=false;if(eA.zip_localCOM){eA.zip_localCOM=false;if(eA.type==1){var fg=eA.polygon;if(fg.lverts.next.next==null){fg.localCOMx=fg.lverts.next.x;fg.localCOMy=fg.lverts.next.y}else{if(fg.lverts.next.next.next==null){fg.localCOMx=fg.lverts.next.x;fg.localCOMy=fg.lverts.next.y;fg.localCOMx+=fg.lverts.next.next.x;fg.localCOMy+=fg.lverts.next.next.y;fg.localCOMx*=0.5;fg.localCOMy*=0.5}else{fg.localCOMx=0;fg.localCOMy=0;var ef=0;var fN=fg.lverts.next;var eS=fN;fN=fN.next;var eR=fN;fN=fN.next;while(fN!=null){var eQ=fN;ef+=eR.x*(eQ.y-eS.y);var eV=eQ.y*eR.x-eQ.x*eR.y;fg.localCOMx+=(eR.x+eQ.x)*eV;fg.localCOMy+=(eR.y+eQ.y)*eV;eS=eR;eR=eQ;fN=fN.next}fN=fg.lverts.next;var fc=fN;ef+=eR.x*(fc.y-eS.y);var el=fc.y*eR.x-fc.x*eR.y;fg.localCOMx+=(eR.x+fc.x)*el;fg.localCOMy+=(eR.y+fc.y)*el;eS=eR;fN=fN.next;var e9=fN;ef+=fc.x*(e9.y-eS.y);var eh=e9.y*fc.x-e9.x*fc.y;fg.localCOMx+=(fc.x+e9.x)*eh;fg.localCOMy+=(fc.y+e9.y)*eh;ef=1/(3*ef);var eT=ef;fg.localCOMx*=eT;fg.localCOMy*=eT}}}if(eA.wrap_localCOM!=null){eA.wrap_localCOM.zpp_inner.x=eA.localCOMx;eA.wrap_localCOM.zpp_inner.y=eA.localCOMy}}var ff=eA.body;if(ff.zip_axis){ff.zip_axis=false;ff.axisx=Math.sin(ff.rot);ff.axisy=Math.cos(ff.rot)}eA.worldCOMx=eA.body.posx+(eA.body.axisy*eA.localCOMx-eA.body.axisx*eA.localCOMy);eA.worldCOMy=eA.body.posy+(eA.localCOMx*eA.body.axisx+eA.localCOMy*eA.body.axisy)}}}else{var fe=eC.polygon;if(fe.zip_gaxi){if(fe.body!=null){fe.zip_gaxi=false;fe.validate_laxi();var fb=fe.body;if(fb.zip_axis){fb.zip_axis=false;fb.axisx=Math.sin(fb.rot);fb.axisy=Math.cos(fb.rot)}if(fe.zip_gverts){if(fe.body!=null){fe.zip_gverts=false;fe.validate_lverts();var e8=fe.body;if(e8.zip_axis){e8.zip_axis=false;e8.axisx=Math.sin(e8.rot);e8.axisy=Math.cos(e8.rot)}var f3=fe.lverts.next;var fM=fe.gverts.next;while(fM!=null){var fj=fM;var fd=f3;f3=f3.next;fj.x=fe.body.posx+(fe.body.axisy*fd.x-fe.body.axisx*fd.y);fj.y=fe.body.posy+(fd.x*fe.body.axisx+fd.y*fe.body.axisy);fM=fM.next}}}var eM=fe.edges.head;var fL=fe.gverts.next;var fY=fL;fL=fL.next;while(fL!=null){var fJ=fL;var fk=eM.elt;eM=eM.next;fk.gp0=fY;fk.gp1=fJ;fk.gnormx=fe.body.axisy*fk.lnormx-fe.body.axisx*fk.lnormy;fk.gnormy=fk.lnormx*fe.body.axisx+fk.lnormy*fe.body.axisy;fk.gprojection=fe.body.posx*fk.gnormx+fe.body.posy*fk.gnormy+fk.lprojection;if(fk.wrap_gnorm!=null){fk.wrap_gnorm.zpp_inner.x=fk.gnormx;fk.wrap_gnorm.zpp_inner.y=fk.gnormy}fk.tp0=fk.gp0.y*fk.gnormx-fk.gp0.x*fk.gnormy;fk.tp1=fk.gp1.y*fk.gnormx-fk.gp1.x*fk.gnormy;fY=fJ;fL=fL.next}var eN=eM.elt;eN.gp0=fY;eN.gp1=fe.gverts.next;eN.gnormx=fe.body.axisy*eN.lnormx-fe.body.axisx*eN.lnormy;eN.gnormy=eN.lnormx*fe.body.axisx+eN.lnormy*fe.body.axisy;eN.gprojection=fe.body.posx*eN.gnormx+fe.body.posy*eN.gnormy+eN.lprojection;if(eN.wrap_gnorm!=null){eN.wrap_gnorm.zpp_inner.x=eN.gnormx;eN.wrap_gnorm.zpp_inner.y=eN.gnormy}eN.tp0=eN.gp0.y*eN.gnormx-eN.gp0.x*eN.gnormy;eN.tp1=eN.gp1.y*eN.gnormx-eN.gp1.x*eN.gnormy}}}var ez=eC.body;var eI=ez.posx;var eG=ez.posy;ez.sweepTime=0;ez.sweep_angvel=ez.angvel;var eg=et-ez.sweepTime;if(eg!=0){ez.sweepTime=et;ez.posx+=ez.velx*eg;ez.posy+=ez.vely*eg;if(ez.angvel!=0){var ev=ez.sweep_angvel*eg;ez.rot+=ev;if(ev*ev>0.0001){ez.axisx=Math.sin(ez.rot);ez.axisy=Math.cos(ez.rot)}else{var ft=ev*ev;var eY=1-0.5*ft;var fa=1-ft*ft/8;var fv=(eY*ez.axisx+ev*ez.axisy)*fa;ez.axisy=(eY*ez.axisy-ev*ez.axisx)*fa;ez.axisx=fv}}}var fT=ez.posx;var fQ=ez.posy;eC.validate_sweepRadius();var er=eC.sweepRadius;var ei;if(bT.zpp_pool==null){ei=new bT()}else{ei=bT.zpp_pool;bT.zpp_pool=ei.next;ei.next=null}ei.minx=(eI<fT?eI:fT)-er;ei.maxx=(eI>fT?eI:fT)+er;ei.miny=(eG<fQ?eG:fQ)-er;ei.maxy=(eG>fQ?eG:fQ)+er;var eB=this.convexShapeList=this.bphase.shapesInAABB(ei,false,false,eF==null?null:eF.zpp_inner,this.convexShapeList);var e6=ei;if(e6.outer!=null){e6.outer.zpp_inner=null;e6.outer=null}e6.wrap_min=e6.wrap_max=null;e6._invalidate=null;e6._validate=null;e6.next=bT.zpp_pool;bT.zpp_pool=e6;var fE=0;var fB=0;fE=0;fB=0;var fu=0;var fr=0;fu=0;fr=0;var eq=null;var eo=et+1;eB.zpp_inner.valmod();var ec=bC.get(eB);while(true){ec.zpp_inner.zpp_inner.valmod();var e7=ec.zpp_inner;e7.zpp_inner.valmod();if(e7.zpp_inner.zip_length){e7.zpp_inner.zip_length=false;e7.zpp_inner.user_length=e7.zpp_inner.inner.length}var em=e7.zpp_inner.user_length;ec.zpp_critical=true;var ek;if(ec.zpp_i<em){ek=true}else{ec.zpp_next=bC.zpp_pool;bC.zpp_pool=ec;ec.zpp_inner=null;ek=false}if(!ek){break}ec.zpp_critical=false;var eU=ec.zpp_inner.at(ec.zpp_i++);if(eU!=eC.outer&&(eU.zpp_inner.body!=null?eU.zpp_inner.body.outer:null)!=ez.outer){fZ.s1=eC;fZ.s2=eU.zpp_inner;if(f2){eU.zpp_inner.validate_sweepRadius();(eU.zpp_inner.body!=null?eU.zpp_inner.body.outer:null).zpp_inner.sweep_angvel=(eU.zpp_inner.body!=null?eU.zpp_inner.body.outer:null).zpp_inner.angvel;(eU.zpp_inner.body!=null?eU.zpp_inner.body.outer:null).zpp_inner.sweepTime=0;de.dynamicSweep(fZ,et,0,0,true);var eZ=(eU.zpp_inner.body!=null?eU.zpp_inner.body.outer:null).zpp_inner;var fV=0-eZ.sweepTime;if(fV!=0){eZ.sweepTime=0;eZ.posx+=eZ.velx*fV;eZ.posy+=eZ.vely*fV;if(eZ.angvel!=0){var ep=eZ.sweep_angvel*fV;eZ.rot+=ep;if(ep*ep>0.0001){eZ.axisx=Math.sin(eZ.rot);eZ.axisy=Math.cos(eZ.rot)}else{var fn=ep*ep;var fz=1-0.5*fn;var ee=1-fn*fn/8;var f1=(fz*eZ.axisx+ep*eZ.axisy)*ee;eZ.axisy=(fz*eZ.axisy-ep*eZ.axisx)*ee;eZ.axisx=f1}}}var eX=(eU.zpp_inner.body!=null?eU.zpp_inner.body.outer:null).zpp_inner;var ej=eU.zpp_inner;if(ej.type==0){ej.worldCOMx=eX.posx+(eX.axisy*ej.localCOMx-eX.axisx*ej.localCOMy);ej.worldCOMy=eX.posy+(ej.localCOMx*eX.axisx+ej.localCOMy*eX.axisy)}else{var fy=ej.polygon;var eE=fy.lverts.next;var fK=fy.gverts.next;while(fK!=null){var eb=fK;var ey=eE;eE=eE.next;eb.x=eX.posx+(eX.axisy*ey.x-eX.axisx*ey.y);eb.y=eX.posy+(ey.x*eX.axisx+ey.y*eX.axisy);fK=fK.next}var fi=fy.edges.head;var fI=fy.gverts.next;var fX=fI;fI=fI.next;while(fI!=null){var fH=fI;var eL=fi.elt;fi=fi.next;eL.gnormx=eX.axisy*eL.lnormx-eX.axisx*eL.lnormy;eL.gnormy=eL.lnormx*eX.axisx+eL.lnormy*eX.axisy;eL.gprojection=eX.posx*eL.gnormx+eX.posy*eL.gnormy+eL.lprojection;eL.tp0=fX.y*eL.gnormx-fX.x*eL.gnormy;eL.tp1=fH.y*eL.gnormx-fH.x*eL.gnormy;fX=fH;fI=fI.next}var fG=fy.gverts.next;var eK=fi.elt;eK.gnormx=eX.axisy*eK.lnormx-eX.axisx*eK.lnormy;eK.gnormy=eK.lnormx*eX.axisx+eK.lnormy*eX.axisy;eK.gprojection=eX.posx*eK.gnormx+eX.posy*eK.gnormy+eK.lprojection;eK.tp0=fX.y*eK.gnormx-fX.x*eK.gnormy;eK.tp1=fG.y*eK.gnormx-fG.x*eK.gnormy}}else{de.staticSweep(fZ,et,0,0)}fZ.toi*=et;if(fZ.toi>0&&fZ.toi<eo){eo=fZ.toi;fE=fZ.axis.x;fB=fZ.axis.y;fu=fZ.c2.x;fr=fZ.c2.y;eq=eU}}}eB.clear();var fS=fZ;fS.next=ct.zpp_pool;ct.zpp_pool=fS;var fU=0-ez.sweepTime;if(fU!=0){ez.sweepTime=0;ez.posx+=ez.velx*fU;ez.posy+=ez.vely*fU;if(ez.angvel!=0){var en=ez.sweep_angvel*fU;ez.rot+=en;if(en*en>0.0001){ez.axisx=Math.sin(ez.rot);ez.axisy=Math.cos(ez.rot)}else{var fl=en*en;var fx=1-0.5*fl;var ed=1-fl*fl/8;var f0=(fx*ez.axisx+en*ez.axisy)*ed;ez.axisy=(fx*ez.axisy-en*ez.axisx)*ed;ez.axisx=f0}}}if(eC.type==0){eC.worldCOMx=ez.posx+(ez.axisy*eC.localCOMx-ez.axisx*eC.localCOMy);eC.worldCOMy=ez.posy+(eC.localCOMx*ez.axisx+eC.localCOMy*ez.axisy)}else{var fw=eC.polygon;var eD=fw.lverts.next;var fF=fw.gverts.next;while(fF!=null){var ea=fF;var ex=eD;eD=eD.next;ea.x=ez.posx+(ez.axisy*ex.x-ez.axisx*ex.y);ea.y=ez.posy+(ex.x*ez.axisx+ex.y*ez.axisy);fF=fF.next}var fh=fw.edges.head;var fD=fw.gverts.next;var fW=fD;fD=fD.next;while(fD!=null){var fC=fD;var eJ=fh.elt;fh=fh.next;eJ.gnormx=ez.axisy*eJ.lnormx-ez.axisx*eJ.lnormy;eJ.gnormy=eJ.lnormx*ez.axisx+eJ.lnormy*ez.axisy;eJ.gprojection=ez.posx*eJ.gnormx+ez.posy*eJ.gnormy+eJ.lprojection;eJ.tp0=fW.y*eJ.gnormx-fW.x*eJ.gnormy;eJ.tp1=fC.y*eJ.gnormx-fC.x*eJ.gnormy;fW=fC;fD=fD.next}var fA=fw.gverts.next;var eH=fh.elt;eH.gnormx=ez.axisy*eH.lnormx-ez.axisx*eH.lnormy;eH.gnormy=eH.lnormx*ez.axisx+eH.lnormy*ez.axisy;eH.gprojection=ez.posx*eH.gnormx+ez.posy*eH.gnormy+eH.lprojection;eH.tp0=fW.y*eH.gnormx-fW.x*eH.gnormy;eH.tp1=fA.y*eH.gnormx-fA.x*eH.gnormy}if(eo<=et){var eP=-fE;var eO=-fB;var e0;if(au.poolVec2==null){e0=new r()}else{e0=au.poolVec2;au.poolVec2=e0.zpp_pool;e0.zpp_pool=null}if(e0.zpp_inner==null){var fR;if(bB.zpp_pool==null){fR=new bB()}else{fR=bB.zpp_pool;bB.zpp_pool=fR.next;fR.next=null}fR.weak=false;fR._immutable=false;fR.x=eP;fR.y=eO;e0.zpp_inner=fR;e0.zpp_inner.outer=e0}else{var ew;var eW=e0.zpp_inner;if(eW._validate!=null){eW._validate()}if(e0.zpp_inner.x==eP){var fs=e0.zpp_inner;if(fs._validate!=null){fs._validate()}ew=e0.zpp_inner.y==eO}else{ew=false}if(!ew){e0.zpp_inner.x=eP;e0.zpp_inner.y=eO;var fq=e0.zpp_inner;if(fq._invalidate!=null){fq._invalidate(fq)}}}e0.zpp_inner.weak=false;var eu=e0;var fP;if(au.poolVec2==null){fP=new r()}else{fP=au.poolVec2;au.poolVec2=fP.zpp_pool;fP.zpp_pool=null}if(fP.zpp_inner==null){var fO;if(bB.zpp_pool==null){fO=new bB()}else{fO=bB.zpp_pool;bB.zpp_pool=fO.next;fO.next=null}fO.weak=false;fO._immutable=false;fO.x=fu;fO.y=fr;fP.zpp_inner=fO;fP.zpp_inner.outer=fP}else{var es;var fp=fP.zpp_inner;if(fp._validate!=null){fp._validate()}if(fP.zpp_inner.x==fu){var fo=fP.zpp_inner;if(fo._validate!=null){fo._validate()}es=fP.zpp_inner.y==fr}else{es=false}if(!es){fP.zpp_inner.x=fu;fP.zpp_inner.y=fr;var fm=fP.zpp_inner;if(fm._invalidate!=null){fm._invalidate(fm)}}}fP.zpp_inner.weak=false;return a4.getConvex(eu,fP,eo,eq)}else{return null}};a3.prototype.prepareCast=function(en){if(en.type==0){var es=en.circle;if(es.zip_worldCOM){if(es.body!=null){es.zip_worldCOM=false;if(es.zip_localCOM){es.zip_localCOM=false;if(es.type==1){var ez=es.polygon;if(ez.lverts.next.next==null){ez.localCOMx=ez.lverts.next.x;ez.localCOMy=ez.lverts.next.y}else{if(ez.lverts.next.next.next==null){ez.localCOMx=ez.lverts.next.x;ez.localCOMy=ez.lverts.next.y;ez.localCOMx+=ez.lverts.next.next.x;ez.localCOMy+=ez.lverts.next.next.y;ez.localCOMx*=0.5;ez.localCOMy*=0.5}else{ez.localCOMx=0;ez.localCOMy=0;var eA=0;var er=ez.lverts.next;var ej=er;er=er.next;var ei=er;er=er.next;while(er!=null){var eg=er;eA+=ei.x*(eg.y-ej.y);var em=eg.y*ei.x-eg.x*ei.y;ez.localCOMx+=(ei.x+eg.x)*em;ez.localCOMy+=(ei.y+eg.y)*em;ej=ei;ei=eg;er=er.next}er=ez.lverts.next;var eh=er;eA+=ei.x*(eh.y-ej.y);var ee=eh.y*ei.x-eh.x*ei.y;ez.localCOMx+=(ei.x+eh.x)*ee;ez.localCOMy+=(ei.y+eh.y)*ee;ej=ei;er=er.next;var ef=er;eA+=eh.x*(ef.y-ej.y);var ed=ef.y*eh.x-ef.x*eh.y;ez.localCOMx+=(eh.x+ef.x)*ed;ez.localCOMy+=(eh.y+ef.y)*ed;eA=1/(3*eA);var el=eA;ez.localCOMx*=el;ez.localCOMy*=el}}}if(es.wrap_localCOM!=null){es.wrap_localCOM.zpp_inner.x=es.localCOMx;es.wrap_localCOM.zpp_inner.y=es.localCOMy}}var ey=es.body;if(ey.zip_axis){ey.zip_axis=false;ey.axisx=Math.sin(ey.rot);ey.axisy=Math.cos(ey.rot)}es.worldCOMx=es.body.posx+(es.body.axisy*es.localCOMx-es.body.axisx*es.localCOMy);es.worldCOMy=es.body.posy+(es.localCOMx*es.body.axisx+es.localCOMy*es.body.axisy)}}}else{var ew=en.polygon;if(ew.zip_gaxi){if(ew.body!=null){ew.zip_gaxi=false;ew.validate_laxi();var eu=ew.body;if(eu.zip_axis){eu.zip_axis=false;eu.axisx=Math.sin(eu.rot);eu.axisy=Math.cos(eu.rot)}if(ew.zip_gverts){if(ew.body!=null){ew.zip_gverts=false;ew.validate_lverts();var et=ew.body;if(et.zip_axis){et.zip_axis=false;et.axisx=Math.sin(et.rot);et.axisy=Math.cos(et.rot)}var ek=ew.lverts.next;var ep=ew.gverts.next;while(ep!=null){var ex=ep;var eq=ek;ek=ek.next;ex.x=ew.body.posx+(ew.body.axisy*eq.x-ew.body.axisx*eq.y);ex.y=ew.body.posy+(eq.x*ew.body.axisx+eq.y*ew.body.axisy);ep=ep.next}}}var ec=ew.edges.head;var eo=ew.gverts.next;var ev=eo;eo=eo.next;while(eo!=null){var ea=eo;var eB=ec.elt;ec=ec.next;eB.gp0=ev;eB.gp1=ea;eB.gnormx=ew.body.axisy*eB.lnormx-ew.body.axisx*eB.lnormy;eB.gnormy=eB.lnormx*ew.body.axisx+eB.lnormy*ew.body.axisy;eB.gprojection=ew.body.posx*eB.gnormx+ew.body.posy*eB.gnormy+eB.lprojection;if(eB.wrap_gnorm!=null){eB.wrap_gnorm.zpp_inner.x=eB.gnormx;eB.wrap_gnorm.zpp_inner.y=eB.gnormy}eB.tp0=eB.gp0.y*eB.gnormx-eB.gp0.x*eB.gnormy;eB.tp1=eB.gp1.y*eB.gnormx-eB.gp1.x*eB.gnormy;ev=ea;eo=eo.next}var eb=ec.elt;eb.gp0=ev;eb.gp1=ew.gverts.next;eb.gnormx=ew.body.axisy*eb.lnormx-ew.body.axisx*eb.lnormy;eb.gnormy=eb.lnormx*ew.body.axisx+eb.lnormy*ew.body.axisy;eb.gprojection=ew.body.posx*eb.gnormx+ew.body.posy*eb.gnormy+eb.lprojection;if(eb.wrap_gnorm!=null){eb.wrap_gnorm.zpp_inner.x=eb.gnormx;eb.wrap_gnorm.zpp_inner.y=eb.gnormy}eb.tp0=eb.gp0.y*eb.gnormx-eb.gp0.x*eb.gnormy;eb.tp1=eb.gp1.y*eb.gnormx-eb.gp1.x*eb.gnormy}}}};a3.prototype.convexMultiCast=function(eD,es,eG,f6,ew){var f3;if(ct.zpp_pool==null){f3=new ct()}else{f3=ct.zpp_pool;ct.zpp_pool=f3.next;f3.next=null}f3.failed=false;f3.s1=f3.s2=null;f3.arbiter=null;if(eD.type==0){var eA=eD.circle;if(eA.zip_worldCOM){if(eA.body!=null){eA.zip_worldCOM=false;if(eA.zip_localCOM){eA.zip_localCOM=false;if(eA.type==1){var fi=eA.polygon;if(fi.lverts.next.next==null){fi.localCOMx=fi.lverts.next.x;fi.localCOMy=fi.lverts.next.y}else{if(fi.lverts.next.next.next==null){fi.localCOMx=fi.lverts.next.x;fi.localCOMy=fi.lverts.next.y;fi.localCOMx+=fi.lverts.next.next.x;fi.localCOMy+=fi.lverts.next.next.y;fi.localCOMx*=0.5;fi.localCOMy*=0.5}else{fi.localCOMx=0;fi.localCOMy=0;var ef=0;var fP=fi.lverts.next;var eT=fP;fP=fP.next;var eS=fP;fP=fP.next;while(fP!=null){var eR=fP;ef+=eS.x*(eR.y-eT.y);var eW=eR.y*eS.x-eR.x*eS.y;fi.localCOMx+=(eS.x+eR.x)*eW;fi.localCOMy+=(eS.y+eR.y)*eW;eT=eS;eS=eR;fP=fP.next}fP=fi.lverts.next;var fe=fP;ef+=eS.x*(fe.y-eT.y);var el=fe.y*eS.x-fe.x*eS.y;fi.localCOMx+=(eS.x+fe.x)*el;fi.localCOMy+=(eS.y+fe.y)*el;eT=eS;fP=fP.next;var fb=fP;ef+=fe.x*(fb.y-eT.y);var eh=fb.y*fe.x-fb.x*fe.y;fi.localCOMx+=(fe.x+fb.x)*eh;fi.localCOMy+=(fe.y+fb.y)*eh;ef=1/(3*ef);var eU=ef;fi.localCOMx*=eU;fi.localCOMy*=eU}}}if(eA.wrap_localCOM!=null){eA.wrap_localCOM.zpp_inner.x=eA.localCOMx;eA.wrap_localCOM.zpp_inner.y=eA.localCOMy}}var fh=eA.body;if(fh.zip_axis){fh.zip_axis=false;fh.axisx=Math.sin(fh.rot);fh.axisy=Math.cos(fh.rot)}eA.worldCOMx=eA.body.posx+(eA.body.axisy*eA.localCOMx-eA.body.axisx*eA.localCOMy);eA.worldCOMy=eA.body.posy+(eA.localCOMx*eA.body.axisx+eA.localCOMy*eA.body.axisy)}}}else{var fg=eD.polygon;if(fg.zip_gaxi){if(fg.body!=null){fg.zip_gaxi=false;fg.validate_laxi();var fd=fg.body;if(fd.zip_axis){fd.zip_axis=false;fd.axisx=Math.sin(fd.rot);fd.axisy=Math.cos(fd.rot)}if(fg.zip_gverts){if(fg.body!=null){fg.zip_gverts=false;fg.validate_lverts();var fa=fg.body;if(fa.zip_axis){fa.zip_axis=false;fa.axisx=Math.sin(fa.rot);fa.axisy=Math.cos(fa.rot)}var f7=fg.lverts.next;var fO=fg.gverts.next;while(fO!=null){var fm=fO;var ff=f7;f7=f7.next;fm.x=fg.body.posx+(fg.body.axisy*ff.x-fg.body.axisx*ff.y);fm.y=fg.body.posy+(ff.x*fg.body.axisx+ff.y*fg.body.axisy);fO=fO.next}}}var eN=fg.edges.head;var fN=fg.gverts.next;var f2=fN;fN=fN.next;while(fN!=null){var fL=fN;var fn=eN.elt;eN=eN.next;fn.gp0=f2;fn.gp1=fL;fn.gnormx=fg.body.axisy*fn.lnormx-fg.body.axisx*fn.lnormy;fn.gnormy=fn.lnormx*fg.body.axisx+fn.lnormy*fg.body.axisy;fn.gprojection=fg.body.posx*fn.gnormx+fg.body.posy*fn.gnormy+fn.lprojection;if(fn.wrap_gnorm!=null){fn.wrap_gnorm.zpp_inner.x=fn.gnormx;fn.wrap_gnorm.zpp_inner.y=fn.gnormy}fn.tp0=fn.gp0.y*fn.gnormx-fn.gp0.x*fn.gnormy;fn.tp1=fn.gp1.y*fn.gnormx-fn.gp1.x*fn.gnormy;f2=fL;fN=fN.next}var eO=eN.elt;eO.gp0=f2;eO.gp1=fg.gverts.next;eO.gnormx=fg.body.axisy*eO.lnormx-fg.body.axisx*eO.lnormy;eO.gnormy=eO.lnormx*fg.body.axisx+eO.lnormy*fg.body.axisy;eO.gprojection=fg.body.posx*eO.gnormx+fg.body.posy*eO.gnormy+eO.lprojection;if(eO.wrap_gnorm!=null){eO.wrap_gnorm.zpp_inner.x=eO.gnormx;eO.wrap_gnorm.zpp_inner.y=eO.gnormy}eO.tp0=eO.gp0.y*eO.gnormx-eO.gp0.x*eO.gnormy;eO.tp1=eO.gp1.y*eO.gnormx-eO.gp1.x*eO.gnormy}}}var ey=eD.body;var eJ=ey.posx;var eH=ey.posy;ey.sweepTime=0;ey.sweep_angvel=ey.angvel;var eg=es-ey.sweepTime;if(eg!=0){ey.sweepTime=es;ey.posx+=ey.velx*eg;ey.posy+=ey.vely*eg;if(ey.angvel!=0){var eu=ey.sweep_angvel*eg;ey.rot+=eu;if(eu*eu>0.0001){ey.axisx=Math.sin(ey.rot);ey.axisy=Math.cos(ey.rot)}else{var fw=eu*eu;var eZ=1-0.5*fw;var fc=1-fw*fw/8;var fx=(eZ*ey.axisx+eu*ey.axisy)*fc;ey.axisy=(eZ*ey.axisy-eu*ey.axisx)*fc;ey.axisx=fx}}}var fX=ey.posx;var fU=ey.posy;eD.validate_sweepRadius();var eq=eD.sweepRadius;var ei;if(bT.zpp_pool==null){ei=new bT()}else{ei=bT.zpp_pool;bT.zpp_pool=ei.next;ei.next=null}ei.minx=(eJ<fX?eJ:fX)-eq;ei.maxx=(eJ>fX?eJ:fX)+eq;ei.miny=(eH<fU?eH:fU)-eq;ei.maxy=(eH>fU?eH:fU)+eq;var eB=this.convexShapeList=this.bphase.shapesInAABB(ei,false,false,eG==null?null:eG.zpp_inner,this.convexShapeList);var e6=ei;if(e6.outer!=null){e6.outer.zpp_inner=null;e6.outer=null}e6.wrap_min=e6.wrap_max=null;e6._invalidate=null;e6._validate=null;e6.next=bT.zpp_pool;bT.zpp_pool=e6;var e8=ew==null?new cs():ew;eB.zpp_inner.valmod();var ec=bC.get(eB);while(true){ec.zpp_inner.zpp_inner.valmod();var e7=ec.zpp_inner;e7.zpp_inner.valmod();if(e7.zpp_inner.zip_length){e7.zpp_inner.zip_length=false;e7.zpp_inner.user_length=e7.zpp_inner.inner.length}var em=e7.zpp_inner.user_length;ec.zpp_critical=true;var ek;if(ec.zpp_i<em){ek=true}else{ec.zpp_next=bC.zpp_pool;bC.zpp_pool=ec;ec.zpp_inner=null;ek=false}if(!ek){break}ec.zpp_critical=false;var eV=ec.zpp_inner.at(ec.zpp_i++);if(eV!=eD.outer&&(eV.zpp_inner.body!=null?eV.zpp_inner.body.outer:null)!=ey.outer){f3.s1=eD;f3.s2=eV.zpp_inner;if(f6){eV.zpp_inner.validate_sweepRadius();(eV.zpp_inner.body!=null?eV.zpp_inner.body.outer:null).zpp_inner.sweep_angvel=(eV.zpp_inner.body!=null?eV.zpp_inner.body.outer:null).zpp_inner.angvel;(eV.zpp_inner.body!=null?eV.zpp_inner.body.outer:null).zpp_inner.sweepTime=0;de.dynamicSweep(f3,es,0,0,true);var e0=(eV.zpp_inner.body!=null?eV.zpp_inner.body.outer:null).zpp_inner;var fZ=0-e0.sweepTime;if(fZ!=0){e0.sweepTime=0;e0.posx+=e0.velx*fZ;e0.posy+=e0.vely*fZ;if(e0.angvel!=0){var eo=e0.sweep_angvel*fZ;e0.rot+=eo;if(eo*eo>0.0001){e0.axisx=Math.sin(e0.rot);e0.axisy=Math.cos(e0.rot)}else{var fr=eo*eo;var fB=1-0.5*fr;var ee=1-fr*fr/8;var f5=(fB*e0.axisx+eo*e0.axisy)*ee;e0.axisy=(fB*e0.axisy-eo*e0.axisx)*ee;e0.axisx=f5}}}var eY=(eV.zpp_inner.body!=null?eV.zpp_inner.body.outer:null).zpp_inner;var ej=eV.zpp_inner;if(ej.type==0){ej.worldCOMx=eY.posx+(eY.axisy*ej.localCOMx-eY.axisx*ej.localCOMy);ej.worldCOMy=eY.posy+(ej.localCOMx*eY.axisx+ej.localCOMy*eY.axisy)}else{var fA=ej.polygon;var eF=fA.lverts.next;var fM=fA.gverts.next;while(fM!=null){var eb=fM;var ez=eF;eF=eF.next;eb.x=eY.posx+(eY.axisy*ez.x-eY.axisx*ez.y);eb.y=eY.posy+(ez.x*eY.axisx+ez.y*eY.axisy);fM=fM.next}var fl=fA.edges.head;var fK=fA.gverts.next;var f1=fK;fK=fK.next;while(fK!=null){var fJ=fK;var eM=fl.elt;fl=fl.next;eM.gnormx=eY.axisy*eM.lnormx-eY.axisx*eM.lnormy;eM.gnormy=eM.lnormx*eY.axisx+eM.lnormy*eY.axisy;eM.gprojection=eY.posx*eM.gnormx+eY.posy*eM.gnormy+eM.lprojection;eM.tp0=f1.y*eM.gnormx-f1.x*eM.gnormy;eM.tp1=fJ.y*eM.gnormx-fJ.x*eM.gnormy;f1=fJ;fK=fK.next}var fH=fA.gverts.next;var eL=fl.elt;eL.gnormx=eY.axisy*eL.lnormx-eY.axisx*eL.lnormy;eL.gnormy=eL.lnormx*eY.axisx+eL.lnormy*eY.axisy;eL.gprojection=eY.posx*eL.gnormx+eY.posy*eL.gnormy+eL.lprojection;eL.tp0=f1.y*eL.gnormx-f1.x*eL.gnormy;eL.tp1=fH.y*eL.gnormx-fH.x*eL.gnormy}}else{de.staticSweep(f3,es,0,0)}f3.toi*=es;if(f3.toi>0){var eQ=-f3.axis.x;var eP=-f3.axis.y;var fW;if(au.poolVec2==null){fW=new r()}else{fW=au.poolVec2;au.poolVec2=fW.zpp_pool;fW.zpp_pool=null}if(fW.zpp_inner==null){var fT;if(bB.zpp_pool==null){fT=new bB()}else{fT=bB.zpp_pool;bB.zpp_pool=fT.next;fT.next=null}fT.weak=false;fT._immutable=false;fT.x=eQ;fT.y=eP;fW.zpp_inner=fT;fW.zpp_inner.outer=fW}else{var ev;var eX=fW.zpp_inner;if(eX._validate!=null){eX._validate()}if(fW.zpp_inner.x==eQ){var fv=fW.zpp_inner;if(fv._validate!=null){fv._validate()}ev=fW.zpp_inner.y==eP}else{ev=false}if(!ev){fW.zpp_inner.x=eQ;fW.zpp_inner.y=eP;var fu=fW.zpp_inner;if(fu._invalidate!=null){fu._invalidate(fu)}}}fW.zpp_inner.weak=false;var et=fW;var eC=f3.c2.x;var ep=f3.c2.y;var fS;if(au.poolVec2==null){fS=new r()}else{fS=au.poolVec2;au.poolVec2=fS.zpp_pool;fS.zpp_pool=null}if(fS.zpp_inner==null){var fR;if(bB.zpp_pool==null){fR=new bB()}else{fR=bB.zpp_pool;bB.zpp_pool=fR.next;fR.next=null}fR.weak=false;fR._immutable=false;fR.x=eC;fR.y=ep;fS.zpp_inner=fR;fS.zpp_inner.outer=fS}else{var er;var ft=fS.zpp_inner;if(ft._validate!=null){ft._validate()}if(fS.zpp_inner.x==eC){var fs=fS.zpp_inner;if(fs._validate!=null){fs._validate()}er=fS.zpp_inner.y==ep}else{er=false}if(!er){fS.zpp_inner.x=eC;fS.zpp_inner.y=ep;var fq=fS.zpp_inner;if(fq._invalidate!=null){fq._invalidate(fq)}}}fS.zpp_inner.weak=false;var e9=a4.getConvex(et,fS,f3.toi,eV);var fk=null;var fG=e8.zpp_inner.inner.head;while(fG!=null){if(e9.zpp_inner.toiDistance<fG.elt.zpp_inner.toiDistance){break}fk=fG;fG=fG.next}var fp=e8.zpp_inner.inner;var fQ;if(cn.zpp_pool==null){fQ=new cn()}else{fQ=cn.zpp_pool;cn.zpp_pool=fQ.next;fQ.next=null}fQ.elt=e9;var fI=fQ;if(fk==null){fI.next=fp.head;fp.head=fI}else{fI.next=fk.next;fk.next=fI}fp.pushmod=fp.modified=true;fp.length++}}}eB.clear();var fV=f3;fV.next=ct.zpp_pool;ct.zpp_pool=fV;var fY=0-ey.sweepTime;if(fY!=0){ey.sweepTime=0;ey.posx+=ey.velx*fY;ey.posy+=ey.vely*fY;if(ey.angvel!=0){var en=ey.sweep_angvel*fY;ey.rot+=en;if(en*en>0.0001){ey.axisx=Math.sin(ey.rot);ey.axisy=Math.cos(ey.rot)}else{var fo=en*en;var fz=1-0.5*fo;var ed=1-fo*fo/8;var f4=(fz*ey.axisx+en*ey.axisy)*ed;ey.axisy=(fz*ey.axisy-en*ey.axisx)*ed;ey.axisx=f4}}}if(eD.type==0){eD.worldCOMx=ey.posx+(ey.axisy*eD.localCOMx-ey.axisx*eD.localCOMy);eD.worldCOMy=ey.posy+(eD.localCOMx*ey.axisx+eD.localCOMy*ey.axisy)}else{var fy=eD.polygon;var eE=fy.lverts.next;var fF=fy.gverts.next;while(fF!=null){var ea=fF;var ex=eE;eE=eE.next;ea.x=ey.posx+(ey.axisy*ex.x-ey.axisx*ex.y);ea.y=ey.posy+(ex.x*ey.axisx+ex.y*ey.axisy);fF=fF.next}var fj=fy.edges.head;var fD=fy.gverts.next;var f0=fD;fD=fD.next;while(fD!=null){var fE=fD;var eK=fj.elt;fj=fj.next;eK.gnormx=ey.axisy*eK.lnormx-ey.axisx*eK.lnormy;eK.gnormy=eK.lnormx*ey.axisx+eK.lnormy*ey.axisy;eK.gprojection=ey.posx*eK.gnormx+ey.posy*eK.gnormy+eK.lprojection;eK.tp0=f0.y*eK.gnormx-f0.x*eK.gnormy;eK.tp1=fE.y*eK.gnormx-fE.x*eK.gnormy;f0=fE;fD=fD.next}var fC=fy.gverts.next;var eI=fj.elt;eI.gnormx=ey.axisy*eI.lnormx-ey.axisx*eI.lnormy;eI.gnormy=eI.lnormx*ey.axisx+eI.lnormy*ey.axisy;eI.gprojection=ey.posx*eI.gnormx+ey.posy*eI.gnormy+eI.lprojection;eI.tp0=f0.y*eI.gnormx-f0.x*eI.gnormy;eI.tp1=fC.y*eI.gnormx-fC.x*eI.gnormy}return e8};a3.prototype.push_callback=function(eb){var ea;if(cS.zpp_pool==null){ea=new cS()}else{ea=cS.zpp_pool;cS.zpp_pool=ea.next;ea.next=null}this.callbacks.push(ea);ea.listener=eb;return ea};a3.prototype.pre_dt=null;a3.prototype.step=function(e0,et,eG){var e9=this;this.time+=e0;this.pre_dt=e0;this.midstep=true;this.stamp++;this.validation();this.bphase.broadphase(this,true);this.prestep(e0);if(this.sortcontacts){var eE=this.c_arbiters_false;if(eE.head!=null&&eE.head.next!=null){var em=eE.head;var fe=null;var eg=null;var e3=null;var e6=null;var ev=1;var ee;var eK;var ea;while(true){ee=0;eg=em;em=null;fe=em;while(eg!=null){++ee;e3=eg;eK=0;ea=ev;while(e3!=null&&eK<ev){++eK;e3=e3.next}while(eK>0||ea>0&&e3!=null){if(eK==0){e6=e3;e3=e3.next;--ea}else{if(ea==0||e3==null){e6=eg;eg=eg.next;--eK}else{if(eg.elt.active&&e3.elt.active?eg.elt.oc1.dist<e3.elt.oc1.dist:true){e6=eg;eg=eg.next;--eK}else{e6=e3;e3=e3.next;--ea}}}if(fe!=null){fe.next=e6}else{em=e6}fe=e6}eg=e3}fe.next=null;ev<<=1;if(!(ee>1)){break}}eE.head=em;eE.modified=true;eE.pushmod=true}}this.updateVel(e0);this.warmStart();this.iterateVel(et);var ei=this.kinematics.head;while(ei!=null){var eh=ei.elt;eh.pre_posx=eh.posx;eh.pre_posy=eh.posy;eh.pre_rot=eh.rot;ei=ei.next}var ez=this.live.head;while(ez!=null){var eA=ez.elt;eA.pre_posx=eA.posx;eA.pre_posy=eA.posy;eA.pre_rot=eA.rot;ez=ez.next}this.updatePos(e0);this.continuous=true;this.continuousCollisions(e0);this.continuous=false;this.iteratePos(eG);var ex=this.kinematics.head;while(ex!=null){var ey=ex.elt;var eL=!(ey.posx==ey.pre_posx&&ey.posy==ey.pre_posy);var eB=ey.pre_rot!=ey.rot;if(eL){var eu=ey.shapes.head;while(eu!=null){var eZ=eu.elt;if(eZ.type==1){eZ.polygon.invalidate_gverts();eZ.polygon.invalidate_gaxi()}eZ.invalidate_worldCOM();eu=eu.next}ey.zip_worldCOM=true}if(eB){ey.zip_axis=true;var es=ey.shapes.head;while(es!=null){var fb=es.elt;if(fb.type==1){fb.polygon.invalidate_gverts();fb.polygon.invalidate_gaxi()}fb.invalidate_worldCOM();es=es.next}ey.zip_worldCOM=true}ex=ex.next}var er=this.live.head;while(er!=null){var ew=er.elt;var ed=!(ew.posx==ew.pre_posx&&ew.posy==ew.pre_posy);var eF=ew.pre_rot!=ew.rot;if(ed){var eq=ew.shapes.head;while(eq!=null){var fa=eq.elt;if(fa.type==1){fa.polygon.invalidate_gverts();fa.polygon.invalidate_gaxi()}fa.invalidate_worldCOM();eq=eq.next}ew.zip_worldCOM=true}if(eF){ew.zip_axis=true;var ep=ew.shapes.head;while(ep!=null){var e8=ep.elt;if(e8.type==1){e8.polygon.invalidate_gverts();e8.polygon.invalidate_gaxi()}e8.invalidate_worldCOM();ep=ep.next}ew.zip_worldCOM=true}er=er.next}var eW=null;var eo=this.staticsleep.head;while(eo!=null){var fc=eo.elt;if(fc.type!=3||fc.velx==0&&fc.vely==0&&fc.angvel==0){if(fc.kinematicDelaySleep){fc.kinematicDelaySleep=false;eo=eo.next;continue}fc.component.sleeping=true;var ef=this.staticsleep;var e5;var eI;if(eW==null){e5=ef.head;eI=e5.next;ef.head=eI;if(ef.head==null){ef.pushmod=true}}else{e5=eW.next;eI=e5.next;eW.next=eI;if(eI==null){ef.pushmod=true}}var e4=e5;e4.elt=null;e4.next=bE.zpp_pool;bE.zpp_pool=e4;ef.modified=true;ef.length--;ef.pushmod=true;eo=eI;continue}eW=eo;eo=eo.next}this.doForests(e0);this.sleepArbiters();this.midstep=false;var en=null;var el=this.callbackset_list.next;while(el!=null){var eD=el;if(eD.arbiters.head==null){var eY=this.callbackset_list;var e7;var eR;if(en==null){e7=eY.next;eR=e7.next;eY.next=eR;if(eY.next==null){eY.pushmod=true}}else{e7=en.next;eR=e7.next;en.next=eR;if(eR==null){eY.pushmod=true}}e7._inuse=false;eY.modified=true;eY.length--;eY.pushmod=true;el=eR;eD.int1=eD.int2=null;eD.id=eD.di=-1;eD.freed=true;eD.next=cg.zpp_pool;cg.zpp_pool=eD;continue}var eP;eP=true;var eX=eD.arbiters.head;while(eX!=null){if(eX.elt.sleeping){eX=eX.next;continue}else{eP=false;break}}var eH=eP;var fd=eD.int1.cbSet;var eC=eD.int2.cbSet;var eO=null;var eV=(fd.cbpairs.length<eC.cbpairs.length?fd.cbpairs:eC.cbpairs).head;while(eV!=null){var e2=eV.elt;if(e2.a==fd&&e2.b==eC||e2.a==eC&&e2.b==fd){eO=e2;break}eV=eV.next}if(eO==null){var eN;if(ar.zpp_pool==null){eN=new ar()}else{eN=ar.zpp_pool;ar.zpp_pool=eN.next;eN.next=null}eN.zip_listeners=true;if(cC.setlt(fd,eC)){eN.a=fd;eN.b=eC}else{eN.a=eC;eN.b=fd}eO=eN;fd.cbpairs.add(eO);if(eC!=fd){eC.cbpairs.add(eO)}}if(eO.zip_listeners){eO.zip_listeners=false;eO.__validate()}var eT=eO.listeners.head;while(eT!=null){var eQ=eT.elt;if(eQ.event==6){if((!eH||eQ.allowSleepingCallbacks)&&!eD.empty_arb(eQ.itype)){var eM=e9.push_callback(eQ);eM.event=6;var ek=eD.int1;var ej=eD.int2;var e1;var eU=eQ.options1;var eJ=ek.cbTypes;if(eU.nonemptyintersection(eJ,eU.includes)&&!eU.nonemptyintersection(eJ,eU.excludes)){var eS=eQ.options2;var ec=ej.cbTypes;if(eS.nonemptyintersection(ec,eS.includes)){e1=!eS.nonemptyintersection(ec,eS.excludes)}else{e1=false}}else{e1=false}if(e1){eM.int1=ek;eM.int2=ej}else{eM.int1=ej;eM.int2=ek}eM.set=eD}}eT=eT.next}en=el;el=el.next}while(!this.callbacks.empty()){var eb=this.callbacks.pop();if(eb.listener.type==0){eb.listener.body.handler(eb.wrapper_body())}else{if(eb.listener.type==1){eb.listener.constraint.handler(eb.wrapper_con())}else{if(eb.listener.type==2){eb.listener.interaction.handleri(eb.wrapper_int())}}}eb.int1=eb.int2=null;eb.body=null;eb.constraint=null;eb.listener=null;if(eb.wrap_arbiters!=null){eb.wrap_arbiters.zpp_inner.inner=null}eb.set=null;eb.next=cS.zpp_pool;cS.zpp_pool=eb}};a3.prototype.toiEvents=null;a3.prototype.continuousCollisions=function(fG){var eQ=2*Math.PI/fG;this.bphase.broadphase(this,false);var ft=0;while(ft<1&&this.toiEvents.head!=null){var gw=null;var eP=2;var e9=false;var fz=null;var fk=null;var eA=this.toiEvents.head;while(eA!=null){var fF=eA.elt;var gv=fF.s1.body;var gu=fF.s2.body;if(gv.sweepFrozen&&gu.sweepFrozen){if(fF.toi!=0&&b7.testCollide_safe(fF.s1,fF.s2)){fF.toi=0}else{eA=this.toiEvents.erase(fk);fF.next=ct.zpp_pool;ct.zpp_pool=fF;continue}}if(fF.frozen1!=gv.sweepFrozen||fF.frozen2!=gu.sweepFrozen){if(!fF.kinematic){fF.frozen1=gv.sweepFrozen;fF.frozen2=gu.sweepFrozen;if(fF.frozen1){var gl=fF.s1;fF.s1=fF.s2;fF.s2=gl;fF.frozen1=false;fF.frozen2=true}de.staticSweep(fF,fG,0,P.collisionSlopCCD);if(fF.toi<0){eA=this.toiEvents.erase(fk);fF.next=ct.zpp_pool;ct.zpp_pool=fF;continue}}else{eA=this.toiEvents.erase(fk);fF.next=ct.zpp_pool;ct.zpp_pool=fF;continue}}if(fF.toi>=0&&(fF.toi<eP||!e9&&fF.kinematic)){gw=fF;eP=fF.toi;e9=fF.kinematic;fz=fk}fk=eA;eA=eA.next}if(gw==null){break}this.toiEvents.erase(fz);ft=gw.toi;var ea=gw.s1.body;var gt=gw.s2.body;if(!ea.sweepFrozen){var fx=ft*fG;var em=fx-ea.sweepTime;if(em!=0){ea.sweepTime=fx;ea.posx+=ea.velx*em;ea.posy+=ea.vely*em;if(ea.angvel!=0){var fy=ea.sweep_angvel*em;ea.rot+=fy;if(fy*fy>0.0001){ea.axisx=Math.sin(ea.rot);ea.axisy=Math.cos(ea.rot)}else{var f9=fy*fy;var fV=1-0.5*f9;var fX=1-f9*f9/8;var gd=(fV*ea.axisx+fy*ea.axisy)*fX;ea.axisy=(fV*ea.axisy-fy*ea.axisx)*fX;ea.axisx=gd}}}var fT=gw.s1;if(fT.type==0){fT.worldCOMx=ea.posx+(ea.axisy*fT.localCOMx-ea.axisx*fT.localCOMy);fT.worldCOMy=ea.posy+(fT.localCOMx*ea.axisx+fT.localCOMy*ea.axisy)}else{var gi=fT.polygon;var gC=gi.lverts.next;var e5=gi.gverts.next;while(e5!=null){var f2=e5;var fY=gC;gC=gC.next;f2.x=ea.posx+(ea.axisy*fY.x-ea.axisx*fY.y);f2.y=ea.posy+(fY.x*ea.axisx+fY.y*ea.axisy);e5=e5.next}var gp=gi.edges.head;var e0=gi.gverts.next;var fN=e0;e0=e0.next;while(e0!=null){var fK=e0;var f4=gp.elt;gp=gp.next;f4.gnormx=ea.axisy*f4.lnormx-ea.axisx*f4.lnormy;f4.gnormy=f4.lnormx*ea.axisx+f4.lnormy*ea.axisy;f4.gprojection=ea.posx*f4.gnormx+ea.posy*f4.gnormy+f4.lprojection;f4.tp0=fN.y*f4.gnormx-fN.x*f4.gnormy;f4.tp1=fK.y*f4.gnormx-fK.x*f4.gnormy;fN=fK;e0=e0.next}var e8=gi.gverts.next;var fR=gp.elt;fR.gnormx=ea.axisy*fR.lnormx-ea.axisx*fR.lnormy;fR.gnormy=fR.lnormx*ea.axisx+fR.lnormy*ea.axisy;fR.gprojection=ea.posx*fR.gnormx+ea.posy*fR.gnormy+fR.lprojection;fR.tp0=fN.y*fR.gnormx-fN.x*fR.gnormy;fR.tp1=e8.y*fR.gnormx-e8.x*fR.gnormy}}if(!gt.sweepFrozen){var fs=ft*fG;var fE=fs-gt.sweepTime;if(fE!=0){gt.sweepTime=fs;gt.posx+=gt.velx*fE;gt.posy+=gt.vely*fE;if(gt.angvel!=0){var f3=gt.sweep_angvel*fE;gt.rot+=f3;if(f3*f3>0.0001){gt.axisx=Math.sin(gt.rot);gt.axisy=Math.cos(gt.rot)}else{var gs=f3*f3;var gh=1-0.5*gs;var ej=1-gs*gs/8;var eF=(gh*gt.axisx+f3*gt.axisy)*ej;gt.axisy=(gh*gt.axisy-f3*gt.axisx)*ej;gt.axisx=eF}}}var fq=gw.s2;if(fq.type==0){fq.worldCOMx=gt.posx+(gt.axisy*fq.localCOMx-gt.axisx*fq.localCOMy);fq.worldCOMy=gt.posy+(fq.localCOMx*gt.axisx+fq.localCOMy*gt.axisy)}else{var gg=fq.polygon;var fa=gg.lverts.next;var eY=gg.gverts.next;while(eY!=null){var fm=eY;var ez=fa;fa=fa.next;fm.x=gt.posx+(gt.axisy*ez.x-gt.axisx*ez.y);fm.y=gt.posy+(ez.x*gt.axisx+ez.y*gt.axisy);eY=eY.next}var fb=gg.edges.head;var eW=gg.gverts.next;var ff=eW;eW=eW.next;while(eW!=null){var e7=eW;var fO=fb.elt;fb=fb.next;fO.gnormx=gt.axisy*fO.lnormx-gt.axisx*fO.lnormy;fO.gnormy=fO.lnormx*gt.axisx+fO.lnormy*gt.axisy;fO.gprojection=gt.posx*fO.gnormx+gt.posy*fO.gnormy+fO.lprojection;fO.tp0=ff.y*fO.gnormx-ff.x*fO.gnormy;fO.tp1=e7.y*fO.gnormx-e7.x*fO.gnormy;ff=e7;eW=eW.next}var e6=gg.gverts.next;var fL=fb.elt;fL.gnormx=gt.axisy*fL.lnormx-gt.axisx*fL.lnormy;fL.gnormy=fL.lnormx*gt.axisx+fL.lnormy*gt.axisy;fL.gprojection=gt.posx*fL.gnormx+gt.posy*fL.gnormy+fL.lprojection;fL.tp0=ff.y*fL.gnormx-ff.x*fL.gnormy;fL.tp1=e6.y*fL.gnormx-e6.x*fL.gnormy}}var ey=this.narrowPhase(gw.s1,gw.s2,true,gw.arbiter,true);if(ey==null){if(gw.arbiter!=null&&gw.arbiter.pair!=null){gw.arbiter.pair.arb=null;gw.arbiter.pair=null}}else{if(!this.presteparb(ey,fG,true)){if(ey.type==j.COL&&(ey.active&&(ey.immState&1)!=0)){var fv=ey.colarb;var et=fv.nx*fv.c1.jnAcc-fv.ny*fv.c1.jtAcc;var er=fv.ny*fv.c1.jnAcc+fv.nx*fv.c1.jtAcc;var fQ=fv.b1.imass;fv.b1.velx-=et*fQ;fv.b1.vely-=er*fQ;fv.b1.angvel-=fv.b1.iinertia*(er*fv.c1.r1x-et*fv.c1.r1y);var fj=fv.b2.imass;fv.b2.velx+=et*fj;fv.b2.vely+=er*fj;fv.b2.angvel+=fv.b2.iinertia*(er*fv.c1.r2x-et*fv.c1.r2y);if(fv.hc2){var eM=fv.nx*fv.c2.jnAcc-fv.ny*fv.c2.jtAcc;var eu=fv.ny*fv.c2.jnAcc+fv.nx*fv.c2.jtAcc;var fi=fv.b1.imass;fv.b1.velx-=eM*fi;fv.b1.vely-=eu*fi;fv.b1.angvel-=fv.b1.iinertia*(eu*fv.c2.r1x-eM*fv.c2.r1y);var fh=fv.b2.imass;fv.b2.velx+=eM*fh;fv.b2.vely+=eu*fh;fv.b2.angvel+=fv.b2.iinertia*(eu*fv.c2.r2x-eM*fv.c2.r2y)}fv.b2.angvel+=fv.jrAcc*fv.b2.iinertia;fv.b1.angvel-=fv.jrAcc*fv.b1.iinertia;var fg=ey.colarb;var eK;var es;var fZ;var fw;var f5;var fI;var fC=fg.k1x+fg.b2.velx-fg.c1.r2y*fg.b2.angvel-(fg.b1.velx-fg.c1.r1y*fg.b1.angvel);var fA=fg.k1y+fg.b2.vely+fg.c1.r2x*fg.b2.angvel-(fg.b1.vely+fg.c1.r1x*fg.b1.angvel);fZ=(fA*fg.nx-fC*fg.ny+fg.surfacex)*fg.c1.tMass;fw=fg.c1.friction*fg.c1.jnAcc;f5=fg.c1.jtAcc;fI=f5-fZ;if(fI>fw){fI=fw}else{if(fI<-fw){fI=-fw}}fZ=fI-f5;fg.c1.jtAcc=fI;eK=-fg.ny*fZ;es=fg.nx*fZ;fg.b2.velx+=eK*fg.b2.imass;fg.b2.vely+=es*fg.b2.imass;fg.b1.velx-=eK*fg.b1.imass;fg.b1.vely-=es*fg.b1.imass;fg.b2.angvel+=fg.rt1b*fZ*fg.b2.iinertia;fg.b1.angvel-=fg.rt1a*fZ*fg.b1.iinertia;if(fg.hc2){var fo=fg.k2x+fg.b2.velx-fg.c2.r2y*fg.b2.angvel-(fg.b1.velx-fg.c2.r1y*fg.b1.angvel);var fn=fg.k2y+fg.b2.vely+fg.c2.r2x*fg.b2.angvel-(fg.b1.vely+fg.c2.r1x*fg.b1.angvel);fZ=(fn*fg.nx-fo*fg.ny+fg.surfacex)*fg.c2.tMass;fw=fg.c2.friction*fg.c2.jnAcc;f5=fg.c2.jtAcc;fI=f5-fZ;if(fI>fw){fI=fw}else{if(fI<-fw){fI=-fw}}fZ=fI-f5;fg.c2.jtAcc=fI;eK=-fg.ny*fZ;es=fg.nx*fZ;fg.b2.velx+=eK*fg.b2.imass;fg.b2.vely+=es*fg.b2.imass;fg.b1.velx-=eK*fg.b1.imass;fg.b1.vely-=es*fg.b1.imass;fg.b2.angvel+=fg.rt2b*fZ*fg.b2.iinertia;fg.b1.angvel-=fg.rt2a*fZ*fg.b1.iinertia;fC=fg.k1x+fg.b2.velx-fg.c1.r2y*fg.b2.angvel-(fg.b1.velx-fg.c1.r1y*fg.b1.angvel);fA=fg.k1y+fg.b2.vely+fg.c1.r2x*fg.b2.angvel-(fg.b1.vely+fg.c1.r1x*fg.b1.angvel);fo=fg.k2x+fg.b2.velx-fg.c2.r2y*fg.b2.angvel-(fg.b1.velx-fg.c2.r1y*fg.b1.angvel);fn=fg.k2y+fg.b2.vely+fg.c2.r2x*fg.b2.angvel-(fg.b1.vely+fg.c2.r1x*fg.b1.angvel);var go=fg.c1.jnAcc;var gn=fg.c2.jnAcc;var gk=fC*fg.nx+fA*fg.ny+fg.surfacey+fg.c1.bounce-(fg.Ka*go+fg.Kb*gn);var gj=fo*fg.nx+fn*fg.ny+fg.surfacey+fg.c2.bounce-(fg.Kb*go+fg.Kc*gn);var gy=-(fg.kMassa*gk+fg.kMassb*gj);var gx=-(fg.kMassb*gk+fg.kMassc*gj);if(gy>=0&&gx>=0){gk=gy-go;gj=gx-gn;fg.c1.jnAcc=gy;fg.c2.jnAcc=gx}else{gy=-fg.c1.nMass*gk;if(gy>=0&&fg.Kb*gy+gj>=0){gk=gy-go;gj=-gn;fg.c1.jnAcc=gy;fg.c2.jnAcc=0}else{gx=-fg.c2.nMass*gj;if(gx>=0&&fg.Kb*gx+gk>=0){gk=-go;gj=gx-gn;fg.c1.jnAcc=0;fg.c2.jnAcc=gx}else{if(gk>=0&&gj>=0){gk=-go;gj=-gn;fg.c1.jnAcc=fg.c2.jnAcc=0}else{gk=0;gj=0}}}}fZ=gk+gj;eK=fg.nx*fZ;es=fg.ny*fZ;fg.b2.velx+=eK*fg.b2.imass;fg.b2.vely+=es*fg.b2.imass;fg.b1.velx-=eK*fg.b1.imass;fg.b1.vely-=es*fg.b1.imass;fg.b2.angvel+=(fg.rn1b*gk+fg.rn2b*gj)*fg.b2.iinertia;fg.b1.angvel-=(fg.rn1a*gk+fg.rn2a*gj)*fg.b1.iinertia}else{if(fg.radius!=0){fZ=(fg.b2.angvel-fg.b1.angvel)*fg.rMass;fw=fg.rfric*fg.c1.jnAcc;f5=fg.jrAcc;fg.jrAcc-=fZ;if(fg.jrAcc>fw){fg.jrAcc=fw}else{if(fg.jrAcc<-fw){fg.jrAcc=-fw}}fZ=fg.jrAcc-f5;fg.b2.angvel+=fZ*fg.b2.iinertia;fg.b1.angvel-=fZ*fg.b1.iinertia}fC=fg.k1x+fg.b2.velx-fg.c1.r2y*fg.b2.angvel-(fg.b1.velx-fg.c1.r1y*fg.b1.angvel);fA=fg.k1y+fg.b2.vely+fg.c1.r2x*fg.b2.angvel-(fg.b1.vely+fg.c1.r1x*fg.b1.angvel);fZ=(fg.c1.bounce+(fg.nx*fC+fg.ny*fA)+fg.surfacey)*fg.c1.nMass;f5=fg.c1.jnAcc;fI=f5-fZ;if(fI<0){fI=0}fZ=fI-f5;fg.c1.jnAcc=fI;eK=fg.nx*fZ;es=fg.ny*fZ;fg.b2.velx+=eK*fg.b2.imass;fg.b2.vely+=es*fg.b2.imass;fg.b1.velx-=eK*fg.b1.imass;fg.b1.vely-=es*fg.b1.imass;fg.b2.angvel+=fg.rn1b*fZ*fg.b2.iinertia;fg.b1.angvel-=fg.rn1a*fZ*fg.b1.iinertia}var fe=ey.colarb;var eJ;var eq;var e4;var fu;var ed;var eG;var gc=fe.k1x+fe.b2.velx-fe.c1.r2y*fe.b2.angvel-(fe.b1.velx-fe.c1.r1y*fe.b1.angvel);var fU=fe.k1y+fe.b2.vely+fe.c1.r2x*fe.b2.angvel-(fe.b1.vely+fe.c1.r1x*fe.b1.angvel);e4=(fU*fe.nx-gc*fe.ny+fe.surfacex)*fe.c1.tMass;fu=fe.c1.friction*fe.c1.jnAcc;ed=fe.c1.jtAcc;eG=ed-e4;if(eG>fu){eG=fu}else{if(eG<-fu){eG=-fu}}e4=eG-ed;fe.c1.jtAcc=eG;eJ=-fe.ny*e4;eq=fe.nx*e4;fe.b2.velx+=eJ*fe.b2.imass;fe.b2.vely+=eq*fe.b2.imass;fe.b1.velx-=eJ*fe.b1.imass;fe.b1.vely-=eq*fe.b1.imass;fe.b2.angvel+=fe.rt1b*e4*fe.b2.iinertia;fe.b1.angvel-=fe.rt1a*e4*fe.b1.iinertia;if(fe.hc2){var eT=fe.k2x+fe.b2.velx-fe.c2.r2y*fe.b2.angvel-(fe.b1.velx-fe.c2.r1y*fe.b1.angvel);var eO=fe.k2y+fe.b2.vely+fe.c2.r2x*fe.b2.angvel-(fe.b1.vely+fe.c2.r1x*fe.b1.angvel);e4=(eO*fe.nx-eT*fe.ny+fe.surfacex)*fe.c2.tMass;fu=fe.c2.friction*fe.c2.jnAcc;ed=fe.c2.jtAcc;eG=ed-e4;if(eG>fu){eG=fu}else{if(eG<-fu){eG=-fu}}e4=eG-ed;fe.c2.jtAcc=eG;eJ=-fe.ny*e4;eq=fe.nx*e4;fe.b2.velx+=eJ*fe.b2.imass;fe.b2.vely+=eq*fe.b2.imass;fe.b1.velx-=eJ*fe.b1.imass;fe.b1.vely-=eq*fe.b1.imass;fe.b2.angvel+=fe.rt2b*e4*fe.b2.iinertia;fe.b1.angvel-=fe.rt2a*e4*fe.b1.iinertia;gc=fe.k1x+fe.b2.velx-fe.c1.r2y*fe.b2.angvel-(fe.b1.velx-fe.c1.r1y*fe.b1.angvel);fU=fe.k1y+fe.b2.vely+fe.c1.r2x*fe.b2.angvel-(fe.b1.vely+fe.c1.r1x*fe.b1.angvel);eT=fe.k2x+fe.b2.velx-fe.c2.r2y*fe.b2.angvel-(fe.b1.velx-fe.c2.r1y*fe.b1.angvel);eO=fe.k2y+fe.b2.vely+fe.c2.r2x*fe.b2.angvel-(fe.b1.vely+fe.c2.r1x*fe.b1.angvel);var f8=fe.c1.jnAcc;var fM=fe.c2.jnAcc;var ex=gc*fe.nx+fU*fe.ny+fe.surfacey+fe.c1.bounce-(fe.Ka*f8+fe.Kb*fM);var eh=eT*fe.nx+eO*fe.ny+fe.surfacey+fe.c2.bounce-(fe.Kb*f8+fe.Kc*fM);var en=-(fe.kMassa*ex+fe.kMassb*eh);var gB=-(fe.kMassb*ex+fe.kMassc*eh);if(en>=0&&gB>=0){ex=en-f8;eh=gB-fM;fe.c1.jnAcc=en;fe.c2.jnAcc=gB}else{en=-fe.c1.nMass*ex;if(en>=0&&fe.Kb*en+eh>=0){ex=en-f8;eh=-fM;fe.c1.jnAcc=en;fe.c2.jnAcc=0}else{gB=-fe.c2.nMass*eh;if(gB>=0&&fe.Kb*gB+ex>=0){ex=-f8;eh=gB-fM;fe.c1.jnAcc=0;fe.c2.jnAcc=gB}else{if(ex>=0&&eh>=0){ex=-f8;eh=-fM;fe.c1.jnAcc=fe.c2.jnAcc=0}else{ex=0;eh=0}}}}e4=ex+eh;eJ=fe.nx*e4;eq=fe.ny*e4;fe.b2.velx+=eJ*fe.b2.imass;fe.b2.vely+=eq*fe.b2.imass;fe.b1.velx-=eJ*fe.b1.imass;fe.b1.vely-=eq*fe.b1.imass;fe.b2.angvel+=(fe.rn1b*ex+fe.rn2b*eh)*fe.b2.iinertia;fe.b1.angvel-=(fe.rn1a*ex+fe.rn2a*eh)*fe.b1.iinertia}else{if(fe.radius!=0){e4=(fe.b2.angvel-fe.b1.angvel)*fe.rMass;fu=fe.rfric*fe.c1.jnAcc;ed=fe.jrAcc;fe.jrAcc-=e4;if(fe.jrAcc>fu){fe.jrAcc=fu}else{if(fe.jrAcc<-fu){fe.jrAcc=-fu}}e4=fe.jrAcc-ed;fe.b2.angvel+=e4*fe.b2.iinertia;fe.b1.angvel-=e4*fe.b1.iinertia}gc=fe.k1x+fe.b2.velx-fe.c1.r2y*fe.b2.angvel-(fe.b1.velx-fe.c1.r1y*fe.b1.angvel);fU=fe.k1y+fe.b2.vely+fe.c1.r2x*fe.b2.angvel-(fe.b1.vely+fe.c1.r1x*fe.b1.angvel);e4=(fe.c1.bounce+(fe.nx*gc+fe.ny*fU)+fe.surfacey)*fe.c1.nMass;ed=fe.c1.jnAcc;eG=ed-e4;if(eG<0){eG=0}e4=eG-ed;fe.c1.jnAcc=eG;eJ=fe.nx*e4;eq=fe.ny*e4;fe.b2.velx+=eJ*fe.b2.imass;fe.b2.vely+=eq*fe.b2.imass;fe.b1.velx-=eJ*fe.b1.imass;fe.b1.vely-=eq*fe.b1.imass;fe.b2.angvel+=fe.rn1b*e4*fe.b2.iinertia;fe.b1.angvel-=fe.rn1a*e4*fe.b1.iinertia}var fd=ey.colarb;var eI;var ep;var eZ;var fr;var ec;var eE;var gb=fd.k1x+fd.b2.velx-fd.c1.r2y*fd.b2.angvel-(fd.b1.velx-fd.c1.r1y*fd.b1.angvel);var fS=fd.k1y+fd.b2.vely+fd.c1.r2x*fd.b2.angvel-(fd.b1.vely+fd.c1.r1x*fd.b1.angvel);eZ=(fS*fd.nx-gb*fd.ny+fd.surfacex)*fd.c1.tMass;fr=fd.c1.friction*fd.c1.jnAcc;ec=fd.c1.jtAcc;eE=ec-eZ;if(eE>fr){eE=fr}else{if(eE<-fr){eE=-fr}}eZ=eE-ec;fd.c1.jtAcc=eE;eI=-fd.ny*eZ;ep=fd.nx*eZ;fd.b2.velx+=eI*fd.b2.imass;fd.b2.vely+=ep*fd.b2.imass;fd.b1.velx-=eI*fd.b1.imass;fd.b1.vely-=ep*fd.b1.imass;fd.b2.angvel+=fd.rt1b*eZ*fd.b2.iinertia;fd.b1.angvel-=fd.rt1a*eZ*fd.b1.iinertia;if(fd.hc2){var eS=fd.k2x+fd.b2.velx-fd.c2.r2y*fd.b2.angvel-(fd.b1.velx-fd.c2.r1y*fd.b1.angvel);var eN=fd.k2y+fd.b2.vely+fd.c2.r2x*fd.b2.angvel-(fd.b1.vely+fd.c2.r1x*fd.b1.angvel);eZ=(eN*fd.nx-eS*fd.ny+fd.surfacex)*fd.c2.tMass;fr=fd.c2.friction*fd.c2.jnAcc;ec=fd.c2.jtAcc;eE=ec-eZ;if(eE>fr){eE=fr}else{if(eE<-fr){eE=-fr}}eZ=eE-ec;fd.c2.jtAcc=eE;eI=-fd.ny*eZ;ep=fd.nx*eZ;fd.b2.velx+=eI*fd.b2.imass;fd.b2.vely+=ep*fd.b2.imass;fd.b1.velx-=eI*fd.b1.imass;fd.b1.vely-=ep*fd.b1.imass;fd.b2.angvel+=fd.rt2b*eZ*fd.b2.iinertia;fd.b1.angvel-=fd.rt2a*eZ*fd.b1.iinertia;gb=fd.k1x+fd.b2.velx-fd.c1.r2y*fd.b2.angvel-(fd.b1.velx-fd.c1.r1y*fd.b1.angvel);fS=fd.k1y+fd.b2.vely+fd.c1.r2x*fd.b2.angvel-(fd.b1.vely+fd.c1.r1x*fd.b1.angvel);eS=fd.k2x+fd.b2.velx-fd.c2.r2y*fd.b2.angvel-(fd.b1.velx-fd.c2.r1y*fd.b1.angvel);eN=fd.k2y+fd.b2.vely+fd.c2.r2x*fd.b2.angvel-(fd.b1.vely+fd.c2.r1x*fd.b1.angvel);var f7=fd.c1.jnAcc;var fJ=fd.c2.jnAcc;var ew=gb*fd.nx+fS*fd.ny+fd.surfacey+fd.c1.bounce-(fd.Ka*f7+fd.Kb*fJ);var ef=eS*fd.nx+eN*fd.ny+fd.surfacey+fd.c2.bounce-(fd.Kb*f7+fd.Kc*fJ);var el=-(fd.kMassa*ew+fd.kMassb*ef);var gA=-(fd.kMassb*ew+fd.kMassc*ef);if(el>=0&&gA>=0){ew=el-f7;ef=gA-fJ;fd.c1.jnAcc=el;fd.c2.jnAcc=gA}else{el=-fd.c1.nMass*ew;if(el>=0&&fd.Kb*el+ef>=0){ew=el-f7;ef=-fJ;fd.c1.jnAcc=el;fd.c2.jnAcc=0}else{gA=-fd.c2.nMass*ef;if(gA>=0&&fd.Kb*gA+ew>=0){ew=-f7;ef=gA-fJ;fd.c1.jnAcc=0;fd.c2.jnAcc=gA}else{if(ew>=0&&ef>=0){ew=-f7;ef=-fJ;fd.c1.jnAcc=fd.c2.jnAcc=0}else{ew=0;ef=0}}}}eZ=ew+ef;eI=fd.nx*eZ;ep=fd.ny*eZ;fd.b2.velx+=eI*fd.b2.imass;fd.b2.vely+=ep*fd.b2.imass;fd.b1.velx-=eI*fd.b1.imass;fd.b1.vely-=ep*fd.b1.imass;fd.b2.angvel+=(fd.rn1b*ew+fd.rn2b*ef)*fd.b2.iinertia;fd.b1.angvel-=(fd.rn1a*ew+fd.rn2a*ef)*fd.b1.iinertia}else{if(fd.radius!=0){eZ=(fd.b2.angvel-fd.b1.angvel)*fd.rMass;fr=fd.rfric*fd.c1.jnAcc;ec=fd.jrAcc;fd.jrAcc-=eZ;if(fd.jrAcc>fr){fd.jrAcc=fr}else{if(fd.jrAcc<-fr){fd.jrAcc=-fr}}eZ=fd.jrAcc-ec;fd.b2.angvel+=eZ*fd.b2.iinertia;fd.b1.angvel-=eZ*fd.b1.iinertia}gb=fd.k1x+fd.b2.velx-fd.c1.r2y*fd.b2.angvel-(fd.b1.velx-fd.c1.r1y*fd.b1.angvel);fS=fd.k1y+fd.b2.vely+fd.c1.r2x*fd.b2.angvel-(fd.b1.vely+fd.c1.r1x*fd.b1.angvel);eZ=(fd.c1.bounce+(fd.nx*gb+fd.ny*fS)+fd.surfacey)*fd.c1.nMass;ec=fd.c1.jnAcc;eE=ec-eZ;if(eE<0){eE=0}eZ=eE-ec;fd.c1.jnAcc=eE;eI=fd.nx*eZ;ep=fd.ny*eZ;fd.b2.velx+=eI*fd.b2.imass;fd.b2.vely+=ep*fd.b2.imass;fd.b1.velx-=eI*fd.b1.imass;fd.b1.vely-=ep*fd.b1.imass;fd.b2.angvel+=fd.rn1b*eZ*fd.b2.iinertia;fd.b1.angvel-=fd.rn1a*eZ*fd.b1.iinertia}var fc=ey.colarb;var eH;var eo;var eX;var fp;var eb;var eC;var ga=fc.k1x+fc.b2.velx-fc.c1.r2y*fc.b2.angvel-(fc.b1.velx-fc.c1.r1y*fc.b1.angvel);var fP=fc.k1y+fc.b2.vely+fc.c1.r2x*fc.b2.angvel-(fc.b1.vely+fc.c1.r1x*fc.b1.angvel);eX=(fP*fc.nx-ga*fc.ny+fc.surfacex)*fc.c1.tMass;fp=fc.c1.friction*fc.c1.jnAcc;eb=fc.c1.jtAcc;eC=eb-eX;if(eC>fp){eC=fp}else{if(eC<-fp){eC=-fp}}eX=eC-eb;fc.c1.jtAcc=eC;eH=-fc.ny*eX;eo=fc.nx*eX;fc.b2.velx+=eH*fc.b2.imass;fc.b2.vely+=eo*fc.b2.imass;fc.b1.velx-=eH*fc.b1.imass;fc.b1.vely-=eo*fc.b1.imass;fc.b2.angvel+=fc.rt1b*eX*fc.b2.iinertia;fc.b1.angvel-=fc.rt1a*eX*fc.b1.iinertia;if(fc.hc2){var eR=fc.k2x+fc.b2.velx-fc.c2.r2y*fc.b2.angvel-(fc.b1.velx-fc.c2.r1y*fc.b1.angvel);var eL=fc.k2y+fc.b2.vely+fc.c2.r2x*fc.b2.angvel-(fc.b1.vely+fc.c2.r1x*fc.b1.angvel);eX=(eL*fc.nx-eR*fc.ny+fc.surfacex)*fc.c2.tMass;fp=fc.c2.friction*fc.c2.jnAcc;eb=fc.c2.jtAcc;eC=eb-eX;if(eC>fp){eC=fp}else{if(eC<-fp){eC=-fp}}eX=eC-eb;fc.c2.jtAcc=eC;eH=-fc.ny*eX;eo=fc.nx*eX;fc.b2.velx+=eH*fc.b2.imass;fc.b2.vely+=eo*fc.b2.imass;fc.b1.velx-=eH*fc.b1.imass;fc.b1.vely-=eo*fc.b1.imass;fc.b2.angvel+=fc.rt2b*eX*fc.b2.iinertia;fc.b1.angvel-=fc.rt2a*eX*fc.b1.iinertia;ga=fc.k1x+fc.b2.velx-fc.c1.r2y*fc.b2.angvel-(fc.b1.velx-fc.c1.r1y*fc.b1.angvel);fP=fc.k1y+fc.b2.vely+fc.c1.r2x*fc.b2.angvel-(fc.b1.vely+fc.c1.r1x*fc.b1.angvel);eR=fc.k2x+fc.b2.velx-fc.c2.r2y*fc.b2.angvel-(fc.b1.velx-fc.c2.r1y*fc.b1.angvel);eL=fc.k2y+fc.b2.vely+fc.c2.r2x*fc.b2.angvel-(fc.b1.vely+fc.c2.r1x*fc.b1.angvel);var f6=fc.c1.jnAcc;var fH=fc.c2.jnAcc;var ev=ga*fc.nx+fP*fc.ny+fc.surfacey+fc.c1.bounce-(fc.Ka*f6+fc.Kb*fH);var ee=eR*fc.nx+eL*fc.ny+fc.surfacey+fc.c2.bounce-(fc.Kb*f6+fc.Kc*fH);var ek=-(fc.kMassa*ev+fc.kMassb*ee);var gz=-(fc.kMassb*ev+fc.kMassc*ee);if(ek>=0&&gz>=0){ev=ek-f6;ee=gz-fH;fc.c1.jnAcc=ek;fc.c2.jnAcc=gz}else{ek=-fc.c1.nMass*ev;if(ek>=0&&fc.Kb*ek+ee>=0){ev=ek-f6;ee=-fH;fc.c1.jnAcc=ek;fc.c2.jnAcc=0}else{gz=-fc.c2.nMass*ee;if(gz>=0&&fc.Kb*gz+ev>=0){ev=-f6;ee=gz-fH;fc.c1.jnAcc=0;fc.c2.jnAcc=gz}else{if(ev>=0&&ee>=0){ev=-f6;ee=-fH;fc.c1.jnAcc=fc.c2.jnAcc=0}else{ev=0;ee=0}}}}eX=ev+ee;eH=fc.nx*eX;eo=fc.ny*eX;fc.b2.velx+=eH*fc.b2.imass;fc.b2.vely+=eo*fc.b2.imass;fc.b1.velx-=eH*fc.b1.imass;fc.b1.vely-=eo*fc.b1.imass;fc.b2.angvel+=(fc.rn1b*ev+fc.rn2b*ee)*fc.b2.iinertia;fc.b1.angvel-=(fc.rn1a*ev+fc.rn2a*ee)*fc.b1.iinertia}else{if(fc.radius!=0){eX=(fc.b2.angvel-fc.b1.angvel)*fc.rMass;fp=fc.rfric*fc.c1.jnAcc;eb=fc.jrAcc;fc.jrAcc-=eX;if(fc.jrAcc>fp){fc.jrAcc=fp}else{if(fc.jrAcc<-fp){fc.jrAcc=-fp}}eX=fc.jrAcc-eb;fc.b2.angvel+=eX*fc.b2.iinertia;fc.b1.angvel-=eX*fc.b1.iinertia}ga=fc.k1x+fc.b2.velx-fc.c1.r2y*fc.b2.angvel-(fc.b1.velx-fc.c1.r1y*fc.b1.angvel);fP=fc.k1y+fc.b2.vely+fc.c1.r2x*fc.b2.angvel-(fc.b1.vely+fc.c1.r1x*fc.b1.angvel);eX=(fc.c1.bounce+(fc.nx*ga+fc.ny*fP)+fc.surfacey)*fc.c1.nMass;eb=fc.c1.jnAcc;eC=eb-eX;if(eC<0){eC=0}eX=eC-eb;fc.c1.jnAcc=eC;eH=fc.nx*eX;eo=fc.ny*eX;fc.b2.velx+=eH*fc.b2.imass;fc.b2.vely+=eo*fc.b2.imass;fc.b1.velx-=eH*fc.b1.imass;fc.b1.vely-=eo*fc.b1.imass;fc.b2.angvel+=fc.rn1b*eX*fc.b2.iinertia;fc.b1.angvel-=fc.rn1a*eX*fc.b1.iinertia}ea.sweep_angvel=ea.angvel%eQ;gt.sweep_angvel=gt.angvel%eQ}}}if(ey!=null&&(ey.active&&(ey.immState&1)!=0)&&ey.type==j.COL){if(!ea.sweepFrozen&&ea.type!=3){ea.sweepFrozen=true;if(gw.failed){ea.angvel=ea.sweep_angvel=0}else{if(gw.slipped){ea.angvel=ea.sweep_angvel*=P.angularCCDSlipScale}else{ea.angvel=ea.sweep_angvel}}}if(!gt.sweepFrozen&&gt.type!=3){gt.sweepFrozen=true;if(gw.failed){gt.angvel=gt.sweep_angvel=0}else{if(gw.slipped){gt.angvel=gt.sweep_angvel*=P.angularCCDSlipScale}else{gt.angvel=gt.sweep_angvel}}}}var fW=gw;fW.next=ct.zpp_pool;ct.zpp_pool=fW}while(this.toiEvents.head!=null){var gD=this.toiEvents.pop_unsafe();gD.next=ct.zpp_pool;ct.zpp_pool=gD}var eV=this.kinematics.head;while(eV!=null){var gm=eV.elt;var fD=fG-gm.sweepTime;if(fD!=0){gm.sweepTime=fG;gm.posx+=gm.velx*fD;gm.posy+=gm.vely*fD;if(gm.angvel!=0){var f1=gm.sweep_angvel*fD;gm.rot+=f1;if(f1*f1>0.0001){gm.axisx=Math.sin(gm.rot);gm.axisy=Math.cos(gm.rot)}else{var gr=f1*f1;var gf=1-0.5*gr;var ei=1-gr*gr/8;var eD=(gf*gm.axisx+f1*gm.axisy)*ei;gm.axisy=(gf*gm.axisy-f1*gm.axisx)*ei;gm.axisx=eD}}}gm.sweepTime=0;eV=eV.next}var eU=this.live.head;while(eU!=null){var fl=eU.elt;if(!fl.sweepFrozen){var fB=fG-fl.sweepTime;if(fB!=0){fl.sweepTime=fG;fl.posx+=fl.velx*fB;fl.posy+=fl.vely*fB;if(fl.angvel!=0){var f0=fl.sweep_angvel*fB;fl.rot+=f0;if(f0*f0>0.0001){fl.axisx=Math.sin(fl.rot);fl.axisy=Math.cos(fl.rot)}else{var gq=f0*f0;var ge=1-0.5*gq;var eg=1-gq*gq/8;var eB=(ge*fl.axisx+f0*fl.axisy)*eg;fl.axisy=(ge*fl.axisy-f0*fl.axisx)*eg;fl.axisx=eB}}}}fl.sweepTime=0;eU=eU.next}};a3.prototype.continuousEvent=function(ed,ec,eE,ei,eH){if(ed.body.sweepFrozen&&ec.body.sweepFrozen){return ei}if(ed.body.disableCCD||ec.body.disableCCD){return ei}var eF;if(!(ei!=null&&ei.colarb==null)){var ek=ed.body;var ej=ec.body;var eb;eb=false;var ew=ek.constraints.head;while(ew!=null){var eg=ew.elt;if(eg.ignore&&eg.pair_exists(ek.id,ej.id)){eb=true;break}ew=ew.next}var ev;var eu;if(!eb){var ee=ed;while(ee!=null&&ee.group==null){if(ee.ishape!=null){ee=ee.ishape.body}else{if(ee.icompound!=null){ee=ee.icompound.compound}else{ee=ee.ibody.compound}}}var ea=ee==null?null:ee.group;var es;if(ea==null){es=false}else{var eh=ec;while(eh!=null&&eh.group==null){if(eh.ishape!=null){eh=eh.ishape.body}else{if(eh.icompound!=null){eh=eh.icompound.compound}else{eh=eh.ibody.compound}}}var eI=eh==null?null:eh.group;if(eI==null){es=false}else{var eG=false;while(ea!=null&&eI!=null){if(ea==eI){eG=ea.ignore;break}if(ea.depth<eI.depth){eI=eI.group}else{ea=ea.group}}es=eG}}eu=!es}else{eu=false}if(eu){var er;if(ed.sensorEnabled||ec.sensorEnabled){var ey=ed.filter;var el=ec.filter;if((ey.sensorMask&el.sensorGroup)!=0){er=(el.sensorMask&ey.sensorGroup)!=0}else{er=false}}else{er=false}if(er){ev=2}else{var ep;var eo;if(ed.fluidEnabled||ec.fluidEnabled){var eC=ed.filter;var eB=ec.filter;if((eC.fluidMask&eB.fluidGroup)!=0){eo=(eB.fluidMask&eC.fluidGroup)!=0}else{eo=false}}else{eo=false}if(eo){ep=!(ek.imass==0&&ej.imass==0&&ek.iinertia==0&&ej.iinertia==0)}else{ep=false}if(ep){ev=0}else{var en;var eA=ed.filter;var ez=ec.filter;if((eA.collisionMask&ez.collisionGroup)!=0&&(ez.collisionMask&eA.collisionGroup)!=0){en=!(ek.imass==0&&ej.imass==0&&ek.iinertia==0&&ej.iinertia==0)}else{en=false}if(en){ev=1}else{ev=-1}}}}else{ev=-1}eF=ev<=0}else{eF=true}if(eF){return ei}var eD=ed.body;var ef=ec.body;if(eE||eD.bullet||ef.bullet){var ex;if(ct.zpp_pool==null){ex=new ct()}else{ex=ct.zpp_pool;ct.zpp_pool=ex.next;ex.next=null}ex.failed=false;ex.s1=ex.s2=null;ex.arbiter=null;var eq=eD.type==3||ef.type==3;if(eE&&!eq){if(ed.body.type!=2){ex.s2=ed;ex.s1=ec}else{ex.s1=ed;ex.s2=ec}ex.kinematic=false;de.staticSweep(ex,this.pre_dt,0,P.collisionSlopCCD)}else{ex.s1=ed;ex.s2=ec;ex.kinematic=eq;if(ex.s1.body.sweepFrozen||ex.s2.body.sweepFrozen){if(ex.s1.body.sweepFrozen){var em=ex.s1;ex.s1=ex.s2;ex.s2=em;ex.frozen1=false;ex.frozen2=true}de.staticSweep(ex,this.pre_dt,0,P.collisionSlopCCD)}else{de.dynamicSweep(ex,this.pre_dt,0,P.collisionSlopCCD)}}if(eE&&ex.toi<0||ex.failed){var et=ex;et.next=ct.zpp_pool;ct.zpp_pool=et}else{this.toiEvents.add(ex);ex.frozen1=ex.s1.body.sweepFrozen;ex.frozen2=ex.s2.body.sweepFrozen;ex.arbiter=ei!=null?ei.colarb:null}}return ei};a3.prototype.bodyCbWake=function(eb){if(eb.type==2&&eb.cbSet!=null){if(this.midstep){var ed=eb.cbSet.bodylisteners.head;while(ed!=null){var ec=ed.elt;if(ec.event!=2){ed=ed.next;continue}var ea=this.push_callback(ec);ea.event=2;ea.body=eb;ed=ed.next}}else{eb.component.woken=true}}};a3.prototype.bodyCbSleep=function(eb){if(eb.type==2&&eb.cbSet!=null){var ed=eb.cbSet.bodylisteners.head;while(ed!=null){var ec=ed.elt;if(ec.event!=3){ed=ed.next;continue}var ea=this.push_callback(ec);ea.event=3;ea.body=eb;ed=ed.next}}};a3.prototype.constraintCbWake=function(eb){if(eb.cbSet!=null){if(this.midstep){var ed=eb.cbSet.conlisteners.head;while(ed!=null){var ec=ed.elt;if(ec.event!=2){ed=ed.next;continue}var ea=this.push_callback(ec);ea.event=2;ea.constraint=eb;ed=ed.next}}else{eb.component.woken=true}}};a3.prototype.constraintCbSleep=function(eb){if(eb.cbSet!=null){var ed=eb.cbSet.conlisteners.head;while(ed!=null){var ec=ed.elt;if(ec.event!=3){ed=ed.next;continue}var ea=this.push_callback(ec);ea.event=3;ea.constraint=eb;ed=ed.next}}};a3.prototype.constraintCbBreak=function(eb){if(eb.cbSet!=null){var ed=eb.cbSet.conlisteners.head;while(ed!=null){var ec=ed.elt;if(ec.event!=4){ed=ed.next;continue}var ea=this.push_callback(ec);ea.event=4;ea.constraint=eb;ed=ed.next}}};a3.prototype.nullListenerType=function(eb,ea){var ed=new bn();var ep=eb.interactors.head;while(ep!=null){ed.add(ep.elt);ep=ep.next}if(eb!=ea){var em=ea.interactors.head;while(em!=null){ed.add(em.elt);em=em.next}}while(ed.head!=null){var ee=ed.pop_unsafe();if(ee.icompound!=null){var er=ee.icompound;var el=er.bodies.head;while(el!=null){ed.add(el.elt);el=el.next}var ek=er.compounds.head;while(ek!=null){ed.add(ek.elt);ek=ek.next}}else{var eg=ee.ibody!=null?ee.ibody:ee.ishape.body;var ef=ee.ishape!=null?ee.ishape:null;var ej=eg.arbiters.head;while(ej!=null){var ec=ej.elt;if(ec.present==0){ej=ej.next;continue}if(ef!=null&&!(ec.ws1==ef||ec.ws2==ef)){ej=ej.next;continue}this.MRCA_chains(ec.ws1,ec.ws2);var ei=this.mrca1.head;while(ei!=null){var eo=ei.elt;if(eo.cbSet!=eb&&eo.cbSet!=ea){ei=ei.next;continue}var eh=this.mrca2.head;while(eh!=null){var en=eh.elt;if(eo.cbSet==eb&&en.cbSet!=ea||eo.cbSet==ea&&en.cbSet!=eb){eh=eh.next;continue}var eq=dM.get(eo,en);if(eq!=null){while(eq.arbiters.head!=null){eq.arbiters.pop_unsafe().present--}this.remove_callbackset(eq)}eh=eh.next}ei=ei.next}ej=ej.next}}}};a3.prototype.nullInteractorType=function(en,ei){if(ei==null){ei=en}if(en.icompound!=null){var ef=en.icompound;var eb=ef.bodies.head;while(eb!=null){this.nullInteractorType(eb.elt,ei);eb=eb.next}var el=ef.compounds.head;while(el!=null){this.nullInteractorType(el.elt,ei);el=el.next}}else{var ea=en.ibody!=null?en.ibody:en.ishape.body;var eg=en.ishape!=null?en.ishape:null;var ek=ea.arbiters.head;while(ek!=null){var em=ek.elt;if(em.present==0){ek=ek.next;continue}if(eg!=null&&!(em.ws1==eg||em.ws2==eg)){ek=ek.next;continue}this.MRCA_chains(em.ws1,em.ws2);var ej=this.mrca1.head;while(ej!=null){var ed=ej.elt;var eh=this.mrca2.head;while(eh!=null){var ec=eh.elt;if(ed!=ei&&ec!=ei){eh=eh.next;continue}var ee=dM.get(ed,ec);if(ee!=null){em.present--;ee.remove_arb(em);if(ee.arbiters.head==null){this.remove_callbackset(ee)}}eh=eh.next}ej=ej.next}ek=ek.next}}};a3.prototype.freshListenerType=function(eb,ea){var ee=new bn();var er=eb.interactors.head;while(er!=null){ee.add(er.elt);er=er.next}if(eb!=ea){var eo=ea.interactors.head;while(eo!=null){ee.add(eo.elt);eo=eo.next}}while(ee.head!=null){var ef=ee.pop_unsafe();if(ef.icompound!=null){var ev=ef.icompound;var en=ev.bodies.head;while(en!=null){ee.add(en.elt);en=en.next}var em=ev.compounds.head;while(em!=null){ee.add(em.elt);em=em.next}}else{var ei=ef.ibody!=null?ef.ibody:ef.ishape.body;var eh=ef.ishape!=null?ef.ishape:null;var el=ei.arbiters.head;while(el!=null){var ec=el.elt;if(!ec.presentable){el=el.next;continue}if(eh!=null&&!(ec.ws1==eh||ec.ws2==eh)){el=el.next;continue}this.MRCA_chains(ec.ws1,ec.ws2);var ek=this.mrca1.head;while(ek!=null){var eq=ek.elt;if(eq.cbSet!=eb&&eq.cbSet!=ea){ek=ek.next;continue}var ej=this.mrca2.head;while(ej!=null){var ep=ej.elt;if(eq.cbSet==eb&&ep.cbSet!=ea||eq.cbSet==ea&&ep.cbSet!=eb){ej=ej.next;continue}var et=dM.get(eq,ep);if(et==null){et=cg.get(eq,ep);this.add_callbackset(et)}var ew;var ex;ex=false;var eg=et.arbiters.head;while(eg!=null){if(eg.elt==ec){ex=true;break}eg=eg.next}if(!ex){var es=et.arbiters;var ed;if(dL.zpp_pool==null){ed=new dL()}else{ed=dL.zpp_pool;dL.zpp_pool=ed.next;ed.next=null}ed.elt=ec;var eu=ed;eu.next=es.head;es.head=eu;es.modified=true;es.length++;ew=true}else{ew=false}if(ew){ec.present++}ej=ej.next}ek=ek.next}el=el.next}}}};a3.prototype.freshInteractorType=function(eg,ey){if(ey==null){ey=eg}if(eg.icompound!=null){var ew=eg.icompound;var es=ew.bodies.head;while(es!=null){this.freshInteractorType(es.elt,ey);es=es.next}var ep=ew.compounds.head;while(ep!=null){this.freshInteractorType(ep.elt,ey);ep=ep.next}}else{var ei=eg.ibody!=null?eg.ibody:eg.ishape.body;var eh=eg.ishape!=null?eg.ishape:null;var eo=ei.arbiters.head;while(eo!=null){var ed=eo.elt;if(!ed.presentable){eo=eo.next;continue}if(eh!=null&&!(ed.ws1==eh||ed.ws2==eh)){eo=eo.next;continue}this.MRCA_chains(ed.ws1,ed.ws2);var em=this.mrca1.head;while(em!=null){var er=em.elt;var el=this.mrca2.head;while(el!=null){var eq=el.elt;if(er!=ey&&eq!=ey){el=el.next;continue}var eb=er.cbSet;var ea=eq.cbSet;eb.validate();ea.validate();var ez=null;var ek=(eb.cbpairs.length<ea.cbpairs.length?eb.cbpairs:ea.cbpairs).head;while(ek!=null){var en=ek.elt;if(en.a==eb&&en.b==ea||en.a==ea&&en.b==eb){ez=en;break}ek=ek.next}if(ez==null){var ef;if(ar.zpp_pool==null){ef=new ar()}else{ef=ar.zpp_pool;ar.zpp_pool=ef.next;ef.next=null}ef.zip_listeners=true;if(cC.setlt(eb,ea)){ef.a=eb;ef.b=ea}else{ef.a=ea;ef.b=eb}ez=ef;eb.cbpairs.add(ez);if(ea!=eb){ea.cbpairs.add(ez)}}if(ez.zip_listeners){ez.zip_listeners=false;ez.__validate()}if(ez.listeners.head!=null){var eu=dM.get(er,eq);if(eu==null){eu=cg.get(er,eq);this.add_callbackset(eu)}var ex;var ee;ee=false;var ej=eu.arbiters.head;while(ej!=null){if(ej.elt==ed){ee=true;break}ej=ej.next}if(!ee){var et=eu.arbiters;var ec;if(dL.zpp_pool==null){ec=new dL()}else{ec=dL.zpp_pool;dL.zpp_pool=ec.next;ec.next=null}ec.elt=ed;var ev=ec;ev.next=et.head;et.head=ev;et.modified=true;et.length++;ex=true}else{ex=false}if(ex){ed.present++}}el=el.next}em=em.next}eo=eo.next}}};a3.prototype.wakeCompound=function(ea){var eb=ea.bodies.head;while(eb!=null){var ee=eb.elt;if(!ee.world){ee.component.waket=this.stamp+(this.midstep?0:1);if(ee.type==3){ee.kinematicDelaySleep=true}if(ee.component.sleeping){this.really_wake(ee,false)}}eb=eb.next}var ed=ea.constraints.head;while(ed!=null){this.wake_constraint(ed.elt);ed=ed.next}var ec=ea.compounds.head;while(ec!=null){this.wakeCompound(ec.elt);ec=ec.next}};a3.prototype.wakeIsland=function(eo){while(eo.comps.head!=null){var et=eo.comps.pop_unsafe();et.waket=this.stamp+(this.midstep?0:1);if(et.isBody){var eu=et.body;this.live.add(eu);var ek=eu.arbiters.head;while(ek!=null){var eh=ek.elt;if(eh.sleeping){eh.sleeping=false;eh.up_stamp+=this.stamp-eh.sleep_stamp;if(eh.type==j.COL){var eb=eh.colarb;if(eb.stat){var el=this.c_arbiters_true;var ex;if(bi.zpp_pool==null){ex=new bi()}else{ex=bi.zpp_pool;bi.zpp_pool=ex.next;ex.next=null}ex.elt=eb;var es=ex;es.next=el.head;el.head=es;el.modified=true;el.length++}else{var er=this.c_arbiters_false;var eg;if(bi.zpp_pool==null){eg=new bi()}else{eg=bi.zpp_pool;bi.zpp_pool=eg.next;eg.next=null}eg.elt=eb;var ez=eg;ez.next=er.head;er.head=ez;er.modified=true;er.length++}}else{if(eh.type==j.FLUID){var eq=this.f_arbiters;var ej=eh.fluidarb;var ef;if(bb.zpp_pool==null){ef=new bb()}else{ef=bb.zpp_pool;bb.zpp_pool=ef.next;ef.next=null}ef.elt=ej;var ey=ef;ey.next=eq.head;eq.head=ey;eq.modified=true;eq.length++}else{var ep=this.s_arbiters;var em=eh.sensorarb;var ee;if(L.zpp_pool==null){ee=new L()}else{ee=L.zpp_pool;L.zpp_pool=ee.next;ee.next=null}ee.elt=em;var ew=ee;ew.next=ep.head;ep.head=ew;ep.modified=true;ep.length++}}}ek=ek.next}this.bodyCbWake(eu);et.sleeping=false;et.island=null;et.parent=et;et.rank=0;if(eu.type!=1){var ei=eu.shapes.head;while(ei!=null){var ea=ei.elt;if(ea.node!=null){this.bphase.sync(ea)}ei=ei.next}}}else{var ec=et.constraint;var en=this.live_constraints;var ed;if(cx.zpp_pool==null){ed=new cx()}else{ed=cx.zpp_pool;cx.zpp_pool=ed.next;ed.next=null}ed.elt=ec;var ev=ed;ev.next=en.head;en.head=ev;en.modified=true;en.length++;this.constraintCbWake(ec);et.sleeping=false;et.island=null;et.parent=et;et.rank=0}}eo.next=cW.zpp_pool;cW.zpp_pool=eo};a3.prototype.non_inlined_wake=function(eb,ea){if(ea==null){ea=false}if(!eb.world){eb.component.waket=this.stamp+(this.midstep?0:1);if(eb.type==3){eb.kinematicDelaySleep=true}if(eb.component.sleeping){this.really_wake(eb,ea)}}};a3.prototype.really_wake=function(em,eb){if(eb==null){eb=false}if(em.component.island==null){em.component.sleeping=false;if(em.type==3||em.type==1){var er=this.staticsleep;var eC;if(bE.zpp_pool==null){eC=new bE()}else{eC=bE.zpp_pool;bE.zpp_pool=eC.next;eC.next=null}eC.elt=em;var ey=eC;ey.next=er.head;er.head=ey;er.modified=true;er.length++}else{var ex=this.live;var ei;if(bE.zpp_pool==null){ei=new bE()}else{ei=bE.zpp_pool;bE.zpp_pool=ei.next;ei.next=null}ei.elt=em;var eE=ei;eE.next=ex.head;ex.head=eE;ex.modified=true;ex.length++}var ep=em.constraints.head;while(ep!=null){var ee=ep.elt;if(ee.space==this){this.wake_constraint(ee)}ep=ep.next}var el=em.arbiters.head;while(el!=null){var ej=el.elt;if(ej.sleeping){ej.sleeping=false;ej.up_stamp+=this.stamp+(this.midstep?0:1)-ej.sleep_stamp;if(ej.type==j.COL){var ec=ej.colarb;if(ec.stat){var ew=this.c_arbiters_true;var eh;if(bi.zpp_pool==null){eh=new bi()}else{eh=bi.zpp_pool;bi.zpp_pool=eh.next;eh.next=null}eh.elt=ec;var eD=eh;eD.next=ew.head;ew.head=eD;ew.modified=true;ew.length++}else{var ev=this.c_arbiters_false;var eg;if(bi.zpp_pool==null){eg=new bi()}else{eg=bi.zpp_pool;bi.zpp_pool=eg.next;eg.next=null}eg.elt=ec;var eB=eg;eB.next=ev.head;ev.head=eB;ev.modified=true;ev.length++}}else{if(ej.type==j.FLUID){var eu=this.f_arbiters;var et=ej.fluidarb;var ef;if(bb.zpp_pool==null){ef=new bb()}else{ef=bb.zpp_pool;bb.zpp_pool=ef.next;ef.next=null}ef.elt=et;var eA=ef;eA.next=eu.head;eu.head=eA;eu.modified=true;eu.length++}else{var es=this.s_arbiters;var eq=ej.sensorarb;var ed;if(L.zpp_pool==null){ed=new L()}else{ed=L.zpp_pool;L.zpp_pool=ed.next;ed.next=null}ed.elt=eq;var ez=ed;ez.next=es.head;es.head=ez;es.modified=true;es.length++}}}if(ej.type!=j.SENSOR&&!ej.cleared&&ej.up_stamp>=this.stamp&&(ej.immState&1)!=0){if(ej.b1.type==2&&ej.b1.component.sleeping){var eo=ej.b1;if(!eo.world){eo.component.waket=this.stamp+(this.midstep?0:1);if(eo.type==3){eo.kinematicDelaySleep=true}if(eo.component.sleeping){this.really_wake(eo,false)}}}if(ej.b2.type==2&&ej.b2.component.sleeping){var en=ej.b2;if(!en.world){en.component.waket=this.stamp+(this.midstep?0:1);if(en.type==3){en.kinematicDelaySleep=true}if(en.component.sleeping){this.really_wake(en,false)}}}}el=el.next}if(!eb&&em.type==2){this.bodyCbWake(em)}if(!eb&&!this.bphase.is_sweep&&em.type!=1){var ek=em.shapes.head;while(ek!=null){var ea=ek.elt;if(ea.node!=null){this.bphase.sync(ea)}ek=ek.next}}}else{this.wakeIsland(em.component.island)}};a3.prototype.wake_constraint=function(ea,ec){if(ec==null){ec=false}if(ea.active){ea.component.waket=this.stamp+(this.midstep?0:1);if(ea.component.sleeping){if(ea.component.island==null){ea.component.sleeping=false;var ee=this.live_constraints;var ed;if(cx.zpp_pool==null){ed=new cx()}else{ed=cx.zpp_pool;cx.zpp_pool=ed.next;ed.next=null}ed.elt=ea;var eb=ed;eb.next=ee.head;ee.head=eb;ee.modified=true;ee.length++;ea.wake_connected();if(!ec){this.constraintCbWake(ea)}}else{this.wakeIsland(ea.component.island)}return true}else{return false}}else{return false}};a3.prototype.doForests=function(em){var eo=this.c_arbiters_false.head;while(eo!=null){var eJ=eo.elt;if(!eJ.cleared&&eJ.up_stamp==this.stamp&&(eJ.immState&1)!=0){if(eJ.b1.type==2&&eJ.b2.type==2){var eL;if(eJ.b1.component==eJ.b1.component.parent){eL=eJ.b1.component}else{var ed=eJ.b1.component;var eD=null;while(ed!=ed.parent){var fa=ed.parent;ed.parent=eD;eD=ed;ed=fa}while(eD!=null){var fc=eD.parent;eD.parent=ed;eD=fc}eL=ed}var eu;if(eJ.b2.component==eJ.b2.component.parent){eu=eJ.b2.component}else{var ej=eJ.b2.component;var eI=null;while(ej!=ej.parent){var fb=ej.parent;ej.parent=eI;eI=ej;ej=fb}while(eI!=null){var e9=eI.parent;eI.parent=ej;eI=e9}eu=ej}if(eL!=eu){if(eL.rank<eu.rank){eL.parent=eu}else{if(eL.rank>eu.rank){eu.parent=eL}else{eu.parent=eL;eL.rank++}}}}}eo=eo.next}var eA=this.f_arbiters.head;while(eA!=null){var ek=eA.elt;if(!ek.cleared&&ek.up_stamp==this.stamp&&(ek.immState&1)!=0){if(ek.b1.type==2&&ek.b2.type==2){var eB;if(ek.b1.component==ek.b1.component.parent){eB=ek.b1.component}else{var eh=ek.b1.component;var eH=null;while(eh!=eh.parent){var e8=eh.parent;eh.parent=eH;eH=eh;eh=e8}while(eH!=null){var e7=eH.parent;eH.parent=eh;eH=e7}eB=eh}var et;if(ek.b2.component==ek.b2.component.parent){et=ek.b2.component}else{var eg=ek.b2.component;var eG=null;while(eg!=eg.parent){var e6=eg.parent;eg.parent=eG;eG=eg;eg=e6}while(eG!=null){var e5=eG.parent;eG.parent=eg;eG=e5}et=eg}if(eB!=et){if(eB.rank<et.rank){eB.parent=et}else{if(eB.rank>et.rank){et.parent=eB}else{et.parent=eB;eB.rank++}}}}}eA=eA.next}var ez=this.live_constraints.head;while(ez!=null){ez.elt.forest();ez=ez.next}while(this.live.head!=null){var ei=this.live;var eK=ei.head.elt;ei.pop();var eX=eK.component;var eF;if(eX==eX.parent){eF=eX}else{var ef=eX;var eE=null;while(ef!=ef.parent){var e3=ef.parent;ef.parent=eE;eE=ef;ef=e3}while(eE!=null){var e2=eE.parent;eE.parent=ef;eE=e2}eF=ef}if(eF.island==null){if(cW.zpp_pool==null){eF.island=new cW()}else{eF.island=cW.zpp_pool;cW.zpp_pool=eF.island.next;eF.island.next=null}eF.island.waket=0;var e1=this.islands;var e4=eF.island;e4._inuse=true;e4.next=e1.next;e1.next=e4;e1.modified=true;e1.length++;eF.island.sleep=true}eX.island=eF.island;var e0=eX.island.comps;var eW;if(dv.zpp_pool==null){eW=new dv()}else{eW=dv.zpp_pool;dv.zpp_pool=eW.next;eW.next=null}eW.elt=eX;var en=eW;en.next=e0.head;e0.head=en;e0.modified=true;e0.length++;var ey=eK.atRest(em);eX.island.sleep=eX.island.sleep&&ey;if(eX.waket>eX.island.waket){eX.island.waket=eX.waket}}while(this.live_constraints.head!=null){var eZ=this.live_constraints;var eU=eZ.head.elt;eZ.pop();var ev=eU.component;var el;if(ev==ev.parent){el=ev}else{var ee=ev;var eC=null;while(ee!=ee.parent){var eq=ee.parent;ee.parent=eC;eC=ee;ee=eq}while(eC!=null){var ep=eC.parent;eC.parent=ee;eC=ep}el=ee}ev.island=el.island;var eY=ev.island.comps;var eS;if(dv.zpp_pool==null){eS=new dv()}else{eS=dv.zpp_pool;dv.zpp_pool=eS.next;eS.next=null}eS.elt=ev;var ec=eS;ec.next=eY.head;eY.head=ec;eY.modified=true;eY.length++;if(ev.waket>ev.island.waket){ev.island.waket=ev.waket}}while(this.islands.next!=null){var eV=this.islands;var eQ=eV.next;eV.pop();if(eQ.sleep){var ex=eQ.comps.head;while(ex!=null){var fd=ex.elt;if(fd.isBody){var fe=fd.body;fe.velx=0;fe.vely=0;fe.angvel=0;fd.sleeping=true;var ew=fe.shapes.head;while(ew!=null){this.bphase.sync(ew.elt);ew=ew.next}this.bodyCbSleep(fe)}else{this.constraintCbSleep(fd.constraint);fd.sleeping=true}ex=ex.next}}else{while(eQ.comps.head!=null){var eT=eQ.comps;var eO=eT.head.elt;eT.pop();eO.waket=eQ.waket;if(eO.isBody){var eR=this.live;var es=eO.body;var eN;if(bE.zpp_pool==null){eN=new bE()}else{eN=bE.zpp_pool;bE.zpp_pool=eN.next;eN.next=null}eN.elt=es;var eb=eN;eb.next=eR.head;eR.head=eb;eR.modified=true;eR.length++}else{var eP=this.live_constraints;var er=eO.constraint;var eM;if(cx.zpp_pool==null){eM=new cx()}else{eM=cx.zpp_pool;cx.zpp_pool=eM.next;eM.next=null}eM.elt=er;var ea=eM;ea.next=eP.head;eP.head=ea;eP.modified=true;eP.length++}eO.sleeping=false;eO.island=null;eO.parent=eO;eO.rank=0}eQ.next=cW.zpp_pool;cW.zpp_pool=eQ}}};a3.prototype.sleepArbiters=function(){var ep=null;var eo=this.c_arbiters_true;var eg=eo.head;var ed=this.c_arbiters_false!=null;if(ed&&eg==null){ed=false;eg=this.c_arbiters_false.head;eo=this.c_arbiters_false;ep=null}while(eg!=null){var en=eg.elt;if(en.b1.component.sleeping&&en.b2.component.sleeping){en.sleep_stamp=this.stamp;en.sleeping=true;var ea;var ev;if(ep==null){ea=eo.head;ev=ea.next;eo.head=ev;if(eo.head==null){eo.pushmod=true}}else{ea=ep.next;ev=ea.next;ep.next=ev;if(ev==null){eo.pushmod=true}}var eq=ea;eq.elt=null;eq.next=bi.zpp_pool;bi.zpp_pool=eq;eo.modified=true;eo.length--;eo.pushmod=true;eg=ev;if(ed&&eg==null){ed=false;eg=this.c_arbiters_false.head;eo=this.c_arbiters_false;ep=null}continue}ep=eg;eg=eg.next;if(ed&&eg==null){ed=false;eg=this.c_arbiters_false.head;eo=this.c_arbiters_false;ep=null}}var ec=null;var ef=this.f_arbiters;var em=ef.head;while(em!=null){var eu=em.elt;if(eu.b1.component.sleeping&&eu.b2.component.sleeping){eu.sleep_stamp=this.stamp;eu.sleeping=true;var ej;var ek;if(ec==null){ej=ef.head;ek=ej.next;ef.head=ek;if(ef.head==null){ef.pushmod=true}}else{ej=ec.next;ek=ej.next;ec.next=ek;if(ek==null){ef.pushmod=true}}var es=ej;es.elt=null;es.next=bb.zpp_pool;bb.zpp_pool=es;ef.modified=true;ef.length--;ef.pushmod=true;em=ek;continue}ec=em;em=em.next}var eb=null;var ee=this.s_arbiters;var el=ee.head;while(el!=null){var et=el.elt;if(et.b1.component.sleeping&&et.b2.component.sleeping){et.sleep_stamp=this.stamp;et.sleeping=true;var eh;var ei;if(eb==null){eh=ee.head;ei=eh.next;ee.head=ei;if(ee.head==null){ee.pushmod=true}}else{eh=eb.next;ei=eh.next;eb.next=ei;if(ei==null){ee.pushmod=true}}var er=eh;er.elt=null;er.next=L.zpp_pool;L.zpp_pool=er;ee.modified=true;ee.length--;ee.pushmod=true;el=ei;continue}eb=el;el=el.next}};a3.prototype.static_validation=function(ek){if(ek.shapes.head!=null){if(ek.zip_aabb){ek.zip_aabb=false;ek.aabb.minx=Infinity;ek.aabb.miny=Infinity;ek.aabb.maxx=-Infinity;ek.aabb.maxy=-Infinity;var eb=ek.shapes.head;while(eb!=null){var eK=eb.elt;if(eK.zip_aabb){if(eK.body!=null){eK.zip_aabb=false;if(eK.type==0){var ea=eK.circle;if(ea.zip_worldCOM){if(ea.body!=null){ea.zip_worldCOM=false;if(ea.zip_localCOM){ea.zip_localCOM=false;if(ea.type==1){var eI=ea.polygon;if(eI.lverts.next.next==null){eI.localCOMx=eI.lverts.next.x;eI.localCOMy=eI.lverts.next.y}else{if(eI.lverts.next.next.next==null){eI.localCOMx=eI.lverts.next.x;eI.localCOMy=eI.lverts.next.y;eI.localCOMx+=eI.lverts.next.next.x;eI.localCOMy+=eI.lverts.next.next.y;eI.localCOMx*=0.5;eI.localCOMy*=0.5}else{eI.localCOMx=0;eI.localCOMy=0;var ep=0;var ej=eI.lverts.next;var eH=ej;ej=ej.next;var eF=ej;ej=ej.next;while(ej!=null){var eD=ej;ep+=eF.x*(eD.y-eH.y);var eo=eD.y*eF.x-eD.x*eF.y;eI.localCOMx+=(eF.x+eD.x)*eo;eI.localCOMy+=(eF.y+eD.y)*eo;eH=eF;eF=eD;ej=ej.next}ej=eI.lverts.next;var es=ej;ep+=eF.x*(es.y-eH.y);var eA=es.y*eF.x-es.x*eF.y;eI.localCOMx+=(eF.x+es.x)*eA;eI.localCOMy+=(eF.y+es.y)*eA;eH=eF;ej=ej.next;var eq=ej;ep+=es.x*(eq.y-eH.y);var ey=eq.y*es.x-eq.x*es.y;eI.localCOMx+=(es.x+eq.x)*ey;eI.localCOMy+=(es.y+eq.y)*ey;ep=1/(3*ep);var eJ=ep;eI.localCOMx*=eJ;eI.localCOMy*=eJ}}}if(ea.wrap_localCOM!=null){ea.wrap_localCOM.zpp_inner.x=ea.localCOMx;ea.wrap_localCOM.zpp_inner.y=ea.localCOMy}}var eG=ea.body;if(eG.zip_axis){eG.zip_axis=false;eG.axisx=Math.sin(eG.rot);eG.axisy=Math.cos(eG.rot)}ea.worldCOMx=ea.body.posx+(ea.body.axisy*ea.localCOMx-ea.body.axisx*ea.localCOMy);ea.worldCOMy=ea.body.posy+(ea.localCOMx*ea.body.axisx+ea.localCOMy*ea.body.axisy)}}var en=ea.radius;var em=ea.radius;ea.aabb.minx=ea.worldCOMx-en;ea.aabb.miny=ea.worldCOMy-em;ea.aabb.maxx=ea.worldCOMx+en;ea.aabb.maxy=ea.worldCOMy+em}else{var eE=eK.polygon;if(eE.zip_gverts){if(eE.body!=null){eE.zip_gverts=false;eE.validate_lverts();var eC=eE.body;if(eC.zip_axis){eC.zip_axis=false;eC.axisx=Math.sin(eC.rot);eC.axisy=Math.cos(eC.rot)}var er=eE.lverts.next;var ei=eE.gverts.next;while(ei!=null){var eO=ei;var eM=er;er=er.next;eO.x=eE.body.posx+(eE.body.axisy*eM.x-eE.body.axisx*eM.y);eO.y=eE.body.posy+(eM.x*eE.body.axisx+eM.y*eE.body.axisy);ei=ei.next}}}var eR=eE.gverts.next;eE.aabb.minx=eR.x;eE.aabb.miny=eR.y;eE.aabb.maxx=eR.x;eE.aabb.maxy=eR.y;var eh=eE.gverts.next.next;while(eh!=null){var eL=eh;if(eL.x<eE.aabb.minx){eE.aabb.minx=eL.x}if(eL.x>eE.aabb.maxx){eE.aabb.maxx=eL.x}if(eL.y<eE.aabb.miny){eE.aabb.miny=eL.y}if(eL.y>eE.aabb.maxy){eE.aabb.maxy=eL.y}eh=eh.next}}}}var ez=ek.aabb;var eB=eK.aabb;if(eB.minx<ez.minx){ez.minx=eB.minx}if(eB.maxx>ez.maxx){ez.maxx=eB.maxx}if(eB.miny<ez.miny){ez.miny=eB.miny}if(eB.maxy>ez.maxy){ez.maxy=eB.maxy}eb=eb.next}}}ek.validate_mass();ek.validate_inertia();var eg=ek.shapes.head;while(eg!=null){var eS=eg.elt;if(eS.type==1){var ex=eS.polygon;if(ex.zip_sanitation){ex.zip_sanitation=false;ex.splice_collinear_real()}var ew=eS.polygon;if(ew.zip_gaxi){if(ew.body!=null){ew.zip_gaxi=false;ew.validate_laxi();var eu=ew.body;if(eu.zip_axis){eu.zip_axis=false;eu.axisx=Math.sin(eu.rot);eu.axisy=Math.cos(eu.rot)}if(ew.zip_gverts){if(ew.body!=null){ew.zip_gverts=false;ew.validate_lverts();var et=ew.body;if(et.zip_axis){et.zip_axis=false;et.axisx=Math.sin(et.rot);et.axisy=Math.cos(et.rot)}var ev=ew.lverts.next;var ef=ew.gverts.next;while(ef!=null){var eN=ef;var ec=ev;ev=ev.next;eN.x=ew.body.posx+(ew.body.axisy*ec.x-ew.body.axisx*ec.y);eN.y=ew.body.posy+(ec.x*ew.body.axisx+ec.y*ew.body.axisy);ef=ef.next}}}var eP=ew.edges.head;var ee=ew.gverts.next;var ed=ee;ee=ee.next;while(ee!=null){var eT=ee;var eQ=eP.elt;eP=eP.next;eQ.gp0=ed;eQ.gp1=eT;eQ.gnormx=ew.body.axisy*eQ.lnormx-ew.body.axisx*eQ.lnormy;eQ.gnormy=eQ.lnormx*ew.body.axisx+eQ.lnormy*ew.body.axisy;eQ.gprojection=ew.body.posx*eQ.gnormx+ew.body.posy*eQ.gnormy+eQ.lprojection;if(eQ.wrap_gnorm!=null){eQ.wrap_gnorm.zpp_inner.x=eQ.gnormx;eQ.wrap_gnorm.zpp_inner.y=eQ.gnormy}eQ.tp0=eQ.gp0.y*eQ.gnormx-eQ.gp0.x*eQ.gnormy;eQ.tp1=eQ.gp1.y*eQ.gnormx-eQ.gp1.x*eQ.gnormy;ed=eT;ee=ee.next}var el=eP.elt;el.gp0=ed;el.gp1=ew.gverts.next;el.gnormx=ew.body.axisy*el.lnormx-ew.body.axisx*el.lnormy;el.gnormy=el.lnormx*ew.body.axisx+el.lnormy*ew.body.axisy;el.gprojection=ew.body.posx*el.gnormx+ew.body.posy*el.gnormy+el.lprojection;if(el.wrap_gnorm!=null){el.wrap_gnorm.zpp_inner.x=el.gnormx;el.wrap_gnorm.zpp_inner.y=el.gnormy}el.tp0=el.gp0.y*el.gnormx-el.gp0.x*el.gnormy;el.tp1=el.gp1.y*el.gnormx-el.gp1.x*el.gnormy}}}eg=eg.next}ek.sweepFrozen=true};a3.prototype.validation=function(){var eq=this.cbsets;if(!eq.cbsets.empty()){var er=eq.cbsets.parent;while(er.prev!=null){er=er.prev}while(er!=null){er.data.validate();if(er.next!=null){er=er.next;while(er.prev!=null){er=er.prev}}else{while(er.parent!=null&&er==er.parent.next){er=er.parent}er=er.parent}}}var fK=this.live.head;while(fK!=null){var ex=fK.elt;ex.sweepRadius=0;var fJ=ex.shapes.head;while(fJ!=null){var eJ=fJ.elt;if(eJ.type==1){var fc=eJ.polygon;if(fc.zip_sanitation){fc.zip_sanitation=false;fc.splice_collinear_real()}var fa=eJ.polygon;if(fa.zip_gaxi){if(fa.body!=null){fa.zip_gaxi=false;fa.validate_laxi();var e9=fa.body;if(e9.zip_axis){e9.zip_axis=false;e9.axisx=Math.sin(e9.rot);e9.axisy=Math.cos(e9.rot)}if(fa.zip_gverts){if(fa.body!=null){fa.zip_gverts=false;fa.validate_lverts();var e4=fa.body;if(e4.zip_axis){e4.zip_axis=false;e4.axisx=Math.sin(e4.rot);e4.axisy=Math.cos(e4.rot)}var fU=fa.lverts.next;var fI=fa.gverts.next;while(fI!=null){var fj=fI;var e8=fU;fU=fU.next;fj.x=fa.body.posx+(fa.body.axisy*e8.x-fa.body.axisx*e8.y);fj.y=fa.body.posy+(e8.x*fa.body.axisx+e8.y*fa.body.axisy);fI=fI.next}}}var eB=fa.edges.head;var fH=fa.gverts.next;var eH=fH;fH=fH.next;while(fH!=null){var eG=fH;var fm=eB.elt;eB=eB.next;fm.gp0=eH;fm.gp1=eG;fm.gnormx=fa.body.axisy*fm.lnormx-fa.body.axisx*fm.lnormy;fm.gnormy=fm.lnormx*fa.body.axisx+fm.lnormy*fa.body.axisy;fm.gprojection=fa.body.posx*fm.gnormx+fa.body.posy*fm.gnormy+fm.lprojection;if(fm.wrap_gnorm!=null){fm.wrap_gnorm.zpp_inner.x=fm.gnormx;fm.wrap_gnorm.zpp_inner.y=fm.gnormy}fm.tp0=fm.gp0.y*fm.gnormx-fm.gp0.x*fm.gnormy;fm.tp1=fm.gp1.y*fm.gnormx-fm.gp1.x*fm.gnormy;eH=eG;fH=fH.next}var eD=eB.elt;eD.gp0=eH;eD.gp1=fa.gverts.next;eD.gnormx=fa.body.axisy*eD.lnormx-fa.body.axisx*eD.lnormy;eD.gnormy=eD.lnormx*fa.body.axisx+eD.lnormy*fa.body.axisy;eD.gprojection=fa.body.posx*eD.gnormx+fa.body.posy*eD.gnormy+eD.lprojection;if(eD.wrap_gnorm!=null){eD.wrap_gnorm.zpp_inner.x=eD.gnormx;eD.wrap_gnorm.zpp_inner.y=eD.gnormy}eD.tp0=eD.gp0.y*eD.gnormx-eD.gp0.x*eD.gnormy;eD.tp1=eD.gp1.y*eD.gnormx-eD.gp1.x*eD.gnormy}}}eJ.validate_sweepRadius();if(eJ.sweepRadius>ex.sweepRadius){ex.sweepRadius=eJ.sweepRadius}fJ=fJ.next}ex.validate_mass();ex.validate_inertia();if(ex.shapes.head!=null){if(ex.zip_aabb){ex.zip_aabb=false;ex.aabb.minx=Infinity;ex.aabb.miny=Infinity;ex.aabb.maxx=-Infinity;ex.aabb.maxy=-Infinity;var fF=ex.shapes.head;while(fF!=null){var ek=fF.elt;if(ek.zip_aabb){if(ek.body!=null){ek.zip_aabb=false;if(ek.type==0){var eY=ek.circle;if(eY.zip_worldCOM){if(eY.body!=null){eY.zip_worldCOM=false;if(eY.zip_localCOM){eY.zip_localCOM=false;if(eY.type==1){var eV=eY.polygon;if(eV.lverts.next.next==null){eV.localCOMx=eV.lverts.next.x;eV.localCOMy=eV.lverts.next.y}else{if(eV.lverts.next.next.next==null){eV.localCOMx=eV.lverts.next.x;eV.localCOMy=eV.lverts.next.y;eV.localCOMx+=eV.lverts.next.next.x;eV.localCOMy+=eV.lverts.next.next.y;eV.localCOMx*=0.5;eV.localCOMy*=0.5}else{eV.localCOMx=0;eV.localCOMy=0;var ee=0;var fD=eV.lverts.next;var fQ=fD;fD=fD.next;var fG=fD;fD=fD.next;while(fD!=null){var eF=fD;ee+=fG.x*(eF.y-fQ.y);var eK=eF.y*fG.x-eF.x*fG.y;eV.localCOMx+=(fG.x+eF.x)*eK;eV.localCOMy+=(fG.y+eF.y)*eK;fQ=fG;fG=eF;fD=fD.next}fD=eV.lverts.next;var e5=fD;ee+=fG.x*(e5.y-fQ.y);var el=e5.y*fG.x-e5.x*fG.y;eV.localCOMx+=(fG.x+e5.x)*el;eV.localCOMy+=(fG.y+e5.y)*el;fQ=fG;fD=fD.next;var eZ=fD;ee+=e5.x*(eZ.y-fQ.y);var ej=eZ.y*e5.x-eZ.x*e5.y;eV.localCOMx+=(e5.x+eZ.x)*ej;eV.localCOMy+=(e5.y+eZ.y)*ej;ee=1/(3*ee);var eI=ee;eV.localCOMx*=eI;eV.localCOMy*=eI}}}if(eY.wrap_localCOM!=null){eY.wrap_localCOM.zpp_inner.x=eY.localCOMx;eY.wrap_localCOM.zpp_inner.y=eY.localCOMy}}var eS=eY.body;if(eS.zip_axis){eS.zip_axis=false;eS.axisx=Math.sin(eS.rot);eS.axisy=Math.cos(eS.rot)}eY.worldCOMx=eY.body.posx+(eY.body.axisy*eY.localCOMx-eY.body.axisx*eY.localCOMy);eY.worldCOMy=eY.body.posy+(eY.localCOMx*eY.body.axisx+eY.localCOMy*eY.body.axisy)}}var fS=eY.radius;var fR=eY.radius;eY.aabb.minx=eY.worldCOMx-fS;eY.aabb.miny=eY.worldCOMy-fR;eY.aabb.maxx=eY.worldCOMx+fS;eY.aabb.maxy=eY.worldCOMy+fR}else{var eO=ek.polygon;if(eO.zip_gverts){if(eO.body!=null){eO.zip_gverts=false;eO.validate_lverts();var eL=eO.body;if(eL.zip_axis){eL.zip_axis=false;eL.axisx=Math.sin(eL.rot);eL.axisy=Math.cos(eL.rot)}var ey=eO.lverts.next;var fB=eO.gverts.next;while(fB!=null){var ec=fB;var ep=ey;ey=ey.next;ec.x=eO.body.posx+(eO.body.axisy*ep.x-eO.body.axisx*ep.y);ec.y=eO.body.posy+(ep.x*eO.body.axisx+ep.y*eO.body.axisy);fB=fB.next}}}var fz=eO.gverts.next;eO.aabb.minx=fz.x;eO.aabb.miny=fz.y;eO.aabb.maxx=fz.x;eO.aabb.maxy=fz.y;var fA=eO.gverts.next.next;while(fA!=null){var eR=fA;if(eR.x<eO.aabb.minx){eO.aabb.minx=eR.x}if(eR.x>eO.aabb.maxx){eO.aabb.maxx=eR.x}if(eR.y<eO.aabb.miny){eO.aabb.miny=eR.y}if(eR.y>eO.aabb.maxy){eO.aabb.maxy=eR.y}fA=fA.next}}}}var ft=ex.aabb;var eE=ek.aabb;if(eE.minx<ft.minx){ft.minx=eE.minx}if(eE.maxx>ft.maxx){ft.maxx=eE.maxx}if(eE.miny<ft.miny){ft.miny=eE.miny}if(eE.maxy>ft.maxy){ft.maxy=eE.maxy}fF=fF.next}}ex.validate_worldCOM()}ex.validate_gravMass();if(ex.zip_axis){ex.zip_axis=false;ex.axisx=Math.sin(ex.rot);ex.axisy=Math.cos(ex.rot)}if(ex.component.woken&&ex.cbSet!=null){var fy=ex.cbSet.bodylisteners.head;while(fy!=null){var fe=fy.elt;if(fe.event!=2){fy=fy.next;continue}var eW=this.push_callback(fe);eW.event=2;eW.body=ex;fy=fy.next}}ex.component.woken=false;var fw=ex.shapes.head;while(fw!=null){this.bphase.sync(fw.elt);fw=fw.next}fK=fK.next}var fg=this.kinematics.head;while(fg!=null){var em=fg.elt;em.sweepRadius=0;var ff=em.shapes.head;while(ff!=null){var ei=ff.elt;if(ei.type==1){var fs=ei.polygon;if(fs.zip_sanitation){fs.zip_sanitation=false;fs.splice_collinear_real()}var fr=ei.polygon;if(fr.zip_gaxi){if(fr.body!=null){fr.zip_gaxi=false;fr.validate_laxi();var fq=fr.body;if(fq.zip_axis){fq.zip_axis=false;fq.axisx=Math.sin(fq.rot);fq.axisy=Math.cos(fq.rot)}if(fr.zip_gverts){if(fr.body!=null){fr.zip_gverts=false;fr.validate_lverts();var fp=fr.body;if(fp.zip_axis){fp.zip_axis=false;fp.axisx=Math.sin(fp.rot);fp.axisy=Math.cos(fp.rot)}var ew=fr.lverts.next;var fd=fr.gverts.next;while(fd!=null){var eb=fd;var eo=ew;ew=ew.next;eb.x=fr.body.posx+(fr.body.axisy*eo.x-fr.body.axisx*eo.y);eb.y=fr.body.posy+(eo.x*fr.body.axisx+eo.y*fr.body.axisy);fd=fd.next}}}var fh=fr.edges.head;var fb=fr.gverts.next;var fP=fb;fb=fb.next;while(fb!=null){var fE=fb;var eC=fh.elt;fh=fh.next;eC.gp0=fP;eC.gp1=fE;eC.gnormx=fr.body.axisy*eC.lnormx-fr.body.axisx*eC.lnormy;eC.gnormy=eC.lnormx*fr.body.axisx+eC.lnormy*fr.body.axisy;eC.gprojection=fr.body.posx*eC.gnormx+fr.body.posy*eC.gnormy+eC.lprojection;if(eC.wrap_gnorm!=null){eC.wrap_gnorm.zpp_inner.x=eC.gnormx;eC.wrap_gnorm.zpp_inner.y=eC.gnormy}eC.tp0=eC.gp0.y*eC.gnormx-eC.gp0.x*eC.gnormy;eC.tp1=eC.gp1.y*eC.gnormx-eC.gp1.x*eC.gnormy;fP=fE;fb=fb.next}var ez=fh.elt;ez.gp0=fP;ez.gp1=fr.gverts.next;ez.gnormx=fr.body.axisy*ez.lnormx-fr.body.axisx*ez.lnormy;ez.gnormy=ez.lnormx*fr.body.axisx+ez.lnormy*fr.body.axisy;ez.gprojection=fr.body.posx*ez.gnormx+fr.body.posy*ez.gnormy+ez.lprojection;if(ez.wrap_gnorm!=null){ez.wrap_gnorm.zpp_inner.x=ez.gnormx;ez.wrap_gnorm.zpp_inner.y=ez.gnormy}ez.tp0=ez.gp0.y*ez.gnormx-ez.gp0.x*ez.gnormy;ez.tp1=ez.gp1.y*ez.gnormx-ez.gp1.x*ez.gnormy}}}ei.validate_sweepRadius();if(ei.sweepRadius>em.sweepRadius){em.sweepRadius=ei.sweepRadius}ff=ff.next}em.validate_mass();em.validate_inertia();if(em.shapes.head!=null){if(em.zip_aabb){em.zip_aabb=false;em.aabb.minx=Infinity;em.aabb.miny=Infinity;em.aabb.maxx=-Infinity;em.aabb.maxy=-Infinity;var e7=em.shapes.head;while(e7!=null){var eh=e7.elt;if(eh.zip_aabb){if(eh.body!=null){eh.zip_aabb=false;if(eh.type==0){var fo=eh.circle;if(fo.zip_worldCOM){if(fo.body!=null){fo.zip_worldCOM=false;if(fo.zip_localCOM){fo.zip_localCOM=false;if(fo.type==1){var fn=fo.polygon;if(fn.lverts.next.next==null){fn.localCOMx=fn.lverts.next.x;fn.localCOMy=fn.lverts.next.y}else{if(fn.lverts.next.next.next==null){fn.localCOMx=fn.lverts.next.x;fn.localCOMy=fn.lverts.next.y;fn.localCOMx+=fn.lverts.next.next.x;fn.localCOMy+=fn.lverts.next.next.y;fn.localCOMx*=0.5;fn.localCOMy*=0.5}else{fn.localCOMx=0;fn.localCOMy=0;var fv=0;var e0=fn.lverts.next;var fO=e0;e0=e0.next;var fC=e0;e0=e0.next;while(e0!=null){var eU=e0;fv+=fC.x*(eU.y-fO.y);var eg=eU.y*fC.x-eU.x*fC.y;fn.localCOMx+=(fC.x+eU.x)*eg;fn.localCOMy+=(fC.y+eU.y)*eg;fO=fC;fC=eU;e0=e0.next}e0=fn.lverts.next;var eQ=e0;fv+=fC.x*(eQ.y-fO.y);var ef=eQ.y*fC.x-eQ.x*fC.y;fn.localCOMx+=(fC.x+eQ.x)*ef;fn.localCOMy+=(fC.y+eQ.y)*ef;fO=fC;e0=e0.next;var eN=e0;fv+=eQ.x*(eN.y-fO.y);var ed=eN.y*eQ.x-eN.x*eQ.y;fn.localCOMx+=(eQ.x+eN.x)*ed;fn.localCOMy+=(eQ.y+eN.y)*ed;fv=1/(3*fv);var fT=fv;fn.localCOMx*=fT;fn.localCOMy*=fT}}}if(fo.wrap_localCOM!=null){fo.wrap_localCOM.zpp_inner.x=fo.localCOMx;fo.wrap_localCOM.zpp_inner.y=fo.localCOMy}}var fl=fo.body;if(fl.zip_axis){fl.zip_axis=false;fl.axisx=Math.sin(fl.rot);fl.axisy=Math.cos(fl.rot)}fo.worldCOMx=fo.body.posx+(fo.body.axisy*fo.localCOMx-fo.body.axisx*fo.localCOMy);fo.worldCOMy=fo.body.posy+(fo.localCOMx*fo.body.axisx+fo.localCOMy*fo.body.axisy)}}var fL=fo.radius;var fu=fo.radius;fo.aabb.minx=fo.worldCOMx-fL;fo.aabb.miny=fo.worldCOMy-fu;fo.aabb.maxx=fo.worldCOMx+fL;fo.aabb.maxy=fo.worldCOMy+fu}else{var fk=eh.polygon;if(fk.zip_gverts){if(fk.body!=null){fk.zip_gverts=false;fk.validate_lverts();var fi=fk.body;if(fi.zip_axis){fi.zip_axis=false;fi.axisx=Math.sin(fi.rot);fi.axisy=Math.cos(fi.rot)}var ev=fk.lverts.next;var eX=fk.gverts.next;while(eX!=null){var ea=eX;var en=ev;ev=ev.next;ea.x=fk.body.posx+(fk.body.axisy*en.x-fk.body.axisx*en.y);ea.y=fk.body.posy+(en.x*fk.body.axisx+en.y*fk.body.axisy);eX=eX.next}}}var e6=fk.gverts.next;fk.aabb.minx=e6.x;fk.aabb.miny=e6.y;fk.aabb.maxx=e6.x;fk.aabb.maxy=e6.y;var eT=fk.gverts.next.next;while(eT!=null){var fx=eT;if(fx.x<fk.aabb.minx){fk.aabb.minx=fx.x}if(fx.x>fk.aabb.maxx){fk.aabb.maxx=fx.x}if(fx.y<fk.aabb.miny){fk.aabb.miny=fx.y}if(fx.y>fk.aabb.maxy){fk.aabb.maxy=fx.y}eT=eT.next}}}}var eA=em.aabb;var es=eh.aabb;if(es.minx<eA.minx){eA.minx=es.minx}if(es.maxx>eA.maxx){eA.maxx=es.maxx}if(es.miny<eA.miny){eA.miny=es.miny}if(es.maxy>eA.maxy){eA.maxy=es.maxy}e7=e7.next}}em.validate_worldCOM()}em.validate_gravMass();if(em.zip_axis){em.zip_axis=false;em.axisx=Math.sin(em.rot);em.axisy=Math.cos(em.rot)}var eP=em.shapes.head;while(eP!=null){this.bphase.sync(eP.elt);eP=eP.next}fg=fg.next}var eM=this.live_constraints.head;while(eM!=null){var eu=eM.elt;if(eu.active){if(eu.component.woken&&eu.cbSet!=null){var et=eu.cbSet.conlisteners.head;while(et!=null){var fM=et.elt;if(fM.event!=2){et=et.next;continue}var fN=this.push_callback(fM);fN.event=2;fN.constraint=eu;et=et.next}}eu.component.woken=false}eM=eM.next}};a3.prototype.updateVel=function(ed){var ee=1-ed*this.global_lin_drag;var ec=1-ed*this.global_ang_drag;var eb=this.live.head;while(eb!=null){var eg=eb.elt;if(eg.smass!=0){var ef=ed*eg.imass;eg.velx=ee*eg.velx+(eg.forcex+this.gravityx*eg.gravMass)*ef;eg.vely=ee*eg.vely+(eg.forcey+this.gravityy*eg.gravMass)*ef}if(eg.sinertia!=0){var ea=0;var eh=0;ea=eg.worldCOMx-eg.posx;eh=eg.worldCOMy-eg.posy;eg.angvel=ec*eg.angvel+(eg.torque+(this.gravityy*ea-this.gravityx*eh)*eg.gravMass)*ed*eg.iinertia}eb=eb.next}};a3.prototype.updatePos=function(ez){var el=2*Math.PI/ez;var fy=this.live.head;while(fy!=null){var eL=fy.elt;eL.pre_posx=eL.posx;eL.pre_posy=eL.posy;eL.pre_rot=eL.rot;eL.sweepTime=0;eL.sweep_angvel=eL.angvel%el;var en=ez-eL.sweepTime;if(en!=0){eL.sweepTime=ez;eL.posx+=eL.velx*en;eL.posy+=eL.vely*en;if(eL.angvel!=0){var eA=eL.sweep_angvel*en;eL.rot+=eA;if(eA*eA>0.0001){eL.axisx=Math.sin(eL.rot);eL.axisy=Math.cos(eL.rot)}else{var fd=eA*eA;var eT=1-0.5*fd;var e1=1-fd*fd/8;var fe=(eT*eL.axisx+eA*eL.axisy)*e1;eL.axisy=(eT*eL.axisy-eA*eL.axisx)*e1;eL.axisx=fe}}}if(!eL.disableCCD){var eN=P.staticCCDLinearThreshold*eL.sweepRadius;var fV=P.staticCCDAngularThreshold;if((eL.velx*eL.velx+eL.vely*eL.vely)*ez*ez>eN*eN||eL.angvel*eL.angvel*ez*ez>fV*fV||eL.type==3){var eW=eL.sweep_angvel;if(eW<0){eW=-eW}var fD=1/eW;var fw=eL.shapes.head;while(fw!=null){var eQ=fw.elt;var ep=eQ.aabb;var eq=ep.minx;var eo=ep.miny;var fA=ep.maxx;var fz=ep.maxy;var ex=eW*ez*eQ.sweepCoef*0.008333333333333333|0;if(ex>8){ex=8}var eU=eW*ez/ex;var fG=ez-eL.sweepTime;if(fG!=0){eL.sweepTime=ez;eL.posx+=eL.velx*fG;eL.posy+=eL.vely*fG;if(eL.angvel!=0){var ew=eL.sweep_angvel*fG;eL.rot+=ew;if(ew*ew>0.0001){eL.axisx=Math.sin(eL.rot);eL.axisy=Math.cos(eL.rot)}else{var fb=ew*ew;var fn=1-0.5*fb;var em=1-fb*fb/8;var fO=(fn*eL.axisx+ew*eL.axisy)*em;eL.axisy=(fn*eL.axisy-ew*eL.axisx)*em;eL.axisx=fO}}}if(eQ.type==0){var eI=eQ.circle;eI.worldCOMx=eI.body.posx+(eI.body.axisy*eI.localCOMx-eI.body.axisx*eI.localCOMy);eI.worldCOMy=eI.body.posy+(eI.localCOMx*eI.body.axisx+eI.localCOMy*eI.body.axisy);eI.aabb.minx=eI.worldCOMx-eI.radius;eI.aabb.miny=eI.worldCOMy-eI.radius;eI.aabb.maxx=eI.worldCOMx+eI.radius;eI.aabb.maxy=eI.worldCOMy+eI.radius}else{var e6=eQ.polygon;var fU=e6.lverts.next;var fp=e6.gverts.next;var e2=fU;fU=fU.next;fp.x=e6.body.posx+(e6.body.axisy*e2.x-e6.body.axisx*e2.y);fp.y=e6.body.posy+(e2.x*e6.body.axisx+e2.y*e6.body.axisy);e6.aabb.minx=fp.x;e6.aabb.miny=fp.y;e6.aabb.maxx=fp.x;e6.aabb.maxy=fp.y;var fv=e6.gverts.next.next;while(fv!=null){var fm=fv;var eH=fU;fU=fU.next;fm.x=e6.body.posx+(e6.body.axisy*eH.x-e6.body.axisx*eH.y);fm.y=e6.body.posy+(eH.x*e6.body.axisx+eH.y*e6.body.axisy);if(fm.x<e6.aabb.minx){e6.aabb.minx=fm.x}if(fm.x>e6.aabb.maxx){e6.aabb.maxx=fm.x}if(fm.y<e6.aabb.miny){e6.aabb.miny=fm.y}if(fm.y>e6.aabb.maxy){e6.aabb.maxy=fm.y}fv=fv.next}}if(eq<ep.minx){ep.minx=eq}else{eq=ep.minx}if(eo<ep.miny){ep.miny=eo}else{eo=ep.miny}if(fA>ep.maxx){ep.maxx=fA}else{fA=ep.maxx}if(fz>ep.maxy){ep.maxy=fz}else{fz=ep.maxy}var ej=1;var eh=ex;while(ej<eh){var fI=eU*ej++*fD;var fF=fI-eL.sweepTime;if(fF!=0){eL.sweepTime=fI;eL.posx+=eL.velx*fF;eL.posy+=eL.vely*fF;if(eL.angvel!=0){var ev=eL.sweep_angvel*fF;eL.rot+=ev;if(ev*ev>0.0001){eL.axisx=Math.sin(eL.rot);eL.axisy=Math.cos(eL.rot)}else{var fa=ev*ev;var fl=1-0.5*fa;var ek=1-fa*fa/8;var fN=(fl*eL.axisx+ev*eL.axisy)*ek;eL.axisy=(fl*eL.axisy-ev*eL.axisx)*ek;eL.axisx=fN}}}if(eQ.type==0){var e5=eQ.circle;e5.worldCOMx=e5.body.posx+(e5.body.axisy*e5.localCOMx-e5.body.axisx*e5.localCOMy);e5.worldCOMy=e5.body.posy+(e5.localCOMx*e5.body.axisx+e5.localCOMy*e5.body.axisy);e5.aabb.minx=e5.worldCOMx-e5.radius;e5.aabb.miny=e5.worldCOMy-e5.radius;e5.aabb.maxx=e5.worldCOMx+e5.radius;e5.aabb.maxy=e5.worldCOMy+e5.radius}else{var e4=eQ.polygon;var eM=e4.lverts.next;var e3=e4.gverts.next;var eG=eM;eM=eM.next;e3.x=e4.body.posx+(e4.body.axisy*eG.x-e4.body.axisx*eG.y);e3.y=e4.body.posy+(eG.x*e4.body.axisx+eG.y*e4.body.axisy);e4.aabb.minx=e3.x;e4.aabb.miny=e3.y;e4.aabb.maxx=e3.x;e4.aabb.maxy=e3.y;var fu=e4.gverts.next.next;while(fu!=null){var fk=fu;var eF=eM;eM=eM.next;fk.x=e4.body.posx+(e4.body.axisy*eF.x-e4.body.axisx*eF.y);fk.y=e4.body.posy+(eF.x*e4.body.axisx+eF.y*e4.body.axisy);if(fk.x<e4.aabb.minx){e4.aabb.minx=fk.x}if(fk.x>e4.aabb.maxx){e4.aabb.maxx=fk.x}if(fk.y<e4.aabb.miny){e4.aabb.miny=fk.y}if(fk.y>e4.aabb.maxy){e4.aabb.maxy=fk.y}fu=fu.next}}if(eq<ep.minx){ep.minx=eq}else{eq=ep.minx}if(eo<ep.miny){ep.miny=eo}else{eo=ep.miny}if(fA>ep.maxx){ep.maxx=fA}else{fA=ep.maxx}if(fz>ep.maxy){ep.maxy=fz}else{fz=ep.maxy}}this.bphase.sync(eQ);fw=fw.next}eL.sweepFrozen=false;if(eL.type==2&&eL.bulletEnabled){var fS=P.bulletCCDLinearThreshold*eL.sweepRadius;var fP=P.bulletCCDAngularThreshold;if((eL.velx*eL.velx+eL.vely*eL.vely)*ez*ez>fS*fS||eL.angvel*eL.angvel*ez*ez>fP*fP){eL.bullet=true}}}else{eL.sweepFrozen=true;eL.bullet=false}}else{eL.sweepFrozen=true;eL.bullet=false}fy=fy.next}var ft=this.kinematics.head;while(ft!=null){var ey=ft.elt;ey.pre_posx=ey.posx;ey.pre_posy=ey.posy;ey.pre_rot=ey.rot;ey.sweepTime=0;ey.sweep_angvel=ey.angvel%el;var fE=ez-ey.sweepTime;if(fE!=0){ey.sweepTime=ez;ey.posx+=ey.velx*fE;ey.posy+=ey.vely*fE;if(ey.angvel!=0){var eu=ey.sweep_angvel*fE;ey.rot+=eu;if(eu*eu>0.0001){ey.axisx=Math.sin(ey.rot);ey.axisy=Math.cos(ey.rot)}else{var e9=eu*eu;var fj=1-0.5*e9;var ei=1-e9*e9/8;var fM=(fj*ey.axisx+eu*ey.axisy)*ei;ey.axisy=(fj*ey.axisy-eu*ey.axisx)*ei;ey.axisx=fM}}}if(!ey.disableCCD){var fT=P.staticCCDLinearThreshold*ey.sweepRadius;var fQ=P.staticCCDAngularThreshold;if((ey.velx*ey.velx+ey.vely*ey.vely)*ez*ez>fT*fT||ey.angvel*ey.angvel*ez*ez>fQ*fQ||ey.type==3){var fr=ey.sweep_angvel;if(fr<0){fr=-fr}var fx=1/fr;var fs=ey.shapes.head;while(fs!=null){var es=fs.elt;var eb=es.aabb;var ea=eb.minx;var fR=eb.miny;var fc=eb.maxx;var eO=eb.maxy;var ef=fr*ez*es.sweepCoef*0.008333333333333333|0;if(ef>8){ef=8}var eS=fr*ez/ef;var fC=ez-ey.sweepTime;if(fC!=0){ey.sweepTime=ez;ey.posx+=ey.velx*fC;ey.posy+=ey.vely*fC;if(ey.angvel!=0){var et=ey.sweep_angvel*fC;ey.rot+=et;if(et*et>0.0001){ey.axisx=Math.sin(ey.rot);ey.axisy=Math.cos(ey.rot)}else{var e8=et*et;var fi=1-0.5*e8;var ee=1-e8*e8/8;var fL=(fi*ey.axisx+et*ey.axisy)*ee;ey.axisy=(fi*ey.axisy-et*ey.axisx)*ee;ey.axisx=fL}}}if(es.type==0){var e0=es.circle;e0.worldCOMx=e0.body.posx+(e0.body.axisy*e0.localCOMx-e0.body.axisx*e0.localCOMy);e0.worldCOMy=e0.body.posy+(e0.localCOMx*e0.body.axisx+e0.localCOMy*e0.body.axisy);e0.aabb.minx=e0.worldCOMx-e0.radius;e0.aabb.miny=e0.worldCOMy-e0.radius;e0.aabb.maxx=e0.worldCOMx+e0.radius;e0.aabb.maxy=e0.worldCOMy+e0.radius}else{var eY=es.polygon;var eK=eY.lverts.next;var eZ=eY.gverts.next;var eE=eK;eK=eK.next;eZ.x=eY.body.posx+(eY.body.axisy*eE.x-eY.body.axisx*eE.y);eZ.y=eY.body.posy+(eE.x*eY.body.axisx+eE.y*eY.body.axisy);eY.aabb.minx=eZ.x;eY.aabb.miny=eZ.y;eY.aabb.maxx=eZ.x;eY.aabb.maxy=eZ.y;var fq=eY.gverts.next.next;while(fq!=null){var fh=fq;var eD=eK;eK=eK.next;fh.x=eY.body.posx+(eY.body.axisy*eD.x-eY.body.axisx*eD.y);fh.y=eY.body.posy+(eD.x*eY.body.axisx+eD.y*eY.body.axisy);if(fh.x<eY.aabb.minx){eY.aabb.minx=fh.x}if(fh.x>eY.aabb.maxx){eY.aabb.maxx=fh.x}if(fh.y<eY.aabb.miny){eY.aabb.miny=fh.y}if(fh.y>eY.aabb.maxy){eY.aabb.maxy=fh.y}fq=fq.next}}if(ea<eb.minx){eb.minx=ea}else{ea=eb.minx}if(fR<eb.miny){eb.miny=fR}else{fR=eb.miny}if(fc>eb.maxx){eb.maxx=fc}else{fc=eb.maxx}if(eO>eb.maxy){eb.maxy=eO}else{eO=eb.maxy}var eg=1;var ed=ef;while(eg<ed){var fH=eS*eg++*fx;var fB=fH-ey.sweepTime;if(fB!=0){ey.sweepTime=fH;ey.posx+=ey.velx*fB;ey.posy+=ey.vely*fB;if(ey.angvel!=0){var er=ey.sweep_angvel*fB;ey.rot+=er;if(er*er>0.0001){ey.axisx=Math.sin(ey.rot);ey.axisy=Math.cos(ey.rot)}else{var e7=er*er;var fg=1-0.5*e7;var ec=1-e7*e7/8;var fK=(fg*ey.axisx+er*ey.axisy)*ec;ey.axisy=(fg*ey.axisy-er*ey.axisx)*ec;ey.axisx=fK}}}if(es.type==0){var eV=es.circle;eV.worldCOMx=eV.body.posx+(eV.body.axisy*eV.localCOMx-eV.body.axisx*eV.localCOMy);eV.worldCOMy=eV.body.posy+(eV.localCOMx*eV.body.axisx+eV.localCOMy*eV.body.axisy);eV.aabb.minx=eV.worldCOMx-eV.radius;eV.aabb.miny=eV.worldCOMy-eV.radius;eV.aabb.maxx=eV.worldCOMx+eV.radius;eV.aabb.maxy=eV.worldCOMy+eV.radius}else{var eR=es.polygon;var eJ=eR.lverts.next;var eX=eR.gverts.next;var eC=eJ;eJ=eJ.next;eX.x=eR.body.posx+(eR.body.axisy*eC.x-eR.body.axisx*eC.y);eX.y=eR.body.posy+(eC.x*eR.body.axisx+eC.y*eR.body.axisy);eR.aabb.minx=eX.x;eR.aabb.miny=eX.y;eR.aabb.maxx=eX.x;eR.aabb.maxy=eX.y;var fo=eR.gverts.next.next;while(fo!=null){var ff=fo;var eB=eJ;eJ=eJ.next;ff.x=eR.body.posx+(eR.body.axisy*eB.x-eR.body.axisx*eB.y);ff.y=eR.body.posy+(eB.x*eR.body.axisx+eB.y*eR.body.axisy);if(ff.x<eR.aabb.minx){eR.aabb.minx=ff.x}if(ff.x>eR.aabb.maxx){eR.aabb.maxx=ff.x}if(ff.y<eR.aabb.miny){eR.aabb.miny=ff.y}if(ff.y>eR.aabb.maxy){eR.aabb.maxy=ff.y}fo=fo.next}}if(ea<eb.minx){eb.minx=ea}else{ea=eb.minx}if(fR<eb.miny){eb.miny=fR}else{fR=eb.miny}if(fc>eb.maxx){eb.maxx=fc}else{fc=eb.maxx}if(eO>eb.maxy){eb.maxy=eO}else{eO=eb.maxy}}this.bphase.sync(es);fs=fs.next}ey.sweepFrozen=false;if(ey.type==2&&ey.bulletEnabled){var eP=P.bulletCCDLinearThreshold*ey.sweepRadius;var fJ=P.bulletCCDAngularThreshold;if((ey.velx*ey.velx+ey.vely*ey.vely)*ez*ez>eP*eP||ey.angvel*ey.angvel*ez*ez>fJ*fJ){ey.bullet=true}}}else{ey.sweepFrozen=true;ey.bullet=false}}else{ey.sweepFrozen=true;ey.bullet=false}ft=ft.next}};a3.prototype.continuous=null;a3.prototype.presteparb=function(el,gI,g3){if(g3==null){g3=false}var hn=this;if(!el.cleared&&(el.b1.component.sleeping&&el.b2.component.sleeping)){el.sleep_stamp=this.stamp;el.sleeping=true;return true}if(!el.cleared||el.present!=0||el.intchange){var ev=!g3&&el.up_stamp==this.stamp-1&&!el.cleared&&!el.intchange;var gf=el.fresh&&!el.cleared&&!el.intchange;if(ev){el.endGenerated=this.stamp}if(gf||ev||el.cleared||el.intchange){var gs=el.ws1;var gp=el.ws2;var gH=this.mrca1;while(gH.head!=null){var fK=gH.head;gH.head=fK.next;fK.elt=null;fK.next=g.zpp_pool;g.zpp_pool=fK;if(gH.head==null){gH.pushmod=true}gH.modified=true;gH.length--}gH.pushmod=true;var fg=this.mrca2;while(fg.head!=null){var hg=fg.head;fg.head=hg.next;hg.elt=null;hg.next=g.zpp_pool;g.zpp_pool=hg;if(fg.head==null){fg.pushmod=true}fg.modified=true;fg.length--}fg.pushmod=true;if(gs.cbSet!=null){var fd=this.mrca1;var hf;if(g.zpp_pool==null){hf=new g()}else{hf=g.zpp_pool;g.zpp_pool=hf.next;hf.next=null}hf.elt=gs;var gG=hf;gG.next=fd.head;fd.head=gG;fd.modified=true;fd.length++}if(gs.body.cbSet!=null){var fc=this.mrca1;var gW=gs.body;var he;if(g.zpp_pool==null){he=new g()}else{he=g.zpp_pool;g.zpp_pool=he.next;he.next=null}he.elt=gW;var fS=he;fS.next=fc.head;fc.head=fS;fc.modified=true;fc.length++}if(gp.cbSet!=null){var fb=this.mrca2;var hd;if(g.zpp_pool==null){hd=new g()}else{hd=g.zpp_pool;g.zpp_pool=hd.next;hd.next=null}hd.elt=gp;var fQ=hd;fQ.next=fb.head;fb.head=fQ;fb.modified=true;fb.length++}if(gp.body.cbSet!=null){var e9=this.mrca2;var hJ=gp.body;var hc;if(g.zpp_pool==null){hc=new g()}else{hc=g.zpp_pool;g.zpp_pool=hc.next;hc.next=null}hc.elt=hJ;var fN=hc;fN.next=e9.head;e9.head=fN;e9.modified=true;e9.length++}var hB=gs.body.compound;var hA=gp.body.compound;while(hB!=hA){if((hB==null?0:hB.depth)<(hA==null?0:hA.depth)){if(hA.cbSet!=null){var e7=this.mrca2;var hb;if(g.zpp_pool==null){hb=new g()}else{hb=g.zpp_pool;g.zpp_pool=hb.next;hb.next=null}hb.elt=hA;var fJ=hb;fJ.next=e7.head;e7.head=fJ;e7.modified=true;e7.length++}hA=hA.compound}else{if(hB.cbSet!=null){var e6=this.mrca1;var ha;if(g.zpp_pool==null){ha=new g()}else{ha=g.zpp_pool;g.zpp_pool=ha.next;ha.next=null}ha.elt=hB;var fG=ha;fG.next=e6.head;e6.head=fG;e6.modified=true;e6.length++}hB=hB.compound}}var en=this.mrca1.head;while(en!=null){var e1=en.elt;var eO=this.mrca2.head;while(eO!=null){var e0=eO.elt;var gc=e1.cbSet;var gb=e0.cbSet;var g8=null;var eM=(gc.cbpairs.length<gb.cbpairs.length?gc.cbpairs:gb.cbpairs).head;while(eM!=null){var gU=eM.elt;if(gU.a==gc&&gU.b==gb||gU.a==gb&&gU.b==gc){g8=gU;break}eM=eM.next}if(g8==null){var g7;if(ar.zpp_pool==null){g7=new ar()}else{g7=ar.zpp_pool;ar.zpp_pool=g7.next;g7.next=null}g7.zip_listeners=true;if(cC.setlt(gc,gb)){g7.a=gc;g7.b=gb}else{g7.a=gb;g7.b=gc}g8=g7;gc.cbpairs.add(g8);if(gb!=gc){gb.cbpairs.add(g8)}}if(g8.zip_listeners){g8.zip_listeners=false;g8.__validate()}if(g8.listeners.head==null){eO=eO.next;continue}var ec=dM.get(e1,e0);if(gf||el.intchange){if(ec==null){ec=cg.get(e1,e0);this.add_callbackset(ec)}var gF=null;var eK=(gc.cbpairs.length<gb.cbpairs.length?gc.cbpairs:gb.cbpairs).head;while(eK!=null){var hm=eK.elt;if(hm.a==gc&&hm.b==gb||hm.a==gb&&hm.b==gc){gF=hm;break}eK=eK.next}if(gF==null){var gE;if(ar.zpp_pool==null){gE=new ar()}else{gE=ar.zpp_pool;ar.zpp_pool=gE.next;gE.next=null}gE.zip_listeners=true;if(cC.setlt(gc,gb)){gE.a=gc;gE.b=gb}else{gE.a=gb;gE.b=gc}gF=gE;gc.cbpairs.add(gF);if(gb!=gc){gb.cbpairs.add(gF)}}if(gF.zip_listeners){gF.zip_listeners=false;gF.__validate()}var eJ=gF.listeners.head;while(eJ!=null){var gQ=eJ.elt;if(gQ.event==0){if((gQ.itype&el.type)!=0&&ec.empty_arb(gQ.itype)){var g1=hn.push_callback(gQ);g1.event=0;var fa=ec.int1;var hI=ec.int2;var hp;var e5=gQ.options1;var hS=fa.cbTypes;if(e5.nonemptyintersection(hS,e5.includes)&&!e5.nonemptyintersection(hS,e5.excludes)){var e4=gQ.options2;var fw=hI.cbTypes;if(e4.nonemptyintersection(fw,e4.includes)){hp=!e4.nonemptyintersection(fw,e4.excludes)}else{hp=false}}else{hp=false}if(hp){g1.int1=fa;g1.int2=hI}else{g1.int1=hI;g1.int2=fa}g1.set=ec}}eJ=eJ.next}var fl;var gD;gD=false;var eI=ec.arbiters.head;while(eI!=null){if(eI.elt==el){gD=true;break}eI=eI.next}if(!gD){var gr=ec.arbiters;var gC;if(dL.zpp_pool==null){gC=new dL()}else{gC=dL.zpp_pool;dL.zpp_pool=gC.next;gC.next=null}gC.elt=el;var fD=gC;fD.next=gr.head;gr.head=fD;gr.modified=true;gr.length++;fl=true}else{fl=false}if(fl){el.present++}}else{el.present--;ec.remove_arb(el);var gB=null;var eH=(gc.cbpairs.length<gb.cbpairs.length?gc.cbpairs:gb.cbpairs).head;while(eH!=null){var hl=eH.elt;if(hl.a==gc&&hl.b==gb||hl.a==gb&&hl.b==gc){gB=hl;break}eH=eH.next}if(gB==null){var gA;if(ar.zpp_pool==null){gA=new ar()}else{gA=ar.zpp_pool;ar.zpp_pool=gA.next;gA.next=null}gA.zip_listeners=true;if(cC.setlt(gc,gb)){gA.a=gc;gA.b=gb}else{gA.a=gb;gA.b=gc}gB=gA;gc.cbpairs.add(gB);if(gb!=gc){gb.cbpairs.add(gB)}}if(gB.zip_listeners){gB.zip_listeners=false;gB.__validate()}var eG=gB.listeners.head;while(eG!=null){var eu=eG.elt;if(eu.event==1){if((eu.itype&el.type)!=0&&ec.empty_arb(eu.itype)){var f9=hn.push_callback(eu);f9.event=1;var e8=ec.int1;var eS=ec.int2;var fk;var go=eu.options1;var ft=e8.cbTypes;if(go.nonemptyintersection(ft,go.includes)&&!go.nonemptyintersection(ft,go.excludes)){var gn=eu.options2;var fp=eS.cbTypes;if(gn.nonemptyintersection(fp,gn.includes)){fk=!gn.nonemptyintersection(fp,gn.excludes)}else{fk=false}}else{fk=false}if(fk){f9.int1=e8;f9.int2=eS}else{f9.int1=eS;f9.int2=e8}f9.set=ec}}eG=eG.next}if(ec.arbiters.head==null){this.remove_callbackset(ec)}}eO=eO.next}en=en.next}}el.fresh=false;el.intchange=false}if(el.cleared||el.up_stamp+(el.type==j.COL?P.arbiterExpirationDelay:0)<this.stamp){if(el.type==j.SENSOR){var gm=el.sensorarb;if(!gm.cleared){var gk=gm.b1.arbiters;var fR=null;var hr=gk.head;while(hr!=null){if(hr.elt==gm){var fO;var gz;if(fR==null){fO=gk.head;gz=fO.next;gk.head=gz;if(gk.head==null){gk.pushmod=true}}else{fO=fR.next;gz=fO.next;fR.next=gz;if(gz==null){gk.pushmod=true}}var hH=fO;hH.elt=null;hH.next=dL.zpp_pool;dL.zpp_pool=hH;gk.modified=true;gk.length--;gk.pushmod=true;break}fR=hr;hr=hr.next}var gi=gm.b2.arbiters;var hQ=null;var ga=gi.head;while(ga!=null){if(ga.elt==gm){var hy;var gw;if(hQ==null){hy=gi.head;gw=hy.next;gi.head=gw;if(gi.head==null){gi.pushmod=true}}else{hy=hQ.next;gw=hy.next;hQ.next=gw;if(gw==null){gi.pushmod=true}}var hG=hy;hG.elt=null;hG.next=dL.zpp_pool;dL.zpp_pool=hG;gi.modified=true;gi.length--;gi.pushmod=true;break}hQ=ga;ga=ga.next}if(gm.pair!=null){gm.pair.arb=null;gm.pair=null}}gm.b1=gm.b2=null;gm.active=false;gm.intchange=false;gm.next=A.zpp_pool;A.zpp_pool=gm}else{if(el.type==j.FLUID){var gh=el.fluidarb;if(!gh.cleared){var gg=gh.b1.arbiters;var hP=null;var f8=gg.head;while(f8!=null){if(f8.elt==gh){var hx;var gu;if(hP==null){hx=gg.head;gu=hx.next;gg.head=gu;if(gg.head==null){gg.pushmod=true}}else{hx=hP.next;gu=hx.next;hP.next=gu;if(gu==null){gg.pushmod=true}}var hF=hx;hF.elt=null;hF.next=dL.zpp_pool;dL.zpp_pool=hF;gg.modified=true;gg.length--;gg.pushmod=true;break}hP=f8;f8=f8.next}var ge=gh.b2.arbiters;var hO=null;var f7=ge.head;while(f7!=null){if(f7.elt==gh){var hw;var gt;if(hO==null){hw=ge.head;gt=hw.next;ge.head=gt;if(ge.head==null){ge.pushmod=true}}else{hw=hO.next;gt=hw.next;hO.next=gt;if(gt==null){ge.pushmod=true}}var hE=hw;hE.elt=null;hE.next=dL.zpp_pool;dL.zpp_pool=hE;ge.modified=true;ge.length--;ge.pushmod=true;break}hO=f7;f7=f7.next}if(gh.pair!=null){gh.pair.arb=null;gh.pair=null}}gh.b1=gh.b2=null;gh.active=false;gh.intchange=false;gh.next=dK.zpp_pool;dK.zpp_pool=gh;gh.pre_dt=-1}else{var gd=el.colarb;if(!gd.cleared){var fP=gd.b1.arbiters;var hN=null;var f6=fP.head;while(f6!=null){if(f6.elt==gd){var hv;var f0;if(hN==null){hv=fP.head;f0=hv.next;fP.head=f0;if(fP.head==null){fP.pushmod=true}}else{hv=hN.next;f0=hv.next;hN.next=f0;if(f0==null){fP.pushmod=true}}var hD=hv;hD.elt=null;hD.next=dL.zpp_pool;dL.zpp_pool=hD;fP.modified=true;fP.length--;fP.pushmod=true;break}hN=f6;f6=f6.next}var fL=gd.b2.arbiters;var hM=null;var f5=fL.head;while(f5!=null){if(f5.elt==gd){var hu;var fZ;if(hM==null){hu=fL.head;fZ=hu.next;fL.head=fZ;if(fL.head==null){fL.pushmod=true}}else{hu=hM.next;fZ=hu.next;hM.next=fZ;if(fZ==null){fL.pushmod=true}}var hC=hu;hC.elt=null;hC.next=dL.zpp_pool;dL.zpp_pool=hC;fL.modified=true;fL.length--;fL.pushmod=true;break}hM=f5;f5=f5.next}if(gd.pair!=null){gd.pair.arb=null;gd.pair=null}}gd.b1=gd.b2=null;gd.active=false;gd.intchange=false;while(gd.contacts.next!=null){var fH=gd.contacts;var fY=fH.next;fH.pop();fY.arbiter=null;fY.next=c2.zpp_pool;c2.zpp_pool=fY;var fE=gd.innards;var fX=fE.next;fE.next=fX.next;fX._inuse=false;if(fE.next==null){fE.pushmod=true}fE.modified=true;fE.length--}gd.userdef_dyn_fric=false;gd.userdef_stat_fric=false;gd.userdef_restitution=false;gd.userdef_rfric=false;gd.__ref_edge1=gd.__ref_edge2=null;gd.next=d9.zpp_pool;d9.zpp_pool=gd;gd.pre_dt=-1}}return true}var gv=el.active;el.active=el.presentable=el.up_stamp==this.stamp;if((el.immState&1)!=0){if(el.active&&el.type!=j.SENSOR){if(el.colarb!=null){var fA=el.colarb;if(fA.invalidated){fA.invalidated=false;if(!fA.userdef_restitution){if(fA.s1.material.elasticity<=-Infinity||fA.s2.material.elasticity<=-Infinity){fA.restitution=0}else{if(fA.s1.material.elasticity>=Infinity||fA.s2.material.elasticity>=Infinity){fA.restitution=1}else{fA.restitution=(fA.s1.material.elasticity+fA.s2.material.elasticity)/2}}if(fA.restitution<0){fA.restitution=0}if(fA.restitution>1){fA.restitution=1}}if(!fA.userdef_dyn_fric){fA.dyn_fric=Math.sqrt(fA.s1.material.dynamicFriction*fA.s2.material.dynamicFriction)}if(!fA.userdef_stat_fric){fA.stat_fric=Math.sqrt(fA.s1.material.staticFriction*fA.s2.material.staticFriction)}if(!fA.userdef_rfric){fA.rfric=Math.sqrt(fA.s1.material.rollingFriction*fA.s2.material.rollingFriction)}}if(fA.pre_dt==-1){fA.pre_dt=gI}var gS=gI/fA.pre_dt;fA.pre_dt=gI;var ef=fA.b1.smass+fA.b2.smass;fA.hc2=false;var fm=true;fA.biasCoef=fA.b1.type!=2||fA.b2.type!=2?fA.continuous?P.contactContinuousStaticBiasCoef:P.contactStaticBiasCoef:fA.continuous?P.contactContinuousBiasCoef:P.contactBiasCoef;fA.continuous=false;var hL=null;var hj=null;var ep=fA.innards.next;var eE=fA.contacts.next;while(eE!=null){var g6=eE;if(g6.stamp+P.arbiterExpirationDelay<fA.stamp){var fy=fA.contacts;var ht;var fW;if(hL==null){ht=fy.next;fW=ht.next;fy.next=fW;if(fy.next==null){fy.pushmod=true}}else{ht=hL.next;fW=ht.next;hL.next=fW;if(fW==null){fy.pushmod=true}}ht._inuse=false;fy.modified=true;fy.length--;fy.pushmod=true;eE=fW;var fv=fA.innards;var hs;var fV;if(hj==null){hs=fv.next;fV=hs.next;fv.next=fV;if(fv.next==null){fv.pushmod=true}}else{hs=hj.next;fV=hs.next;hj.next=fV;if(fV==null){fv.pushmod=true}}hs._inuse=false;fv.modified=true;fv.length--;fv.pushmod=true;ep=fV;g6.arbiter=null;g6.next=c2.zpp_pool;c2.zpp_pool=g6;continue}var gY=g6.inner;var f4=g6.active;g6.active=g6.stamp==fA.stamp;if(g6.active){if(fm){fm=false;fA.c1=gY;fA.oc1=g6}else{fA.hc2=true;fA.c2=gY;fA.oc2=g6}gY.r2x=g6.px-fA.b2.posx;gY.r2y=g6.py-fA.b2.posy;gY.r1x=g6.px-fA.b1.posx;gY.r1y=g6.py-fA.b1.posy;var et=gY.r2x*fA.nx+gY.r2y*fA.ny;var ee=ef+fA.b2.sinertia*(et*et);var er=gY.r1x*fA.nx+gY.r1y*fA.ny;ee+=fA.b1.sinertia*(er*er);gY.tMass=ee<P.epsilon*P.epsilon?0:1/ee;var eq=fA.ny*gY.r2x-fA.nx*gY.r2y;var hk=ef+fA.b2.sinertia*(eq*eq);var eo=fA.ny*gY.r1x-fA.nx*gY.r1y;hk+=fA.b1.sinertia*(eo*eo);gY.nMass=hk<P.epsilon*P.epsilon?0:1/hk;var e3=0;var e2=0;var fi=fA.b2.angvel+fA.b2.kinangvel;e3=fA.b2.velx+fA.b2.kinvelx-gY.r2y*fi;e2=fA.b2.vely+fA.b2.kinvely+gY.r2x*fi;fi=fA.b1.angvel+fA.b1.kinangvel;e3-=fA.b1.velx+fA.b1.kinvelx-gY.r1y*fi;e2-=fA.b1.vely+fA.b1.kinvely+gY.r1x*fi;var eZ=fA.nx*e3+fA.ny*e2;g6.elasticity=fA.restitution;gY.bounce=eZ*g6.elasticity;if(gY.bounce>-P.elasticThreshold){gY.bounce=0}eZ=e2*fA.nx-e3*fA.ny;var ez=P.staticFrictionThreshold;if(eZ*eZ>ez*ez){gY.friction=fA.dyn_fric}else{gY.friction=fA.stat_fric}gY.jnAcc*=gS;gY.jtAcc*=gS}if(f4!=g6.active){fA.contacts.modified=true}hL=eE;hj=ep;ep=ep.next;eE=eE.next}if(fA.hc2){fA.hpc2=true;if(fA.oc1.posOnly){var fj=fA.c1;fA.c1=fA.c2;fA.c2=fj;var gX=fA.oc1;fA.oc1=fA.oc2;fA.oc2=gX;fA.hc2=false}else{if(fA.oc2.posOnly){fA.hc2=false}}if(fA.oc1.posOnly){fm=true}}else{fA.hpc2=false}fA.jrAcc*=gS;if(!fm){fA.rn1a=fA.ny*fA.c1.r1x-fA.nx*fA.c1.r1y;fA.rt1a=fA.c1.r1x*fA.nx+fA.c1.r1y*fA.ny;fA.rn1b=fA.ny*fA.c1.r2x-fA.nx*fA.c1.r2y;fA.rt1b=fA.c1.r2x*fA.nx+fA.c1.r2y*fA.ny;fA.k1x=fA.b2.kinvelx-fA.c1.r2y*fA.b2.kinangvel-(fA.b1.kinvelx-fA.c1.r1y*fA.b1.kinangvel);fA.k1y=fA.b2.kinvely+fA.c1.r2x*fA.b2.kinangvel-(fA.b1.kinvely+fA.c1.r1x*fA.b1.kinangvel)}if(fA.hc2){fA.rn2a=fA.ny*fA.c2.r1x-fA.nx*fA.c2.r1y;fA.rt2a=fA.c2.r1x*fA.nx+fA.c2.r1y*fA.ny;fA.rn2b=fA.ny*fA.c2.r2x-fA.nx*fA.c2.r2y;fA.rt2b=fA.c2.r2x*fA.nx+fA.c2.r2y*fA.ny;fA.k2x=fA.b2.kinvelx-fA.c2.r2y*fA.b2.kinangvel-(fA.b1.kinvelx-fA.c2.r1y*fA.b1.kinangvel);fA.k2y=fA.b2.kinvely+fA.c2.r2x*fA.b2.kinangvel-(fA.b1.kinvely+fA.c2.r1x*fA.b1.kinangvel);fA.kMassa=ef+fA.b1.sinertia*fA.rn1a*fA.rn1a+fA.b2.sinertia*fA.rn1b*fA.rn1b;fA.kMassb=ef+fA.b1.sinertia*fA.rn1a*fA.rn2a+fA.b2.sinertia*fA.rn1b*fA.rn2b;fA.kMassc=ef+fA.b1.sinertia*fA.rn2a*fA.rn2a+fA.b2.sinertia*fA.rn2b*fA.rn2b;if(fA.kMassa*fA.kMassa+2*fA.kMassb*fA.kMassb+fA.kMassc*fA.kMassc<P.illConditionedThreshold*(fA.kMassa*fA.kMassc-fA.kMassb*fA.kMassb)){fA.Ka=fA.kMassa;fA.Kb=fA.kMassb;fA.Kc=fA.kMassc;var gJ=fA.kMassa*fA.kMassc-fA.kMassb*fA.kMassb;if(gJ!=gJ){fA.kMassa=fA.kMassb=fA.kMassc=0}else{if(gJ==0){if(fA.kMassa!=0){fA.kMassa=1/fA.kMassa}else{fA.kMassa=0}if(fA.kMassc!=0){fA.kMassc=1/fA.kMassc}else{fA.kMassc=0}fA.kMassb=0}else{gJ=1/gJ;var gR=fA.kMassc*gJ;fA.kMassc=fA.kMassa*gJ;fA.kMassa=gR;fA.kMassb*=-gJ}}}else{fA.hc2=false;if(fA.oc2.dist<fA.oc1.dist){var fM=fA.c1;fA.c1=fA.c2;fA.c2=fM}fA.oc2.active=false;fA.contacts.modified=true}}fA.surfacex=fA.b2.svelx;fA.surfacey=fA.b2.svely;fA.surfacex+=fA.b1.svelx;fA.surfacey+=fA.b1.svely;fA.surfacex=-fA.surfacex;fA.surfacey=-fA.surfacey;fA.rMass=fA.b1.sinertia+fA.b2.sinertia;if(fA.rMass!=0){fA.rMass=1/fA.rMass}if(fm){el.active=false}}else{var fs=el.fluidarb;if(fs.pre_dt==-1){fs.pre_dt=gI}var eg=gI/fs.pre_dt;fs.pre_dt=gI;fs.r1x=fs.centroidx-fs.b1.posx;fs.r1y=fs.centroidy-fs.b1.posy;fs.r2x=fs.centroidx-fs.b2.posx;fs.r2y=fs.centroidy-fs.b2.posy;var eF=0;var eD=0;if(fs.ws1.fluidEnabled&&fs.ws1.fluidProperties.wrap_gravity!=null){eF=fs.ws1.fluidProperties.gravityx;eD=fs.ws1.fluidProperties.gravityy}else{eF=this.gravityx;eD=this.gravityy}var ey=0;var ew=0;if(fs.ws2.fluidEnabled&&fs.ws2.fluidProperties.wrap_gravity!=null){ey=fs.ws2.fluidProperties.gravityx;ew=fs.ws2.fluidProperties.gravityy}else{ey=this.gravityx;ew=this.gravityy}var ek=0;var ej=0;if(fs.ws1.fluidEnabled&&fs.ws2.fluidEnabled){var eP=fs.overlap*fs.ws1.fluidProperties.density;var eN=fs.overlap*fs.ws2.fluidProperties.density;if(eP>eN){var fI=eP+eN;ek-=eF*fI;ej-=eD*fI}else{if(eP<eN){var fF=eP+eN;ek+=ey*fF;ej+=ew*fF}else{var eY=0;var eX=0;eY=eF+ey;eX=eD+ew;eY*=0.5;eX*=0.5;if(fs.ws1.worldCOMx*eY+fs.ws1.worldCOMy*eX>fs.ws2.worldCOMx*eY+fs.ws2.worldCOMy*eX){var fC=eP+eN;ek-=eY*fC;ej-=eX*fC}else{var fz=eP+eN;ek+=eY*fz;ej+=eX*fz}}}}else{if(fs.ws1.fluidEnabled){var gL=fs.overlap*fs.ws1.fluidProperties.density;ek-=eF*gL;ej-=eD*gL}else{if(fs.ws2.fluidEnabled){var eL=fs.overlap*fs.ws2.fluidProperties.density;ek+=ey*eL;ej+=ew*eL}}}ek*=gI;ej*=gI;fs.buoyx=ek;fs.buoyy=ej;if(fs.b1.type==2){var fx=fs.b1.imass;fs.b1.velx-=ek*fx;fs.b1.vely-=ej*fx;fs.b1.angvel-=(ej*fs.r1x-ek*fs.r1y)*fs.b1.iinertia}if(fs.b2.type==2){var fu=fs.b2.imass;fs.b2.velx+=ek*fu;fs.b2.vely+=ej*fu;fs.b2.angvel+=(ej*fs.r2x-ek*fs.r2y)*fs.b2.iinertia}if((!fs.ws1.fluidEnabled||fs.ws1.fluidProperties.viscosity==0)&&(!fs.ws2.fluidEnabled||fs.ws2.fluidProperties.viscosity==0)){fs.nodrag=true;fs.dampx=0;fs.dampy=0;fs.adamp=0}else{fs.nodrag=false;var fr=0;if(fs.ws1.fluidEnabled){fs.ws2.validate_angDrag();fr=fs.ws1.fluidProperties.viscosity*fs.ws2.angDrag*fs.overlap/fs.ws2.area}if(fs.ws2.fluidEnabled){fs.ws1.validate_angDrag();fr+=fs.ws2.fluidProperties.viscosity*fs.ws1.angDrag*fs.overlap/fs.ws1.area}if(fr!=0){var g5=fs.b1.sinertia+fs.b2.sinertia;if(g5!=0){fs.wMass=1/g5}else{fs.wMass=0}fr*=0.0004;var eQ=2*Math.PI*fr;fs.agamma=1/(gI*eQ*(2+eQ*gI));var eA=1/(1+fs.agamma);fs.agamma*=eA;fs.wMass*=eA}else{fs.wMass=0;fs.agamma=0}var eT=fs.b2.velx+fs.b2.kinvelx-fs.r2y*(fs.b2.angvel+fs.b2.kinangvel)-(fs.b1.velx+fs.b1.kinvelx-fs.r1y*(fs.b2.angvel+fs.b2.kinangvel));var eR=fs.b2.vely+fs.b2.kinvely+fs.r2x*(fs.b2.angvel+fs.b2.kinangvel)-(fs.b1.vely+fs.b1.kinvely+fs.r1x*(fs.b1.angvel+fs.b1.kinangvel));if(!(eT*eT+eR*eR<P.epsilon*P.epsilon)){var em=1/Math.sqrt(eT*eT+eR*eR);eT*=em;eR*=em;fs.nx=eT;fs.ny=eR}var eb=0;if(fs.ws1.fluidEnabled){var g2=-fs.ws1.fluidProperties.viscosity*fs.overlap/fs.ws2.area;if(fs.ws2.type==0){eb=0-g2*fs.ws2.circle.radius*P.fluidLinearDrag/(2*fs.ws2.circle.radius*Math.PI)}else{var gT=fs.ws2.polygon;var eB=0;var eW=0;var eC=gT.edges.head;while(eC!=null){var f2=eC.elt;eB+=f2.length;var ff=g2*f2.length*(f2.gnormx*fs.nx+f2.gnormy*fs.ny);if(ff>0){ff*=-P.fluidVacuumDrag;ff=ff}eW-=ff*0.5*P.fluidLinearDrag;eC=eC.next}eb=eW/eB}}if(fs.ws2.fluidEnabled){var gK=-fs.ws2.fluidProperties.viscosity*fs.overlap/fs.ws1.area;if(fs.ws1.type==0){eb-=gK*fs.ws1.circle.radius*P.fluidLinearDrag/(2*fs.ws1.circle.radius*Math.PI)}else{var gq=fs.ws1.polygon;var es=0;var fB=0;var gl=gq.edges.head;while(gl!=null){var g4=gl.elt;es+=g4.length;var eV=gK*g4.length*(g4.gnormx*fs.nx+g4.gnormy*fs.ny);if(eV>0){eV*=-P.fluidVacuumDrag;eV=eV}fB-=eV*0.5*P.fluidLinearDrag;gl=gl.next}eb+=fB/es}}if(eb!=0){var gZ=fs.b1.smass+fs.b2.smass;var gP=0;var gO=0;var gN=0;gP=gZ;gO=0;gN=gZ;if(fs.b1.sinertia!=0){var hi=fs.r1x*fs.b1.sinertia;var hh=fs.r1y*fs.b1.sinertia;gP=gZ+hh*fs.r1y;gO+=-hh*fs.r1x;gN=gZ+hi*fs.r1x}if(fs.b2.sinertia!=0){var g9=fs.r2x*fs.b2.sinertia;var gM=fs.r2y*fs.b2.sinertia;gP+=gM*fs.r2y;gO+=-gM*fs.r2x;gN+=g9*fs.r2x}var g0=gP*gN-gO*gO;if(g0!=g0){gN=0;gO=gN;gP=gO}else{if(g0==0){if(gP!=0){gP=1/gP}else{gP=0}if(gN!=0){gN=1/gN}else{gN=0}gO=0}else{g0=1/g0;var fq=gN*g0;gN=gP*g0;gP=fq;gO*=-g0}}fs.vMassa=gP;fs.vMassb=gO;fs.vMassc=gN;var eU=2*Math.PI*eb;fs.lgamma=1/(gI*eU*(2+eU*gI));var ei=1/(1+fs.lgamma);fs.lgamma*=ei;fs.vMassa*=ei;fs.vMassb*=ei;fs.vMassc*=ei}else{fs.vMassa=0;fs.vMassb=0;fs.vMassc=0;fs.lgamma=0}}fs.dampx*=eg;fs.dampy*=eg;fs.adamp*=eg}}}else{if(el.colarb!=null){var fo=el.colarb;var ed=true;var hK=null;var eh=null;var ea=fo.innards.next;fo.hc2=false;var gj=fo.contacts.next;while(gj!=null){var hz=gj;if(hz.stamp+P.arbiterExpirationDelay<fo.stamp){var fn=fo.contacts;var hq;var fU;if(hK==null){hq=fn.next;fU=hq.next;fn.next=fU;if(fn.next==null){fn.pushmod=true}}else{hq=hK.next;fU=hq.next;hK.next=fU;if(fU==null){fn.pushmod=true}}hq._inuse=false;fn.modified=true;fn.length--;fn.pushmod=true;gj=fU;var fe=fo.innards;var ho;var fT;if(eh==null){ho=fe.next;fT=ho.next;fe.next=fT;if(fe.next==null){fe.pushmod=true}}else{ho=eh.next;fT=ho.next;eh.next=fT;if(fT==null){fe.pushmod=true}}ho._inuse=false;fe.modified=true;fe.length--;fe.pushmod=true;ea=fT;hz.arbiter=null;hz.next=c2.zpp_pool;c2.zpp_pool=hz;continue}var hR=hz.inner;var f3=hz.active;hz.active=hz.stamp==fo.stamp;if(hz.active){if(ed){ed=false;fo.c1=hR;fo.oc1=hz}else{fo.hc2=true;fo.c2=hR;fo.oc2=hz}}if(f3!=hz.active){fo.contacts.modified=true}hK=gj;eh=ea;ea=ea.next;gj=gj.next}if(fo.hc2){fo.hpc2=true;if(fo.oc1.posOnly){var fh=fo.c1;fo.c1=fo.c2;fo.c2=fh;var gV=fo.oc1;fo.oc1=fo.oc2;fo.oc2=gV;fo.hc2=false}else{if(fo.oc2.posOnly){fo.hc2=false}}if(fo.oc1.posOnly){ed=true}}else{fo.hpc2=false}if(ed){el.active=false}}}if(gv!=el.active){el.b1.arbiters.modified=true;el.b2.arbiters.modified=true;this.c_arbiters_true.modified=this.c_arbiters_false.modified=true;this.s_arbiters.modified=this.f_arbiters.modified=true}return false};a3.prototype.prestep=function(eq){var er=null;var et=this.live_constraints.head;while(et!=null){var ei=et.elt;if(ei.preStep(eq)){et=this.live_constraints.erase(er);ei.broken();this.constraintCbBreak(ei);if(ei.removeOnBreak){ei.component.sleeping=true;this.midstep=false;if(ei.compound!=null){ei.compound.wrap_constraints.remove(ei.outer)}else{this.wrap_constraints.remove(ei.outer)}this.midstep=true}else{ei.active=false}ei.clearcache();continue}er=et;et=et.next}var ed=null;var ep=this.c_arbiters_true;var eh=ep.head;var ee=this.c_arbiters_false!=null;if(ee&&eh==null){ee=false;eh=this.c_arbiters_false.head;ep=this.c_arbiters_false;ed=null}while(eh!=null){if(this.presteparb(eh.elt,eq)){var eb;var ew;if(ed==null){eb=ep.head;ew=eb.next;ep.head=ew;if(ep.head==null){ep.pushmod=true}}else{eb=ed.next;ew=eb.next;ed.next=ew;if(ew==null){ep.pushmod=true}}var es=eb;es.elt=null;es.next=bi.zpp_pool;bi.zpp_pool=es;ep.modified=true;ep.length--;ep.pushmod=true;eh=ew;if(ee&&eh==null){ee=false;eh=this.c_arbiters_false.head;ep=this.c_arbiters_false;ed=null}continue}ed=eh;eh=eh.next;if(ee&&eh==null){ee=false;eh=this.c_arbiters_false.head;ep=this.c_arbiters_false;ed=null}}var ec=null;var eg=this.f_arbiters;var eo=eg.head;while(eo!=null){if(this.presteparb(eo.elt,eq)){var el;var em;if(ec==null){el=eg.head;em=el.next;eg.head=em;if(eg.head==null){eg.pushmod=true}}else{el=ec.next;em=el.next;ec.next=em;if(em==null){eg.pushmod=true}}var ev=el;ev.elt=null;ev.next=bb.zpp_pool;bb.zpp_pool=ev;eg.modified=true;eg.length--;eg.pushmod=true;eo=em;continue}ec=eo;eo=eo.next}var ea=null;var ef=this.s_arbiters;var en=ef.head;while(en!=null){if(this.presteparb(en.elt,eq)){var ej;var ek;if(ea==null){ej=ef.head;ek=ej.next;ef.head=ek;if(ef.head==null){ef.pushmod=true}}else{ej=ea.next;ek=ej.next;ea.next=ek;if(ek==null){ef.pushmod=true}}var eu=ej;eu.elt=null;eu.next=L.zpp_pool;L.zpp_pool=eu;ef.modified=true;ef.length--;ef.pushmod=true;en=ek;continue}ea=en;en=en.next}};a3.prototype.warmStart=function(){var ed=this.f_arbiters.head;while(ed!=null){var ec=ed.elt;if(ec.active&&(ec.immState&1)!=0){var ep=ec.b1.imass;ec.b1.velx-=ec.dampx*ep;ec.b1.vely-=ec.dampy*ep;var ej=ec.b2.imass;ec.b2.velx+=ec.dampx*ej;ec.b2.vely+=ec.dampy*ej;ec.b1.angvel-=ec.b1.iinertia*(ec.dampy*ec.r1x-ec.dampx*ec.r1y);ec.b2.angvel+=ec.b2.iinertia*(ec.dampy*ec.r2x-ec.dampx*ec.r2y);ec.b1.angvel-=ec.adamp*ec.b1.iinertia;ec.b2.angvel+=ec.adamp*ec.b2.iinertia}ed=ed.next}var em=this.c_arbiters_false.head;var ea=true;if(em==null){em=this.c_arbiters_true.head;ea=false}while(em!=null){var ee=em.elt;if(ee.active&&(ee.immState&1)!=0){var eo=ee.nx*ee.c1.jnAcc-ee.ny*ee.c1.jtAcc;var en=ee.ny*ee.c1.jnAcc+ee.nx*ee.c1.jtAcc;var ei=ee.b1.imass;ee.b1.velx-=eo*ei;ee.b1.vely-=en*ei;ee.b1.angvel-=ee.b1.iinertia*(en*ee.c1.r1x-eo*ee.c1.r1y);var eh=ee.b2.imass;ee.b2.velx+=eo*eh;ee.b2.vely+=en*eh;ee.b2.angvel+=ee.b2.iinertia*(en*ee.c1.r2x-eo*ee.c1.r2y);if(ee.hc2){var eb=ee.nx*ee.c2.jnAcc-ee.ny*ee.c2.jtAcc;var el=ee.ny*ee.c2.jnAcc+ee.nx*ee.c2.jtAcc;var eg=ee.b1.imass;ee.b1.velx-=eb*eg;ee.b1.vely-=el*eg;ee.b1.angvel-=ee.b1.iinertia*(el*ee.c2.r1x-eb*ee.c2.r1y);var ef=ee.b2.imass;ee.b2.velx+=eb*ef;ee.b2.vely+=el*ef;ee.b2.angvel+=ee.b2.iinertia*(el*ee.c2.r2x-eb*ee.c2.r2y)}ee.b2.angvel+=ee.jrAcc*ee.b2.iinertia;ee.b1.angvel-=ee.jrAcc*ee.b1.iinertia}em=em.next;if(ea&&em==null){em=this.c_arbiters_true.head;ea=false}}var ek=this.live_constraints.head;while(ek!=null){ek.elt.warmStart();ek=ek.next}};a3.prototype.iterateVel=function(ep){var ex=0;while(ex<ep){++ex;var eB=this.f_arbiters.head;while(eB!=null){var eg=eB.elt;if(eg.active&&(eg.immState&1)!=0){if(!eg.nodrag){var er=eg.b1.angvel+eg.b1.kinangvel;var eo=eg.b2.angvel+eg.b2.kinangvel;var ew=eg.b1.velx+eg.b1.kinvelx-eg.r1y*er-(eg.b2.velx+eg.b2.kinvelx-eg.r2y*eo);var et=eg.b1.vely+eg.b1.kinvely+eg.r1x*er-(eg.b2.vely+eg.b2.kinvely+eg.r2x*eo);var ev=eg.vMassa*ew+eg.vMassb*et;et=eg.vMassb*ew+eg.vMassc*et;ew=ev;var en=eg.lgamma;ew-=eg.dampx*en;et-=eg.dampy*en;eg.dampx+=ew;eg.dampy+=et;var ek=eg.b1.imass;eg.b1.velx-=ew*ek;eg.b1.vely-=et*ek;var ei=eg.b2.imass;eg.b2.velx+=ew*ei;eg.b2.vely+=et*ei;eg.b1.angvel-=eg.b1.iinertia*(et*eg.r1x-ew*eg.r1y);eg.b2.angvel+=eg.b2.iinertia*(et*eg.r2x-ew*eg.r2y);var eI=(er-eo)*eg.wMass-eg.adamp*eg.agamma;eg.adamp+=eI;eg.b1.angvel-=eI*eg.b1.iinertia;eg.b2.angvel+=eI*eg.b2.iinertia}}eB=eB.next}var ey=null;var ez=this.live_constraints.head;while(ez!=null){var ec=ez.elt;if(ec.applyImpulseVel()){ez=this.live_constraints.erase(ey);ec.broken();this.constraintCbBreak(ec);if(ec.removeOnBreak){ec.component.sleeping=true;this.midstep=false;if(ec.compound!=null){ec.compound.wrap_constraints.remove(ec.outer)}else{this.wrap_constraints.remove(ec.outer)}this.midstep=true}else{ec.active=false}ec.clearcache();continue}ey=ez;ez=ez.next}var eA=this.c_arbiters_false.head;var ea=true;if(eA==null){eA=this.c_arbiters_true.head;ea=false}while(eA!=null){var eG=eA.elt;if(eG.active&&(eG.immState&1)!=0){var em;var eF;var eE;var eH;var eb;var ej;var eh=eG.k1x+eG.b2.velx-eG.c1.r2y*eG.b2.angvel-(eG.b1.velx-eG.c1.r1y*eG.b1.angvel);var ef=eG.k1y+eG.b2.vely+eG.c1.r2x*eG.b2.angvel-(eG.b1.vely+eG.c1.r1x*eG.b1.angvel);eE=(ef*eG.nx-eh*eG.ny+eG.surfacex)*eG.c1.tMass;eH=eG.c1.friction*eG.c1.jnAcc;eb=eG.c1.jtAcc;ej=eb-eE;if(ej>eH){ej=eH}else{if(ej<-eH){ej=-eH}}eE=ej-eb;eG.c1.jtAcc=ej;em=-eG.ny*eE;eF=eG.nx*eE;eG.b2.velx+=em*eG.b2.imass;eG.b2.vely+=eF*eG.b2.imass;eG.b1.velx-=em*eG.b1.imass;eG.b1.vely-=eF*eG.b1.imass;eG.b2.angvel+=eG.rt1b*eE*eG.b2.iinertia;eG.b1.angvel-=eG.rt1a*eE*eG.b1.iinertia;if(eG.hc2){var eD=eG.k2x+eG.b2.velx-eG.c2.r2y*eG.b2.angvel-(eG.b1.velx-eG.c2.r1y*eG.b1.angvel);var eC=eG.k2y+eG.b2.vely+eG.c2.r2x*eG.b2.angvel-(eG.b1.vely+eG.c2.r1x*eG.b1.angvel);eE=(eC*eG.nx-eD*eG.ny+eG.surfacex)*eG.c2.tMass;eH=eG.c2.friction*eG.c2.jnAcc;eb=eG.c2.jtAcc;ej=eb-eE;if(ej>eH){ej=eH}else{if(ej<-eH){ej=-eH}}eE=ej-eb;eG.c2.jtAcc=ej;em=-eG.ny*eE;eF=eG.nx*eE;eG.b2.velx+=em*eG.b2.imass;eG.b2.vely+=eF*eG.b2.imass;eG.b1.velx-=em*eG.b1.imass;eG.b1.vely-=eF*eG.b1.imass;eG.b2.angvel+=eG.rt2b*eE*eG.b2.iinertia;eG.b1.angvel-=eG.rt2a*eE*eG.b1.iinertia;eh=eG.k1x+eG.b2.velx-eG.c1.r2y*eG.b2.angvel-(eG.b1.velx-eG.c1.r1y*eG.b1.angvel);ef=eG.k1y+eG.b2.vely+eG.c1.r2x*eG.b2.angvel-(eG.b1.vely+eG.c1.r1x*eG.b1.angvel);eD=eG.k2x+eG.b2.velx-eG.c2.r2y*eG.b2.angvel-(eG.b1.velx-eG.c2.r1y*eG.b1.angvel);eC=eG.k2y+eG.b2.vely+eG.c2.r2x*eG.b2.angvel-(eG.b1.vely+eG.c2.r1x*eG.b1.angvel);var eq=eG.c1.jnAcc;var el=eG.c2.jnAcc;var eu=eh*eG.nx+ef*eG.ny+eG.surfacey+eG.c1.bounce-(eG.Ka*eq+eG.Kb*el);var es=eD*eG.nx+eC*eG.ny+eG.surfacey+eG.c2.bounce-(eG.Kb*eq+eG.Kc*el);var ee=-(eG.kMassa*eu+eG.kMassb*es);var ed=-(eG.kMassb*eu+eG.kMassc*es);if(ee>=0&&ed>=0){eu=ee-eq;es=ed-el;eG.c1.jnAcc=ee;eG.c2.jnAcc=ed}else{ee=-eG.c1.nMass*eu;if(ee>=0&&eG.Kb*ee+es>=0){eu=ee-eq;es=-el;eG.c1.jnAcc=ee;eG.c2.jnAcc=0}else{ed=-eG.c2.nMass*es;if(ed>=0&&eG.Kb*ed+eu>=0){eu=-eq;es=ed-el;eG.c1.jnAcc=0;eG.c2.jnAcc=ed}else{if(eu>=0&&es>=0){eu=-eq;es=-el;eG.c1.jnAcc=eG.c2.jnAcc=0}else{eu=0;es=0}}}}eE=eu+es;em=eG.nx*eE;eF=eG.ny*eE;eG.b2.velx+=em*eG.b2.imass;eG.b2.vely+=eF*eG.b2.imass;eG.b1.velx-=em*eG.b1.imass;eG.b1.vely-=eF*eG.b1.imass;eG.b2.angvel+=(eG.rn1b*eu+eG.rn2b*es)*eG.b2.iinertia;eG.b1.angvel-=(eG.rn1a*eu+eG.rn2a*es)*eG.b1.iinertia}else{if(eG.radius!=0){eE=(eG.b2.angvel-eG.b1.angvel)*eG.rMass;eH=eG.rfric*eG.c1.jnAcc;eb=eG.jrAcc;eG.jrAcc-=eE;if(eG.jrAcc>eH){eG.jrAcc=eH}else{if(eG.jrAcc<-eH){eG.jrAcc=-eH}}eE=eG.jrAcc-eb;eG.b2.angvel+=eE*eG.b2.iinertia;eG.b1.angvel-=eE*eG.b1.iinertia}eh=eG.k1x+eG.b2.velx-eG.c1.r2y*eG.b2.angvel-(eG.b1.velx-eG.c1.r1y*eG.b1.angvel);ef=eG.k1y+eG.b2.vely+eG.c1.r2x*eG.b2.angvel-(eG.b1.vely+eG.c1.r1x*eG.b1.angvel);eE=(eG.c1.bounce+(eG.nx*eh+eG.ny*ef)+eG.surfacey)*eG.c1.nMass;eb=eG.c1.jnAcc;ej=eb-eE;if(ej<0){ej=0}eE=ej-eb;eG.c1.jnAcc=ej;em=eG.nx*eE;eF=eG.ny*eE;eG.b2.velx+=em*eG.b2.imass;eG.b2.vely+=eF*eG.b2.imass;eG.b1.velx-=em*eG.b1.imass;eG.b1.vely-=eF*eG.b1.imass;eG.b2.angvel+=eG.rn1b*eE*eG.b2.iinertia;eG.b1.angvel-=eG.rn1a*eE*eG.b1.iinertia}}eA=eA.next;if(ea&&eA==null){eA=this.c_arbiters_true.head;ea=false}}}};a3.prototype.iteratePos=function(fo){var eh=0;while(eh<fo){++eh;var fg=null;var fP=this.live_constraints.head;while(fP!=null){var eM=fP.elt;if(!eM.__velocity&&eM.stiff){if(eM.applyImpulsePos()){fP=this.live_constraints.erase(fg);eM.broken();this.constraintCbBreak(eM);if(eM.removeOnBreak){eM.component.sleeping=true;this.midstep=false;if(eM.compound!=null){eM.compound.wrap_constraints.remove(eM.outer)}else{this.wrap_constraints.remove(eM.outer)}this.midstep=true}else{eM.active=false}eM.clearcache();continue}}fg=fP;fP=fP.next}var fw=this.c_arbiters_false.head;var fB=true;if(fw==null){fw=this.c_arbiters_true.head;fB=false}while(fw!=null){var gl=fw.elt;if(gl.active&&(gl.immState&1)!=0){if(gl.ptype==2){var ft=gl.c1;var fR=0;var fQ=0;fR=gl.b2.axisy*ft.lr2x-gl.b2.axisx*ft.lr2y;fQ=ft.lr2x*gl.b2.axisx+ft.lr2y*gl.b2.axisy;fR+=gl.b2.posx;fQ+=gl.b2.posy;var f6=0;var f5=0;f6=gl.b1.axisy*ft.lr1x-gl.b1.axisx*ft.lr1y;f5=ft.lr1x*gl.b1.axisx+ft.lr1y*gl.b1.axisy;f6+=gl.b1.posx;f5+=gl.b1.posy;var ex=0;var ew=0;ex=fR-f6;ew=fQ-f5;var eG=Math.sqrt(ex*ex+ew*ew);var e3=gl.radius-P.collisionSlop;var fT=eG-e3;if(ex*gl.nx+ew*gl.ny<0){ex=-ex;ew=-ew;fT-=gl.radius}if(fT<0){if(eG<P.epsilon){if(gl.b1.smass!=0){gl.b1.posx+=P.epsilon*10}else{gl.b2.posx+=P.epsilon*10}}else{var e1=1/eG;ex*=e1;ew*=e1;var eF=0.5*(f6+fR);var eE=0.5*(f5+fQ);var fy=eG-e3;f6=eF-gl.b1.posx;f5=eE-gl.b1.posy;fR=eF-gl.b2.posx;fQ=eE-gl.b2.posy;var eQ=ew*f6-ex*f5;var eO=ew*fR-ex*fQ;var fO=gl.b2.smass+eO*eO*gl.b2.sinertia+gl.b1.smass+eQ*eQ*gl.b1.sinertia;if(fO!=0){var eH=-gl.biasCoef*fy/fO;var eZ=0;var eY=0;eZ=ex*eH;eY=ew*eH;var gk=gl.b1.imass;gl.b1.posx-=eZ*gk;gl.b1.posy-=eY*gk;var eI=gl.b1;var eB=-eQ*gl.b1.iinertia*eH;eI.rot+=eB;if(eB*eB>0.0001){eI.axisx=Math.sin(eI.rot);eI.axisy=Math.cos(eI.rot)}else{var fx=eB*eB;var e6=1-0.5*fx;var fa=1-fx*fx/8;var fz=(e6*eI.axisx+eB*eI.axisy)*fa;eI.axisy=(e6*eI.axisy-eB*eI.axisx)*fa;eI.axisx=fz}var gj=gl.b2.imass;gl.b2.posx+=eZ*gj;gl.b2.posy+=eY*gj;var fe=gl.b2;var ev=eO*gl.b2.iinertia*eH;fe.rot+=ev;if(ev*ev>0.0001){fe.axisx=Math.sin(fe.rot);fe.axisy=Math.cos(fe.rot)}else{var fv=ev*ev;var fL=1-0.5*fv;var ej=1-fv*fv/8;var f4=(fL*fe.axisx+ev*fe.axisy)*ej;fe.axisy=(fL*fe.axisy-ev*fe.axisx)*ej;fe.axisx=f4}}}}}else{var eX=0;var eW=0;var e0;var fU=0;var fS=0;var fM=0;var fK=0;if(gl.ptype==0){eX=gl.b1.axisy*gl.lnormx-gl.b1.axisx*gl.lnormy;eW=gl.lnormx*gl.b1.axisx+gl.lnormy*gl.b1.axisy;e0=gl.lproj+(eX*gl.b1.posx+eW*gl.b1.posy);fU=gl.b2.axisy*gl.c1.lr1x-gl.b2.axisx*gl.c1.lr1y;fS=gl.c1.lr1x*gl.b2.axisx+gl.c1.lr1y*gl.b2.axisy;fU+=gl.b2.posx;fS+=gl.b2.posy;if(gl.hpc2){fM=gl.b2.axisy*gl.c2.lr1x-gl.b2.axisx*gl.c2.lr1y;fK=gl.c2.lr1x*gl.b2.axisx+gl.c2.lr1y*gl.b2.axisy;fM+=gl.b2.posx;fK+=gl.b2.posy}}else{eX=gl.b2.axisy*gl.lnormx-gl.b2.axisx*gl.lnormy;eW=gl.lnormx*gl.b2.axisx+gl.lnormy*gl.b2.axisy;e0=gl.lproj+(eX*gl.b2.posx+eW*gl.b2.posy);fU=gl.b1.axisy*gl.c1.lr1x-gl.b1.axisx*gl.c1.lr1y;fS=gl.c1.lr1x*gl.b1.axisx+gl.c1.lr1y*gl.b1.axisy;fU+=gl.b1.posx;fS+=gl.b1.posy;if(gl.hpc2){fM=gl.b1.axisy*gl.c2.lr1x-gl.b1.axisx*gl.c2.lr1y;fK=gl.c2.lr1x*gl.b1.axisx+gl.c2.lr1y*gl.b1.axisy;fM+=gl.b1.posx;fK+=gl.b1.posy}}var eN=fU*eX+fS*eW-e0-gl.radius;eN+=P.collisionSlop;var eK=0;if(gl.hpc2){eK=fM*eX+fK*eW-e0-gl.radius;eK+=P.collisionSlop}if(eN<0||eK<0){if(gl.rev){eX=-eX;eW=-eW}var fl=0;var fi=0;fl=fU-gl.b1.posx;fi=fS-gl.b1.posy;var eL=0;var eJ=0;eL=fU-gl.b2.posx;eJ=fS-gl.b2.posy;var fu=0;var fs=0;var eV=0;var eT=0;if(gl.hpc2){fu=fM-gl.b1.posx;fs=fK-gl.b1.posy;eV=fM-gl.b2.posx;eT=fK-gl.b2.posy;var eo=eW*fl-eX*fi;var em=eW*eL-eX*eJ;var gi=eW*fu-eX*fs;var gg=eW*eV-eX*eT;var eu=gl.b1.smass+gl.b2.smass;gl.kMassa=eu+gl.b1.sinertia*eo*eo+gl.b2.sinertia*em*em;gl.kMassb=eu+gl.b1.sinertia*eo*gi+gl.b2.sinertia*em*gg;gl.kMassc=eu+gl.b1.sinertia*gi*gi+gl.b2.sinertia*gg*gg;var eU=0;var eR=0;var eP=0;eU=gl.kMassa;eR=gl.kMassb;eP=gl.kMassc;var fn=eN*gl.biasCoef;var fk=eK*gl.biasCoef;while(true){var ge=0;var gc=0;ge=fn;gc=fk;ge=-fn;gc=-fk;var f7=gl.kMassa*gl.kMassc-gl.kMassb*gl.kMassb;if(f7!=f7){gc=0;ge=gc}else{if(f7==0){if(gl.kMassa!=0){ge/=gl.kMassa}else{ge=0}if(gl.kMassc!=0){gc/=gl.kMassc}else{gc=0}}else{f7=1/f7;var gh=f7*(gl.kMassc*ge-gl.kMassb*gc);gc=f7*(gl.kMassa*gc-gl.kMassb*ge);ge=gh}}if(ge>=0&&gc>=0){var gf=(ge+gc)*gl.b1.imass;gl.b1.posx-=eX*gf;gl.b1.posy-=eW*gf;var fc=gl.b1;var et=-gl.b1.iinertia*(eo*ge+gi*gc);fc.rot+=et;if(et*et>0.0001){fc.axisx=Math.sin(fc.rot);fc.axisy=Math.cos(fc.rot)}else{var fr=et*et;var fJ=1-0.5*fr;var ei=1-fr*fr/8;var f3=(fJ*fc.axisx+et*fc.axisy)*ei;fc.axisy=(fJ*fc.axisy-et*fc.axisx)*ei;fc.axisx=f3}var gd=(ge+gc)*gl.b2.imass;gl.b2.posx+=eX*gd;gl.b2.posy+=eW*gd;var fb=gl.b2;var es=gl.b2.iinertia*(em*ge+gg*gc);fb.rot+=es;if(es*es>0.0001){fb.axisx=Math.sin(fb.rot);fb.axisy=Math.cos(fb.rot)}else{var fq=es*es;var fH=1-0.5*fq;var eg=1-fq*fq/8;var f2=(fH*fb.axisx+es*fb.axisy)*eg;fb.axisy=(fH*fb.axisy-es*fb.axisx)*eg;fb.axisx=f2}break}ge=-fn/eU;gc=0;var eC=eR*ge+fk;if(ge>=0&&eC>=0){var gb=(ge+gc)*gl.b1.imass;gl.b1.posx-=eX*gb;gl.b1.posy-=eW*gb;var e9=gl.b1;var er=-gl.b1.iinertia*(eo*ge+gi*gc);e9.rot+=er;if(er*er>0.0001){e9.axisx=Math.sin(e9.rot);e9.axisy=Math.cos(e9.rot)}else{var fp=er*er;var fG=1-0.5*fp;var ef=1-fp*fp/8;var f1=(fG*e9.axisx+er*e9.axisy)*ef;e9.axisy=(fG*e9.axisy-er*e9.axisx)*ef;e9.axisx=f1}var ga=(ge+gc)*gl.b2.imass;gl.b2.posx+=eX*ga;gl.b2.posy+=eW*ga;var e8=gl.b2;var eq=gl.b2.iinertia*(em*ge+gg*gc);e8.rot+=eq;if(eq*eq>0.0001){e8.axisx=Math.sin(e8.rot);e8.axisy=Math.cos(e8.rot)}else{var fm=eq*eq;var fF=1-0.5*fm;var ee=1-fm*fm/8;var f0=(fF*e8.axisx+eq*e8.axisy)*ee;e8.axisy=(fF*e8.axisy-eq*e8.axisx)*ee;e8.axisx=f0}break}ge=0;gc=-fk/eP;var eD=eR*gc+fn;if(gc>=0&&eD>=0){var f9=(ge+gc)*gl.b1.imass;gl.b1.posx-=eX*f9;gl.b1.posy-=eW*f9;var e7=gl.b1;var ep=-gl.b1.iinertia*(eo*ge+gi*gc);e7.rot+=ep;if(ep*ep>0.0001){e7.axisx=Math.sin(e7.rot);e7.axisy=Math.cos(e7.rot)}else{var fj=ep*ep;var fE=1-0.5*fj;var ed=1-fj*fj/8;var fZ=(fE*e7.axisx+ep*e7.axisy)*ed;e7.axisy=(fE*e7.axisy-ep*e7.axisx)*ed;e7.axisx=fZ}var f8=(ge+gc)*gl.b2.imass;gl.b2.posx+=eX*f8;gl.b2.posy+=eW*f8;var e5=gl.b2;var en=gl.b2.iinertia*(em*ge+gg*gc);e5.rot+=en;if(en*en>0.0001){e5.axisx=Math.sin(e5.rot);e5.axisy=Math.cos(e5.rot)}else{var fh=en*en;var fD=1-0.5*fh;var ec=1-fh*fh/8;var fY=(fD*e5.axisx+en*e5.axisy)*ec;e5.axisy=(fD*e5.axisy-en*e5.axisx)*ec;e5.axisx=fY}break}break}}else{var eS=eW*fl-eX*fi;var eA=eW*eL-eX*eJ;var fN=gl.b2.smass+eA*eA*gl.b2.sinertia+gl.b1.smass+eS*eS*gl.b1.sinertia;if(fN!=0){var fI=-gl.biasCoef*eN/fN;var gm=0;var fX=0;gm=eX*fI;fX=eW*fI;var ez=gl.b1.imass;gl.b1.posx-=gm*ez;gl.b1.posy-=fX*ez;var e4=gl.b1;var el=-eS*gl.b1.iinertia*fI;e4.rot+=el;if(el*el>0.0001){e4.axisx=Math.sin(e4.rot);e4.axisy=Math.cos(e4.rot)}else{var ff=el*el;var fC=1-0.5*ff;var eb=1-ff*ff/8;var fW=(fC*e4.axisx+el*e4.axisy)*eb;e4.axisy=(fC*e4.axisy-el*e4.axisx)*eb;e4.axisx=fW}var ey=gl.b2.imass;gl.b2.posx+=gm*ey;gl.b2.posy+=fX*ey;var e2=gl.b2;var ek=eA*gl.b2.iinertia*fI;e2.rot+=ek;if(ek*ek>0.0001){e2.axisx=Math.sin(e2.rot);e2.axisy=Math.cos(e2.rot)}else{var fd=ek*ek;var fA=1-0.5*fd;var ea=1-fd*fd/8;var fV=(fA*e2.axisx+ek*e2.axisy)*ea;e2.axisy=(fA*e2.axisy-ek*e2.axisx)*ea;e2.axisx=fV}}}}}}fw=fw.next;if(fB&&fw==null){fw=this.c_arbiters_true.head;fB=false}}}};a3.prototype.group_ignore=function(ee,ed){var eg=ee;while(eg!=null&&eg.group==null){if(eg.ishape!=null){eg=eg.ishape.body}else{if(eg.icompound!=null){eg=eg.icompound.compound}else{eg=eg.ibody.compound}}}var eb=eg==null?null:eg.group;if(eb==null){return false}else{var ef=ed;while(ef!=null&&ef.group==null){if(ef.ishape!=null){ef=ef.ishape.body}else{if(ef.icompound!=null){ef=ef.icompound.compound}else{ef=ef.ibody.compound}}}var ea=ef==null?null:ef.group;if(ea==null){return false}else{var ec=false;while(eb!=null&&ea!=null){if(eb==ea){ec=eb.ignore;break}if(eb.depth<ea.depth){ea=ea.group}else{eb=eb.group}}return ec}}};a3.prototype.interactionType=function(ed,ec,ei,eh){var eb;eb=false;var ep=ei.constraints.head;while(ep!=null){var ef=ep.elt;if(ef.ignore&&ef.pair_exists(ei.id,eh.id)){eb=true;break}ep=ep.next}var ev;if(!eb){var ee=ed;while(ee!=null&&ee.group==null){if(ee.ishape!=null){ee=ee.ishape.body}else{if(ee.icompound!=null){ee=ee.icompound.compound}else{ee=ee.ibody.compound}}}var ea=ee==null?null:ee.group;var eo;if(ea==null){eo=false}else{var eg=ec;while(eg!=null&&eg.group==null){if(eg.ishape!=null){eg=eg.ishape.body}else{if(eg.icompound!=null){eg=eg.icompound.compound}else{eg=eg.ibody.compound}}}var ex=eg==null?null:eg.group;if(ex==null){eo=false}else{var ew=false;while(ea!=null&&ex!=null){if(ea==ex){ew=ea.ignore;break}if(ea.depth<ex.depth){ex=ex.group}else{ea=ea.group}}eo=ew}}ev=!eo}else{ev=false}if(ev){var en;if(ed.sensorEnabled||ec.sensorEnabled){var eq=ed.filter;var ej=ec.filter;if((eq.sensorMask&ej.sensorGroup)!=0){en=(ej.sensorMask&eq.sensorGroup)!=0}else{en=false}}else{en=false}if(en){return 2}else{var em;var el;if(ed.fluidEnabled||ec.fluidEnabled){var eu=ed.filter;var et=ec.filter;if((eu.fluidMask&et.fluidGroup)!=0){el=(et.fluidMask&eu.fluidGroup)!=0}else{el=false}}else{el=false}if(el){em=!(ei.imass==0&&eh.imass==0&&ei.iinertia==0&&eh.iinertia==0)}else{em=false}if(em){return 0}else{var ek;var es=ed.filter;var er=ec.filter;if((es.collisionMask&er.collisionGroup)!=0&&(er.collisionMask&es.collisionGroup)!=0){ek=!(ei.imass==0&&eh.imass==0&&ei.iinertia==0&&eh.iinertia==0)}else{ek=false}if(ek){return 1}else{return -1}}}}else{return -1}};a3.prototype.precb=null;a3.prototype.prelisteners=null;a3.prototype.narrowPhase=function(fe,fc,jk,gX,el){var gb=this;var jM=null;var j7=fe.body;var j6=fc.body;var fB;fB=false;var hj=j7.constraints.head;while(hj!=null){var fr=hj.elt;if(fr.ignore&&fr.pair_exists(j7.id,j6.id)){fB=true;break}hj=hj.next}var jJ;var eG;if(!fB){var ew=fe;while(ew!=null&&ew.group==null){if(ew.ishape!=null){ew=ew.ishape.body}else{if(ew.icompound!=null){ew=ew.icompound.compound}else{ew=ew.ibody.compound}}}var h5=ew==null?null:ew.group;var fh;if(h5==null){fh=false}else{var gD=fc;while(gD!=null&&gD.group==null){if(gD.ishape!=null){gD=gD.ishape.body}else{if(gD.icompound!=null){gD=gD.icompound.compound}else{gD=gD.ibody.compound}}}var h4=gD==null?null:gD.group;if(h4==null){fh=false}else{var iQ=false;while(h5!=null&&h4!=null){if(h5==h4){iQ=h5.ignore;break}if(h5.depth<h4.depth){h4=h4.group}else{h5=h5.group}}fh=iQ}}eG=!fh}else{eG=false}if(eG){var fg;if(fe.sensorEnabled||fc.sensorEnabled){var eR=fe.filter;var iW=fc.filter;if((eR.sensorMask&iW.sensorGroup)!=0){fg=(iW.sensorMask&eR.sensorGroup)!=0}else{fg=false}}else{fg=false}if(fg){jJ=2}else{var ff;var fd;if(fe.fluidEnabled||fc.fluidEnabled){var eu=fe.filter;var eA=fc.filter;if((eu.fluidMask&eA.fluidGroup)!=0){fd=(eA.fluidMask&eu.fluidGroup)!=0}else{fd=false}}else{fd=false}if(fd){ff=!(j7.imass==0&&j6.imass==0&&j7.iinertia==0&&j6.iinertia==0)}else{ff=false}if(ff){jJ=0}else{var fb;var et=fe.filter;var ez=fc.filter;if((et.collisionMask&ez.collisionGroup)!=0&&(ez.collisionMask&et.collisionGroup)!=0){fb=!(j7.imass==0&&j6.imass==0&&j7.iinertia==0&&j6.iinertia==0)}else{fb=false}if(fb){jJ=1}else{jJ=-1}}}}else{jJ=-1}if(jJ!=-1){var eV;var eT;if(fe.type>fc.type){eV=fc;eT=fe}else{if(fe.type==fc.type){if(fe.id<fc.id){eV=fe;eT=fc}else{eT=fe;eV=fc}}else{eV=fe;eT=fc}}var e4=eV==fc;if(jJ==0){var iv;if(gX==null){var iN=null;var eQ=(j7.arbiters.length<j6.arbiters.length?j7:j6).arbiters.head;while(eQ!=null){var hG=eQ.elt;if(hG.id==eV.id&&hG.di==eT.id){iN=hG;break}eQ=eQ.next}iv=iN}else{iv=gX}var ei=iv==null;var gL;var iZ=false;if(ei){if(dK.zpp_pool==null){gL=new dK()}else{gL=dK.zpp_pool;dK.zpp_pool=gL.next;gL.next=null}}else{if(iv.fluidarb==null){iv.cleared=true;var er=iv.b1.arbiters;var jL=null;var gC=er.head;while(gC!=null){if(gC.elt==iv){var f4;var iK;if(jL==null){f4=er.head;iK=f4.next;er.head=iK;if(er.head==null){er.pushmod=true}}else{f4=jL.next;iK=f4.next;jL.next=iK;if(iK==null){er.pushmod=true}}var i3=f4;i3.elt=null;i3.next=dL.zpp_pool;dL.zpp_pool=i3;er.modified=true;er.length--;er.pushmod=true;break}jL=gC;gC=gC.next}var eq=iv.b2.arbiters;var iP=null;var gB=eq.head;while(gB!=null){if(gB.elt==iv){var e2;var iH;if(iP==null){e2=eq.head;iH=e2.next;eq.head=iH;if(eq.head==null){eq.pushmod=true}}else{e2=iP.next;iH=e2.next;iP.next=iH;if(iH==null){eq.pushmod=true}}var gm=e2;gm.elt=null;gm.next=dL.zpp_pool;dL.zpp_pool=gm;eq.modified=true;eq.length--;eq.pushmod=true;break}iP=gB;gB=gB.next}if(iv.pair!=null){iv.pair.arb=null;iv.pair=null}iv.active=false;this.f_arbiters.modified=true;if(dK.zpp_pool==null){gL=new dK()}else{gL=dK.zpp_pool;dK.zpp_pool=gL.next;gL.next=null}gL.intchange=true;ei=true;iZ=true}else{gL=iv.fluidarb}}if(ei||gL.stamp!=this.stamp||el){gL.stamp=this.stamp;if(b7.flowCollide(eV,eT,gL)){if(ei){var gY=eV.id;var iw=eT.id;gL.b1=fe.body;gL.ws1=fe;gL.b2=fc.body;gL.ws2=fc;gL.id=gY;gL.di=iw;var eo=gL.b1.arbiters;var iE;if(dL.zpp_pool==null){iE=new dL()}else{iE=dL.zpp_pool;dL.zpp_pool=iE.next;iE.next=null}iE.elt=gL;var fC=iE;fC.next=eo.head;eo.head=fC;eo.modified=true;eo.length++;var en=gL.b2.arbiters;var iB;if(dL.zpp_pool==null){iB=new dL()}else{iB=dL.zpp_pool;dL.zpp_pool=iB.next;iB.next=null}iB.elt=gL;var jv=iB;jv.next=en.head;en.head=jv;en.modified=true;en.length++;gL.active=true;gL.present=0;gL.cleared=false;gL.sleeping=false;gL.fresh=false;gL.presentable=false;gL.nx=0;gL.ny=1;gL.dampx=0;gL.dampy=0;gL.adamp=0;var em=this.f_arbiters;var iz;if(bb.zpp_pool==null){iz=new bb()}else{iz=bb.zpp_pool;bb.zpp_pool=iz.next;iz.next=null}iz.elt=gL;var ju=iz;ju.next=em.head;em.head=ju;em.modified=true;em.length++;gL.fresh=!iZ}else{gL.fresh=gL.up_stamp<this.stamp-1||gL.endGenerated==this.stamp&&el}gL.up_stamp=gL.stamp;if(gL.fresh||(gL.immState&4)==0){gL.immState=1;var gT=false;var jH=gL.ws1.id>gL.ws2.id?gL.ws2:gL.ws1;var jE=gL.ws1.id>gL.ws2.id?gL.ws1:gL.ws2;var ek=this.mrca1;while(ek.head!=null){var iy=ek.head;ek.head=iy.next;iy.elt=null;iy.next=g.zpp_pool;g.zpp_pool=iy;if(ek.head==null){ek.pushmod=true}ek.modified=true;ek.length--}ek.pushmod=true;var ej=this.mrca2;while(ej.head!=null){var ix=ej.head;ej.head=ix.next;ix.elt=null;ix.next=g.zpp_pool;g.zpp_pool=ix;if(ej.head==null){ej.pushmod=true}ej.modified=true;ej.length--}ej.pushmod=true;if(jH.cbSet!=null){var gz=this.mrca1;var iu;if(g.zpp_pool==null){iu=new g()}else{iu=g.zpp_pool;g.zpp_pool=iu.next;iu.next=null}iu.elt=jH;var jt=iu;jt.next=gz.head;gz.head=jt;gz.modified=true;gz.length++}if(jH.body.cbSet!=null){var gx=this.mrca1;var gl=jH.body;var ir;if(g.zpp_pool==null){ir=new g()}else{ir=g.zpp_pool;g.zpp_pool=ir.next;ir.next=null}ir.elt=gl;var jr=ir;jr.next=gx.head;gx.head=jr;gx.modified=true;gx.length++}if(jE.cbSet!=null){var gv=this.mrca2;var ip;if(g.zpp_pool==null){ip=new g()}else{ip=g.zpp_pool;g.zpp_pool=ip.next;ip.next=null}ip.elt=jE;var jq=ip;jq.next=gv.head;gv.head=jq;gv.modified=true;gv.length++}if(jE.body.cbSet!=null){var gt=this.mrca2;var gk=jE.body;var il;if(g.zpp_pool==null){il=new g()}else{il=g.zpp_pool;g.zpp_pool=il.next;il.next=null}il.elt=gk;var jp=il;jp.next=gt.head;gt.head=jp;gt.modified=true;gt.length++}var jQ=jH.body.compound;var jN=jE.body.compound;while(jQ!=jN){if((jQ==null?0:jQ.depth)<(jN==null?0:jN.depth)){if(jN.cbSet!=null){var gs=this.mrca2;var ij;if(g.zpp_pool==null){ij=new g()}else{ij=g.zpp_pool;g.zpp_pool=ij.next;ij.next=null}ij.elt=jN;var jn=ij;jn.next=gs.head;gs.head=jn;gs.modified=true;gs.length++}jN=jN.compound}else{if(jQ.cbSet!=null){var gr=this.mrca1;var ih;if(g.zpp_pool==null){ih=new g()}else{ih=g.zpp_pool;g.zpp_pool=ih.next;ih.next=null}ih.elt=jQ;var jl=ih;jl.next=gr.head;gr.head=jl;gr.modified=true;gr.length++}jQ=jQ.compound}}var eP=this.mrca1.head;while(eP!=null){var hs=eP.elt;var eO=this.mrca2.head;while(eO!=null){var hr=eO.elt;var jR=hs.cbSet;var jO=hr.cbSet;var ie=null;var eN=(jR.cbpairs.length<jO.cbpairs.length?jR.cbpairs:jO.cbpairs).head;while(eN!=null){var i0=eN.elt;if(i0.a==jR&&i0.b==jO||i0.a==jO&&i0.b==jR){ie=i0;break}eN=eN.next}if(ie==null){var ib;if(ar.zpp_pool==null){ib=new ar()}else{ib=ar.zpp_pool;ar.zpp_pool=ib.next;ib.next=null}ib.zip_listeners=true;if(cC.setlt(jR,jO)){ib.a=jR;ib.b=jO}else{ib.a=jO;ib.b=jR}ie=ib;jR.cbpairs.add(ie);if(jO!=jR){jO.cbpairs.add(ie)}}if(ie.zip_listeners){ie.zip_listeners=false;ie.__validate()}if(ie.listeners.head==null){eO=eO.next;continue}var fp=null;var fq=null;var gq=this.prelisteners;while(gq.head!=null){var h9=gq.head;gq.head=h9.next;h9.elt=null;h9.next=aF.zpp_pool;aF.zpp_pool=h9;if(gq.head==null){gq.pushmod=true}gq.modified=true;gq.length--}gq.pushmod=true;var im=null;var h7=null;var eM=(jR.cbpairs.length<jO.cbpairs.length?jR.cbpairs:jO.cbpairs).head;while(eM!=null){var f1=eM.elt;if(f1.a==jR&&f1.b==jO||f1.a==jO&&f1.b==jR){h7=f1;break}eM=eM.next}if(h7==null){var h3;if(ar.zpp_pool==null){h3=new ar()}else{h3=ar.zpp_pool;ar.zpp_pool=h3.next;h3.next=null}h3.zip_listeners=true;if(cC.setlt(jR,jO)){h3.a=jR;h3.b=jO}else{h3.a=jO;h3.b=jR}h7=h3;jR.cbpairs.add(h7);if(jO!=jR){jO.cbpairs.add(h7)}}if(h7.zip_listeners){h7.zip_listeners=false;h7.__validate()}var eL=h7.listeners.head;while(eL!=null){var ey=eL.elt;if(ey.event==5){if((ey.itype&4)!=0){var gp=gb.prelisteners;var h1;if(aF.zpp_pool==null){h1=new aF()}else{h1=aF.zpp_pool;aF.zpp_pool=h1.next;h1.next=null}h1.elt=ey;var ji=h1;if(im==null){ji.next=gp.head;gp.head=ji}else{ji.next=im.next;im.next=ji}gp.pushmod=gp.modified=true;gp.length++;im=ji;if(!gT){gT=!ey.pure}else{gT=true}}}eL=eL.next}if(this.prelisteners.head==null){eO=eO.next;continue}fp=dM.get(hs,hr);if(fp==null){fq=cg.get(hs,hr);this.add_callbackset(fq)}if(fp==null||(fp.FLUIDstamp!=this.stamp||el)&&(fp.FLUIDstate&4)==0){if(fq!=null){fp=fq}if(fp!=null){var eK=this.prelisteners.head;while(eK!=null){if(eK.elt.itype==7){fp.COLLISIONstamp=this.stamp;fp.SENSORstamp=this.stamp;fp.FLUIDstamp=this.stamp}else{fp.FLUIDstamp=this.stamp}eK=eK.next}}var eH=gL.active;gL.active=true;this.precb.zpp_inner.pre_arbiter=gL;this.precb.zpp_inner.set=fp;var eJ=this.prelisteners.head;while(eJ!=null){var gE=eJ.elt;this.precb.zpp_inner.listener=gE;var i7=this.precb.zpp_inner;var jm=fp.int1;var iU=fp.int2;var fa;var go=gE.options1;var j9=jm.cbTypes;if(go.nonemptyintersection(j9,go.includes)&&!go.nonemptyintersection(j9,go.excludes)){var gn=gE.options2;var jT=iU.cbTypes;if(gn.nonemptyintersection(jT,gn.includes)){fa=!gn.nonemptyintersection(jT,gn.excludes)}else{fa=false}}else{fa=false}if(fa){i7.int1=jm;i7.int2=iU}else{i7.int1=iU;i7.int2=jm}this.precb.zpp_inner.pre_swapped=hs!=this.precb.zpp_inner.int1;var hZ=gE.handlerp(this.precb);if(hZ!=null){var e9;if(br.PreFlag_ACCEPT==null){br.internal=true;br.PreFlag_ACCEPT=new bq();br.internal=false}if(hZ==br.PreFlag_ACCEPT){e9=5}else{if(br.PreFlag_ACCEPT_ONCE==null){br.internal=true;br.PreFlag_ACCEPT_ONCE=new bq();br.internal=false}if(hZ==br.PreFlag_ACCEPT_ONCE){e9=1}else{if(br.PreFlag_IGNORE==null){br.internal=true;br.PreFlag_IGNORE=new bq();br.internal=false}if(hZ==br.PreFlag_IGNORE){e9=6}else{e9=2}}}gL.immState=e9}eJ=eJ.next}gL.active=eH;if(fp!=null){var eI=this.prelisteners.head;while(eI!=null){if(eI.elt.itype==7){fp.COLLISIONstate=gL.immState;fp.SENSORstate=gL.immState;fp.FLUIDstate=gL.immState}else{fp.FLUIDstate=gL.immState}eI=eI.next}}}else{if(fp==null){if((gL.immState&4)==0){gL.immState=1}}else{gL.immState=fp.FLUIDstate}}eO=eO.next}eP=eP.next}if(gT&&(gL.immState&4)==0){if(gL.b1.type==2){var gj=gL.b1;if(!gj.world){gj.component.waket=this.stamp+(this.midstep?0:1);if(gj.type==3){gj.kinematicDelaySleep=true}if(gj.component.sleeping){this.really_wake(gj,false)}}}if(gL.b1.type==2){var gi=gL.b2;if(!gi.world){gi.component.waket=this.stamp+(this.midstep?0:1);if(gi.type==3){gi.kinematicDelaySleep=true}if(gi.component.sleeping){this.really_wake(gi,false)}}}}}if((gL.immState&1)!=0){if(gL.b1.type==2&&gL.b1.component.sleeping){var gh=gL.b1;if(!gh.world){gh.component.waket=this.stamp+(this.midstep?0:1);if(gh.type==3){gh.kinematicDelaySleep=true}if(gh.component.sleeping){this.really_wake(gh,false)}}}if(gL.b2.type==2&&gL.b2.component.sleeping){var gg=gL.b2;if(!gg.world){gg.component.waket=this.stamp+(this.midstep?0:1);if(gg.type==3){gg.kinematicDelaySleep=true}if(gg.component.sleeping){this.really_wake(gg,false)}}}}if(gL.sleeping){gL.sleeping=false;var gd=this.f_arbiters;var hW;if(bb.zpp_pool==null){hW=new bb()}else{hW=bb.zpp_pool;bb.zpp_pool=hW.next;hW.next=null}hW.elt=gL;var it=hW;it.next=gd.head;gd.head=it;gd.modified=true;gd.length++}jM=gL}else{if(ei){var gf=gL;gf.next=dK.zpp_pool;dK.zpp_pool=gf;jM=null}else{jM=gL}}}else{jM=gL}}else{if(jJ==1){var hc=jk?this.c_arbiters_true:this.c_arbiters_false;var e6;if(gX==null){var hU=null;var eh=(j7.arbiters.length<j6.arbiters.length?j7:j6).arbiters.head;while(eh!=null){var gK=eh.elt;if(gK.id==eV.id&&gK.di==eT.id){hU=gK;break}eh=eh.next}e6=hU}else{e6=gX}var iY=e6==null;var gJ;var gG=false;if(iY){if(d9.zpp_pool==null){gJ=new d9()}else{gJ=d9.zpp_pool;d9.zpp_pool=gJ.next;gJ.next=null}gJ.stat=jk}else{if(e6.colarb==null){e6.cleared=true;var gc=e6.b1.arbiters;var iM=null;var gA=gc.head;while(gA!=null){if(gA.elt==e6){var e0;var hS;if(iM==null){e0=gc.head;hS=e0.next;gc.head=hS;if(gc.head==null){gc.pushmod=true}}else{e0=iM.next;hS=e0.next;iM.next=hS;if(hS==null){gc.pushmod=true}}var ge=e0;ge.elt=null;ge.next=dL.zpp_pool;dL.zpp_pool=ge;gc.modified=true;gc.length--;gc.pushmod=true;break}iM=gA;gA=gA.next}var ga=e6.b2.arbiters;var iJ=null;var gy=ga.head;while(gy!=null){if(gy.elt==e6){var eZ;var hQ;if(iJ==null){eZ=ga.head;hQ=eZ.next;ga.head=hQ;if(ga.head==null){ga.pushmod=true}}else{eZ=iJ.next;hQ=eZ.next;iJ.next=hQ;if(hQ==null){ga.pushmod=true}}var jo=eZ;jo.elt=null;jo.next=dL.zpp_pool;dL.zpp_pool=jo;ga.modified=true;ga.length--;ga.pushmod=true;break}iJ=gy;gy=gy.next}if(e6.pair!=null){e6.pair.arb=null;e6.pair=null}e6.active=false;this.f_arbiters.modified=true;if(d9.zpp_pool==null){gJ=new d9()}else{gJ=d9.zpp_pool;d9.zpp_pool=gJ.next;gJ.next=null}gJ.intchange=true;gJ.stat=jk;iY=true;gG=true}else{gJ=e6.colarb;e4=eV!=gJ.s1;if(gJ.stat!=jk){gJ.stat=jk;if(!gJ.sleeping){(jk?this.c_arbiters_false:this.c_arbiters_true).remove(gJ);hc.add(gJ)}}}}if(iY||gJ.stamp!=this.stamp||el){gJ.stamp=this.stamp;if(b7.contactCollide(eV,eT,gJ,e4)){if(iY){var ft=eV.id;var fV=eT.id;gJ.b1=fe.body;gJ.ws1=fe;gJ.b2=fc.body;gJ.ws2=fc;gJ.id=ft;gJ.di=fV;var f9=gJ.b1.arbiters;var hO;if(dL.zpp_pool==null){hO=new dL()}else{hO=dL.zpp_pool;dL.zpp_pool=hO.next;hO.next=null}hO.elt=gJ;var iq=hO;iq.next=f9.head;f9.head=iq;f9.modified=true;f9.length++;var f8=gJ.b2.arbiters;var hM;if(dL.zpp_pool==null){hM=new dL()}else{hM=dL.zpp_pool;dL.zpp_pool=hM.next;hM.next=null}hM.elt=gJ;var io=hM;io.next=f8.head;f8.head=io;f8.modified=true;f8.length++;gJ.active=true;gJ.present=0;gJ.cleared=false;gJ.sleeping=false;gJ.fresh=false;gJ.presentable=false;gJ.s1=fe;gJ.s2=fc;if(!gJ.userdef_restitution){if(gJ.s1.material.elasticity<=-Infinity||gJ.s2.material.elasticity<=-Infinity){gJ.restitution=0}else{if(gJ.s1.material.elasticity>=Infinity||gJ.s2.material.elasticity>=Infinity){gJ.restitution=1}else{gJ.restitution=(gJ.s1.material.elasticity+gJ.s2.material.elasticity)/2}}if(gJ.restitution<0){gJ.restitution=0}if(gJ.restitution>1){gJ.restitution=1}}if(!gJ.userdef_dyn_fric){gJ.dyn_fric=Math.sqrt(gJ.s1.material.dynamicFriction*gJ.s2.material.dynamicFriction)}if(!gJ.userdef_stat_fric){gJ.stat_fric=Math.sqrt(gJ.s1.material.staticFriction*gJ.s2.material.staticFriction)}if(!gJ.userdef_rfric){gJ.rfric=Math.sqrt(gJ.s1.material.rollingFriction*gJ.s2.material.rollingFriction)}var hK;if(bi.zpp_pool==null){hK=new bi()}else{hK=bi.zpp_pool;bi.zpp_pool=hK.next;hK.next=null}hK.elt=gJ;var ik=hK;ik.next=hc.head;hc.head=ik;hc.modified=true;hc.length++;gJ.fresh=!gG}else{gJ.fresh=gJ.up_stamp<this.stamp-1||gJ.endGenerated==this.stamp&&el}gJ.up_stamp=gJ.stamp;if(gJ.fresh||(gJ.immState&4)==0){gJ.immState=1;var eD=false;var eF=gJ.ws1.id>gJ.ws2.id?gJ.ws2:gJ.ws1;var es=gJ.ws1.id>gJ.ws2.id?gJ.ws1:gJ.ws2;var f7=this.mrca1;while(f7.head!=null){var hF=f7.head;f7.head=hF.next;hF.elt=null;hF.next=g.zpp_pool;g.zpp_pool=hF;if(f7.head==null){f7.pushmod=true}f7.modified=true;f7.length--}f7.pushmod=true;var f6=this.mrca2;while(f6.head!=null){var hD=f6.head;f6.head=hD.next;hD.elt=null;hD.next=g.zpp_pool;g.zpp_pool=hD;if(f6.head==null){f6.pushmod=true}f6.modified=true;f6.length--}f6.pushmod=true;if(eF.cbSet!=null){var f5=this.mrca1;var hB;if(g.zpp_pool==null){hB=new g()}else{hB=g.zpp_pool;g.zpp_pool=hB.next;hB.next=null}hB.elt=eF;var ii=hB;ii.next=f5.head;f5.head=ii;f5.modified=true;f5.length++}if(eF.body.cbSet!=null){var f3=this.mrca1;var jj=eF.body;var hz;if(g.zpp_pool==null){hz=new g()}else{hz=g.zpp_pool;g.zpp_pool=hz.next;hz.next=null}hz.elt=jj;var ig=hz;ig.next=f3.head;f3.head=ig;f3.modified=true;f3.length++}if(es.cbSet!=null){var f2=this.mrca2;var hy;if(g.zpp_pool==null){hy=new g()}else{hy=g.zpp_pool;g.zpp_pool=hy.next;hy.next=null}hy.elt=es;var ic=hy;ic.next=f2.head;f2.head=ic;f2.modified=true;f2.length++}if(es.body.cbSet!=null){var fU=this.mrca2;var jh=es.body;var hx;if(g.zpp_pool==null){hx=new g()}else{hx=g.zpp_pool;g.zpp_pool=hx.next;hx.next=null}hx.elt=jh;var ia=hx;ia.next=fU.head;fU.head=ia;fU.modified=true;fU.length++}var jC=eF.body.compound;var jd=es.body.compound;while(jC!=jd){if((jC==null?0:jC.depth)<(jd==null?0:jd.depth)){if(jd.cbSet!=null){var fR=this.mrca2;var hw;if(g.zpp_pool==null){hw=new g()}else{hw=g.zpp_pool;g.zpp_pool=hw.next;hw.next=null}hw.elt=jd;var h8=hw;h8.next=fR.head;fR.head=h8;fR.modified=true;fR.length++}jd=jd.compound}else{if(jC.cbSet!=null){var fP=this.mrca1;var hv;if(g.zpp_pool==null){hv=new g()}else{hv=g.zpp_pool;g.zpp_pool=hv.next;hv.next=null}hv.elt=jC;var h6=hv;h6.next=fP.head;fP.head=h6;fP.modified=true;fP.length++}jC=jC.compound}}var eg=this.mrca1.head;while(eg!=null){var fT=eg.elt;var ef=this.mrca2.head;while(ef!=null){var fG=ef.elt;var jD=fT.cbSet;var je=fG.cbSet;var hu=null;var ee=(jD.cbpairs.length<je.cbpairs.length?jD.cbpairs:je.cbpairs).head;while(ee!=null){var f0=ee.elt;if(f0.a==jD&&f0.b==je||f0.a==je&&f0.b==jD){hu=f0;break}ee=ee.next}if(hu==null){var ht;if(ar.zpp_pool==null){ht=new ar()}else{ht=ar.zpp_pool;ar.zpp_pool=ht.next;ht.next=null}ht.zip_listeners=true;if(cC.setlt(jD,je)){ht.a=jD;ht.b=je}else{ht.a=je;ht.b=jD}hu=ht;jD.cbpairs.add(hu);if(je!=jD){je.cbpairs.add(hu)}}if(hu.zip_listeners){hu.zip_listeners=false;hu.__validate()}if(hu.listeners.head==null){ef=ef.next;continue}var hf=null;var e3=null;var fO=this.prelisteners;while(fO.head!=null){var hq=fO.head;fO.head=hq.next;hq.elt=null;hq.next=aF.zpp_pool;aF.zpp_pool=hq;if(fO.head==null){fO.pushmod=true}fO.modified=true;fO.length--}fO.pushmod=true;var hJ=null;var hp=null;var ed=(jD.cbpairs.length<je.cbpairs.length?jD.cbpairs:je.cbpairs).head;while(ed!=null){var fZ=ed.elt;if(fZ.a==jD&&fZ.b==je||fZ.a==je&&fZ.b==jD){hp=fZ;break}ed=ed.next}if(hp==null){var ho;if(ar.zpp_pool==null){ho=new ar()}else{ho=ar.zpp_pool;ar.zpp_pool=ho.next;ho.next=null}ho.zip_listeners=true;if(cC.setlt(jD,je)){ho.a=jD;ho.b=je}else{ho.a=je;ho.b=jD}hp=ho;jD.cbpairs.add(hp);if(je!=jD){je.cbpairs.add(hp)}}if(hp.zip_listeners){hp.zip_listeners=false;hp.__validate()}var ec=hp.listeners.head;while(ec!=null){var ex=ec.elt;if(ex.event==5){if((ex.itype&1)!=0){var fN=gb.prelisteners;var hn;if(aF.zpp_pool==null){hn=new aF()}else{hn=aF.zpp_pool;aF.zpp_pool=hn.next;hn.next=null}hn.elt=ex;var h2=hn;if(hJ==null){h2.next=fN.head;fN.head=h2}else{h2.next=hJ.next;hJ.next=h2}fN.pushmod=fN.modified=true;fN.length++;hJ=h2;if(!eD){eD=!ex.pure}else{eD=true}}}ec=ec.next}if(this.prelisteners.head==null){ef=ef.next;continue}hf=dM.get(fT,fG);if(hf==null){e3=cg.get(fT,fG);this.add_callbackset(e3)}if(hf==null||(hf.COLLISIONstamp!=this.stamp||el)&&(hf.COLLISIONstate&4)==0){if(e3!=null){hf=e3}if(hf!=null){var eb=this.prelisteners.head;while(eb!=null){if(eb.elt.itype==7){hf.COLLISIONstamp=this.stamp;hf.SENSORstamp=this.stamp;hf.FLUIDstamp=this.stamp}else{hf.COLLISIONstamp=this.stamp}eb=eb.next}}var jy=gJ.active;gJ.active=true;var fW=true;var iG=null;var hY=null;var eB=gJ.innards.next;gJ.hc2=false;var ea=gJ.contacts.next;while(ea!=null){var i6=ea;if(i6.stamp+P.arbiterExpirationDelay<gJ.stamp){var fM=gJ.contacts;var eY;var hm;if(iG==null){eY=fM.next;hm=eY.next;fM.next=hm;if(fM.next==null){fM.pushmod=true}}else{eY=iG.next;hm=eY.next;iG.next=hm;if(hm==null){fM.pushmod=true}}eY._inuse=false;fM.modified=true;fM.length--;fM.pushmod=true;ea=hm;var fL=gJ.innards;var eX;var hl;if(hY==null){eX=fL.next;hl=eX.next;fL.next=hl;if(fL.next==null){fL.pushmod=true}}else{eX=hY.next;hl=eX.next;hY.next=hl;if(hl==null){fL.pushmod=true}}eX._inuse=false;fL.modified=true;fL.length--;fL.pushmod=true;eB=hl;i6.arbiter=null;i6.next=c2.zpp_pool;c2.zpp_pool=i6;continue}var i4=i6.inner;var jx=i6.active;i6.active=i6.stamp==gJ.stamp;if(i6.active){if(fW){fW=false;gJ.c1=i4;gJ.oc1=i6}else{gJ.hc2=true;gJ.c2=i4;gJ.oc2=i6}}if(jx!=i6.active){gJ.contacts.modified=true}iG=ea;hY=eB;eB=eB.next;ea=ea.next}if(gJ.hc2){gJ.hpc2=true;if(gJ.oc1.posOnly){var e8=gJ.c1;gJ.c1=gJ.c2;gJ.c2=e8;var jz=gJ.oc1;gJ.oc1=gJ.oc2;gJ.oc2=jz;gJ.hc2=false}else{if(gJ.oc2.posOnly){gJ.hc2=false}}}else{gJ.hpc2=false}this.precb.zpp_inner.pre_arbiter=gJ;this.precb.zpp_inner.set=hf;var ka=this.prelisteners.head;while(ka!=null){var g8=ka.elt;this.precb.zpp_inner.listener=g8;var jK=this.precb.zpp_inner;var jg=hf.int1;var iT=hf.int2;var e7;var fK=g8.options1;var jS=jg.cbTypes;if(fK.nonemptyintersection(jS,fK.includes)&&!fK.nonemptyintersection(jS,fK.excludes)){var fJ=g8.options2;var jP=iT.cbTypes;if(fJ.nonemptyintersection(jP,fJ.includes)){e7=!fJ.nonemptyintersection(jP,fJ.excludes)}else{e7=false}}else{e7=false}if(e7){jK.int1=jg;jK.int2=iT}else{jK.int1=iT;jK.int2=jg}this.precb.zpp_inner.pre_swapped=fT!=this.precb.zpp_inner.int1;var hk=g8.handlerp(this.precb);if(hk!=null){var jW;if(br.PreFlag_ACCEPT==null){br.internal=true;br.PreFlag_ACCEPT=new bq();br.internal=false}if(hk==br.PreFlag_ACCEPT){jW=5}else{if(br.PreFlag_ACCEPT_ONCE==null){br.internal=true;br.PreFlag_ACCEPT_ONCE=new bq();br.internal=false}if(hk==br.PreFlag_ACCEPT_ONCE){jW=1}else{if(br.PreFlag_IGNORE==null){br.internal=true;br.PreFlag_IGNORE=new bq();br.internal=false}if(hk==br.PreFlag_IGNORE){jW=6}else{jW=2}}}gJ.immState=jW}ka=ka.next}gJ.active=jy;if(hf!=null){var j8=this.prelisteners.head;while(j8!=null){if(j8.elt.itype==7){hf.COLLISIONstate=gJ.immState;hf.SENSORstate=gJ.immState;hf.FLUIDstate=gJ.immState}else{hf.COLLISIONstate=gJ.immState}j8=j8.next}}}else{if(hf==null){if((gJ.immState&4)==0){gJ.immState=1}}else{gJ.immState=hf.COLLISIONstate}}ef=ef.next}eg=eg.next}if(eD&&(gJ.immState&4)==0){if(gJ.b1.type==2){var jf=gJ.b1;if(!jf.world){jf.component.waket=this.stamp+(this.midstep?0:1);if(jf.type==3){jf.kinematicDelaySleep=true}if(jf.component.sleeping){this.really_wake(jf,false)}}}if(gJ.b1.type==2){var jc=gJ.b2;if(!jc.world){jc.component.waket=this.stamp+(this.midstep?0:1);if(jc.type==3){jc.kinematicDelaySleep=true}if(jc.component.sleeping){this.really_wake(jc,false)}}}}}if((gJ.immState&1)!=0){if(gJ.b1.type==2&&gJ.b1.component.sleeping){var i9=gJ.b1;if(!i9.world){i9.component.waket=this.stamp+(this.midstep?0:1);if(i9.type==3){i9.kinematicDelaySleep=true}if(i9.component.sleeping){this.really_wake(i9,false)}}}if(gJ.b2.type==2&&gJ.b2.component.sleeping){var i8=gJ.b2;if(!i8.world){i8.component.waket=this.stamp+(this.midstep?0:1);if(i8.type==3){i8.kinematicDelaySleep=true}if(i8.component.sleeping){this.really_wake(i8,false)}}}}if(gJ.sleeping){gJ.sleeping=false;var hi;if(bi.zpp_pool==null){hi=new bi()}else{hi=bi.zpp_pool;bi.zpp_pool=hi.next;hi.next=null}hi.elt=gJ;var h0=hi;h0.next=hc.head;hc.head=h0;hc.modified=true;hc.length++}jM=gJ}else{if(iY){var i5=gJ;i5.userdef_dyn_fric=false;i5.userdef_stat_fric=false;i5.userdef_restitution=false;i5.userdef_rfric=false;i5.__ref_edge1=i5.__ref_edge2=null;i5.next=d9.zpp_pool;d9.zpp_pool=i5;jM=null}else{jM=gJ}}}else{jM=gJ}}else{var e5;if(gX==null){var hh=null;var j5=(j7.arbiters.length<j6.arbiters.length?j7:j6).arbiters.head;while(j5!=null){var gI=j5.elt;if(gI.id==eV.id&&gI.di==eT.id){hh=gI;break}j5=j5.next}e5=hh}else{e5=gX}var iX=e5==null;var gH;var gF=false;if(iX){if(A.zpp_pool==null){gH=new A()}else{gH=A.zpp_pool;A.zpp_pool=gH.next;gH.next=null}}else{if(e5.sensorarb==null){e5.cleared=true;var fI=e5.b1.arbiters;var iD=null;var gw=fI.head;while(gw!=null){if(gw.elt==e5){var eW;var hg;if(iD==null){eW=fI.head;hg=eW.next;fI.head=hg;if(fI.head==null){fI.pushmod=true}}else{eW=iD.next;hg=eW.next;iD.next=hg;if(hg==null){fI.pushmod=true}}var iV=eW;iV.elt=null;iV.next=dL.zpp_pool;dL.zpp_pool=iV;fI.modified=true;fI.length--;fI.pushmod=true;break}iD=gw;gw=gw.next}var fH=e5.b2.arbiters;var iA=null;var gu=fH.head;while(gu!=null){if(gu.elt==e5){var eU;var hd;if(iA==null){eU=fH.head;hd=eU.next;fH.head=hd;if(fH.head==null){fH.pushmod=true}}else{eU=iA.next;hd=eU.next;iA.next=hd;if(hd==null){fH.pushmod=true}}var iS=eU;iS.elt=null;iS.next=dL.zpp_pool;dL.zpp_pool=iS;fH.modified=true;fH.length--;fH.pushmod=true;break}iA=gu;gu=gu.next}if(e5.pair!=null){e5.pair.arb=null;e5.pair=null}e5.active=false;this.f_arbiters.modified=true;if(A.zpp_pool==null){gH=new A()}else{gH=A.zpp_pool;A.zpp_pool=gH.next;gH.next=null}gH.intchange=true;iX=true;gF=true}else{gH=e5.sensorarb}}if(iX||gH.stamp!=this.stamp||el){gH.stamp=this.stamp;if(b7.testCollide(eV,eT)){if(iX){var fs=eV.id;var fS=eT.id;gH.b1=fe.body;gH.ws1=fe;gH.b2=fc.body;gH.ws2=fc;gH.id=fs;gH.di=fS;var fF=gH.b1.arbiters;var hb;if(dL.zpp_pool==null){hb=new dL()}else{hb=dL.zpp_pool;dL.zpp_pool=hb.next;hb.next=null}hb.elt=gH;var hX=hb;hX.next=fF.head;fF.head=hX;fF.modified=true;fF.length++;var fD=gH.b2.arbiters;var ha;if(dL.zpp_pool==null){ha=new dL()}else{ha=dL.zpp_pool;dL.zpp_pool=ha.next;ha.next=null}ha.elt=gH;var hV=ha;hV.next=fD.head;fD.head=hV;fD.modified=true;fD.length++;gH.active=true;gH.present=0;gH.cleared=false;gH.sleeping=false;gH.fresh=false;gH.presentable=false;var fA=this.s_arbiters;var g9;if(L.zpp_pool==null){g9=new L()}else{g9=L.zpp_pool;L.zpp_pool=g9.next;g9.next=null}g9.elt=gH;var hT=g9;hT.next=fA.head;fA.head=hT;fA.modified=true;fA.length++;gH.fresh=!gF}else{gH.fresh=gH.up_stamp<this.stamp-1||gH.endGenerated==this.stamp&&el}gH.up_stamp=gH.stamp;if(gH.fresh||(gH.immState&4)==0){gH.immState=1;var eC=false;var eE=gH.ws1.id>gH.ws2.id?gH.ws2:gH.ws1;var ep=gH.ws1.id>gH.ws2.id?gH.ws1:gH.ws2;var fz=this.mrca1;while(fz.head!=null){var g7=fz.head;fz.head=g7.next;g7.elt=null;g7.next=g.zpp_pool;g.zpp_pool=g7;if(fz.head==null){fz.pushmod=true}fz.modified=true;fz.length--}fz.pushmod=true;var fy=this.mrca2;while(fy.head!=null){var g6=fy.head;fy.head=g6.next;g6.elt=null;g6.next=g.zpp_pool;g.zpp_pool=g6;if(fy.head==null){fy.pushmod=true}fy.modified=true;fy.length--}fy.pushmod=true;if(eE.cbSet!=null){var fx=this.mrca1;var g4;if(g.zpp_pool==null){g4=new g()}else{g4=g.zpp_pool;g.zpp_pool=g4.next;g4.next=null}g4.elt=eE;var hR=g4;hR.next=fx.head;fx.head=hR;fx.modified=true;fx.length++}if(eE.body.cbSet!=null){var fw=this.mrca1;var iR=eE.body;var g3;if(g.zpp_pool==null){g3=new g()}else{g3=g.zpp_pool;g.zpp_pool=g3.next;g3.next=null}g3.elt=iR;var hP=g3;hP.next=fw.head;fw.head=hP;fw.modified=true;fw.length++}if(ep.cbSet!=null){var fv=this.mrca2;var g0;if(g.zpp_pool==null){g0=new g()}else{g0=g.zpp_pool;g.zpp_pool=g0.next;g0.next=null}g0.elt=ep;var hN=g0;hN.next=fv.head;fv.head=hN;fv.modified=true;fv.length++}if(ep.body.cbSet!=null){var fu=this.mrca2;var iO=ep.body;var gZ;if(g.zpp_pool==null){gZ=new g()}else{gZ=g.zpp_pool;g.zpp_pool=gZ.next;gZ.next=null}gZ.elt=iO;var hL=gZ;hL.next=fu.head;fu.head=hL;fu.modified=true;fu.length++}var jB=eE.body.compound;var jb=ep.body.compound;while(jB!=jb){if((jB==null?0:jB.depth)<(jb==null?0:jb.depth)){if(jb.cbSet!=null){var fo=this.mrca2;var gW;if(g.zpp_pool==null){gW=new g()}else{gW=g.zpp_pool;g.zpp_pool=gW.next;gW.next=null}gW.elt=jb;var hI=gW;hI.next=fo.head;fo.head=hI;fo.modified=true;fo.length++}jb=jb.compound}else{if(jB.cbSet!=null){var fn=this.mrca1;var gV;if(g.zpp_pool==null){gV=new g()}else{gV=g.zpp_pool;g.zpp_pool=gV.next;gV.next=null}gV.elt=jB;var hE=gV;hE.next=fn.head;fn.head=hE;fn.modified=true;fn.length++}jB=jB.compound}}var j4=this.mrca1.head;while(j4!=null){var fQ=j4.elt;var j3=this.mrca2.head;while(j3!=null){var fE=j3.elt;var jA=fQ.cbSet;var ja=fE.cbSet;var gU=null;var j2=(jA.cbpairs.length<ja.cbpairs.length?jA.cbpairs:ja.cbpairs).head;while(j2!=null){var fY=j2.elt;if(fY.a==jA&&fY.b==ja||fY.a==ja&&fY.b==jA){gU=fY;break}j2=j2.next}if(gU==null){var gS;if(ar.zpp_pool==null){gS=new ar()}else{gS=ar.zpp_pool;ar.zpp_pool=gS.next;gS.next=null}gS.zip_listeners=true;if(cC.setlt(jA,ja)){gS.a=jA;gS.b=ja}else{gS.a=ja;gS.b=jA}gU=gS;jA.cbpairs.add(gU);if(ja!=jA){ja.cbpairs.add(gU)}}if(gU.zip_listeners){gU.zip_listeners=false;gU.__validate()}if(gU.listeners.head==null){j3=j3.next;continue}var he=null;var e1=null;var fm=this.prelisteners;while(fm.head!=null){var gR=fm.head;fm.head=gR.next;gR.elt=null;gR.next=aF.zpp_pool;aF.zpp_pool=gR;if(fm.head==null){fm.pushmod=true}fm.modified=true;fm.length--}fm.pushmod=true;var hH=null;var gQ=null;var j1=(jA.cbpairs.length<ja.cbpairs.length?jA.cbpairs:ja.cbpairs).head;while(j1!=null){var fX=j1.elt;if(fX.a==jA&&fX.b==ja||fX.a==ja&&fX.b==jA){gQ=fX;break}j1=j1.next}if(gQ==null){var gP;if(ar.zpp_pool==null){gP=new ar()}else{gP=ar.zpp_pool;ar.zpp_pool=gP.next;gP.next=null}gP.zip_listeners=true;if(cC.setlt(jA,ja)){gP.a=jA;gP.b=ja}else{gP.a=ja;gP.b=jA}gQ=gP;jA.cbpairs.add(gQ);if(ja!=jA){ja.cbpairs.add(gQ)}}if(gQ.zip_listeners){gQ.zip_listeners=false;gQ.__validate()}var j0=gQ.listeners.head;while(j0!=null){var ev=j0.elt;if(ev.event==5){if((ev.itype&2)!=0){var fl=gb.prelisteners;var gO;if(aF.zpp_pool==null){gO=new aF()}else{gO=aF.zpp_pool;aF.zpp_pool=gO.next;gO.next=null}gO.elt=ev;var hC=gO;if(hH==null){hC.next=fl.head;fl.head=hC}else{hC.next=hH.next;hH.next=hC}fl.pushmod=fl.modified=true;fl.length++;hH=hC;if(!eC){eC=!ev.pure}else{eC=true}}}j0=j0.next}if(this.prelisteners.head==null){j3=j3.next;continue}he=dM.get(fQ,fE);if(he==null){e1=cg.get(fQ,fE);this.add_callbackset(e1)}if(he==null||(he.SENSORstamp!=this.stamp||el)&&(he.SENSORstate&4)==0){if(e1!=null){he=e1}if(he!=null){var jZ=this.prelisteners.head;while(jZ!=null){if(jZ.elt.itype==7){he.COLLISIONstamp=this.stamp;he.SENSORstamp=this.stamp;he.FLUIDstamp=this.stamp}else{he.SENSORstamp=this.stamp}jZ=jZ.next}}var jw=gH.active;gH.active=true;this.precb.zpp_inner.pre_arbiter=gH;this.precb.zpp_inner.set=he;var jY=this.prelisteners.head;while(jY!=null){var g5=jY.elt;this.precb.zpp_inner.listener=g5;var jG=this.precb.zpp_inner;var eS=he.int1;var iL=he.int2;var jV;var fk=g5.options1;var jI=eS.cbTypes;if(fk.nonemptyintersection(jI,fk.includes)&&!fk.nonemptyintersection(jI,fk.excludes)){var fj=g5.options2;var jF=iL.cbTypes;if(fj.nonemptyintersection(jF,fj.includes)){jV=!fj.nonemptyintersection(jF,fj.excludes)}else{jV=false}}else{jV=false}if(jV){jG.int1=eS;jG.int2=iL}else{jG.int1=iL;jG.int2=eS}this.precb.zpp_inner.pre_swapped=fQ!=this.precb.zpp_inner.int1;var gN=g5.handlerp(this.precb);if(gN!=null){var jU;if(br.PreFlag_ACCEPT==null){br.internal=true;br.PreFlag_ACCEPT=new bq();br.internal=false}if(gN==br.PreFlag_ACCEPT){jU=5}else{if(br.PreFlag_ACCEPT_ONCE==null){br.internal=true;br.PreFlag_ACCEPT_ONCE=new bq();br.internal=false}if(gN==br.PreFlag_ACCEPT_ONCE){jU=1}else{if(br.PreFlag_IGNORE==null){br.internal=true;br.PreFlag_IGNORE=new bq();br.internal=false}if(gN==br.PreFlag_IGNORE){jU=6}else{jU=2}}}gH.immState=jU}jY=jY.next}gH.active=jw;if(he!=null){var jX=this.prelisteners.head;while(jX!=null){if(jX.elt.itype==7){he.COLLISIONstate=gH.immState;he.SENSORstate=gH.immState;he.FLUIDstate=gH.immState}else{he.SENSORstate=gH.immState}jX=jX.next}}}else{if(he==null){if((gH.immState&4)==0){gH.immState=1}}else{gH.immState=he.SENSORstate}}j3=j3.next}j4=j4.next}if(eC&&(gH.immState&4)==0){if(gH.b1.type!=1){var iI=gH.b1;if(!iI.world){iI.component.waket=this.stamp+(this.midstep?0:1);if(iI.type==3){iI.kinematicDelaySleep=true}if(iI.component.sleeping){this.really_wake(iI,false)}}}if(gH.b2.type!=1){var iF=gH.b2;if(!iF.world){iF.component.waket=this.stamp+(this.midstep?0:1);if(iF.type==3){iF.kinematicDelaySleep=true}if(iF.component.sleeping){this.really_wake(iF,false)}}}}}if(gH.sleeping){gH.sleeping=false;var fi=this.s_arbiters;var gM;if(L.zpp_pool==null){gM=new L()}else{gM=L.zpp_pool;L.zpp_pool=gM.next;gM.next=null}gM.elt=gH;var hA=gM;hA.next=fi.head;fi.head=hA;fi.modified=true;fi.length++}jM=gH}else{if(iX){var iC=gH;iC.next=A.zpp_pool;A.zpp_pool=iC;jM=null}else{jM=gH}}}else{jM=gH}}}}return jM};a3.prototype.mrca1=null;a3.prototype.mrca2=null;a3.prototype.MRCA_chains=function(eb,ea){var eo=this.mrca1;while(eo.head!=null){var ez=eo.head;eo.head=ez.next;ez.elt=null;ez.next=g.zpp_pool;g.zpp_pool=ez;if(eo.head==null){eo.pushmod=true}eo.modified=true;eo.length--}eo.pushmod=true;var eu=this.mrca2;while(eu.head!=null){var ei=eu.head;eu.head=ei.next;ei.elt=null;ei.next=g.zpp_pool;g.zpp_pool=ei;if(eu.head==null){eu.pushmod=true}eu.modified=true;eu.length--}eu.pushmod=true;if(eb.cbSet!=null){var et=this.mrca1;var eh;if(g.zpp_pool==null){eh=new g()}else{eh=g.zpp_pool;g.zpp_pool=eh.next;eh.next=null}eh.elt=eb;var ev=eh;ev.next=et.head;et.head=ev;et.modified=true;et.length++}if(eb.body.cbSet!=null){var es=this.mrca1;var ek=eb.body;var eg;if(g.zpp_pool==null){eg=new g()}else{eg=g.zpp_pool;g.zpp_pool=eg.next;eg.next=null}eg.elt=ek;var eB=eg;eB.next=es.head;es.head=eB;es.modified=true;es.length++}if(ea.cbSet!=null){var er=this.mrca2;var ef;if(g.zpp_pool==null){ef=new g()}else{ef=g.zpp_pool;g.zpp_pool=ef.next;ef.next=null}ef.elt=ea;var eA=ef;eA.next=er.head;er.head=eA;er.modified=true;er.length++}if(ea.body.cbSet!=null){var eq=this.mrca2;var ep=ea.body;var ee;if(g.zpp_pool==null){ee=new g()}else{ee=g.zpp_pool;g.zpp_pool=ee.next;ee.next=null}ee.elt=ep;var ey=ee;ey.next=eq.head;eq.head=ey;eq.modified=true;eq.length++}var el=eb.body.compound;var ej=ea.body.compound;while(el!=ej){if((el==null?0:el.depth)<(ej==null?0:ej.depth)){if(ej.cbSet!=null){var en=this.mrca2;var ed;if(g.zpp_pool==null){ed=new g()}else{ed=g.zpp_pool;g.zpp_pool=ed.next;ed.next=null}ed.elt=ej;var ex=ed;ex.next=en.head;en.head=ex;en.modified=true;en.length++}ej=ej.compound}else{if(el.cbSet!=null){var em=this.mrca1;var ec;if(g.zpp_pool==null){ec=new g()}else{ec=g.zpp_pool;g.zpp_pool=ec.next;ec.next=null}ec.elt=el;var ew=ec;ew.next=em.head;em.head=ew;em.modified=true;em.length++}el=el.compound}}};a3.prototype.inlined_MRCA_chains=function(eb,ea){var eo=this.mrca1;while(eo.head!=null){var ez=eo.head;eo.head=ez.next;ez.elt=null;ez.next=g.zpp_pool;g.zpp_pool=ez;if(eo.head==null){eo.pushmod=true}eo.modified=true;eo.length--}eo.pushmod=true;var eu=this.mrca2;while(eu.head!=null){var ei=eu.head;eu.head=ei.next;ei.elt=null;ei.next=g.zpp_pool;g.zpp_pool=ei;if(eu.head==null){eu.pushmod=true}eu.modified=true;eu.length--}eu.pushmod=true;if(eb.cbSet!=null){var et=this.mrca1;var eh;if(g.zpp_pool==null){eh=new g()}else{eh=g.zpp_pool;g.zpp_pool=eh.next;eh.next=null}eh.elt=eb;var ev=eh;ev.next=et.head;et.head=ev;et.modified=true;et.length++}if(eb.body.cbSet!=null){var es=this.mrca1;var ek=eb.body;var eg;if(g.zpp_pool==null){eg=new g()}else{eg=g.zpp_pool;g.zpp_pool=eg.next;eg.next=null}eg.elt=ek;var eB=eg;eB.next=es.head;es.head=eB;es.modified=true;es.length++}if(ea.cbSet!=null){var er=this.mrca2;var ef;if(g.zpp_pool==null){ef=new g()}else{ef=g.zpp_pool;g.zpp_pool=ef.next;ef.next=null}ef.elt=ea;var eA=ef;eA.next=er.head;er.head=eA;er.modified=true;er.length++}if(ea.body.cbSet!=null){var eq=this.mrca2;var ep=ea.body;var ee;if(g.zpp_pool==null){ee=new g()}else{ee=g.zpp_pool;g.zpp_pool=ee.next;ee.next=null}ee.elt=ep;var ey=ee;ey.next=eq.head;eq.head=ey;eq.modified=true;eq.length++}var el=eb.body.compound;var ej=ea.body.compound;while(el!=ej){if((el==null?0:el.depth)<(ej==null?0:ej.depth)){if(ej.cbSet!=null){var en=this.mrca2;var ed;if(g.zpp_pool==null){ed=new g()}else{ed=g.zpp_pool;g.zpp_pool=ed.next;ed.next=null}ed.elt=ej;var ex=ed;ex.next=en.head;en.head=ex;en.modified=true;en.length++}ej=ej.compound}else{if(el.cbSet!=null){var em=this.mrca1;var ec;if(g.zpp_pool==null){ec=new g()}else{ec=g.zpp_pool;g.zpp_pool=ec.next;ec.next=null}ec.elt=el;var ew=ec;ew.next=em.head;em.head=ew;em.modified=true;em.length++}el=el.compound}}};a3.prototype.__class__=a3;var f=zpp_nape.space.ZPP_SweepData=function(){this.aabb=null;this.shape=null;this.prev=null;this.next=null};f.__name__=["zpp_nape","space","ZPP_SweepData"];f.prototype.next=null;f.prototype.prev=null;f.prototype.shape=null;f.prototype.aabb=null;f.prototype.free=function(){this.prev=null;this.shape=null;this.aabb=null};f.prototype.alloc=function(){};f.prototype.gt=function(ea){return this.aabb.minx>ea.aabb.minx};f.prototype.__class__=f;var c6=zpp_nape.space.ZPP_SweepPhase=function(ea){this.failed=null;this.list=null;dB.call(this);this.space=ea;this.is_sweep=true;this.sweep=this};c6.__name__=["zpp_nape","space","ZPP_SweepPhase"];c6.__super__=dB;c6.prototype=Object.create(dB.prototype);c6.prototype.list=null;c6.prototype.__insert=function(ea){var eb;if(f.zpp_pool==null){eb=new f()}else{eb=f.zpp_pool;f.zpp_pool=eb.next;eb.next=null}ea.sweep=eb;eb.shape=ea;eb.aabb=ea.aabb;eb.next=this.list;if(this.list!=null){this.list.prev=eb}this.list=eb};c6.prototype.__remove=function(ea){var eb=ea.sweep;if(eb.prev==null){this.list=eb.next}else{eb.prev.next=eb.next}if(eb.next!=null){eb.next.prev=eb.prev}ea.sweep=null;eb.prev=null;eb.shape=null;eb.aabb=null;eb.next=f.zpp_pool;f.zpp_pool=eb};c6.prototype.__sync=function(ea){if(!this.space.continuous){if(ea.zip_aabb){if(ea.body!=null){ea.zip_aabb=false;if(ea.type==0){var et=ea.circle;if(et.zip_worldCOM){if(et.body!=null){et.zip_worldCOM=false;if(et.zip_localCOM){et.zip_localCOM=false;if(et.type==1){var ey=et.polygon;if(ey.lverts.next.next==null){ey.localCOMx=ey.lverts.next.x;ey.localCOMy=ey.lverts.next.y}else{if(ey.lverts.next.next.next==null){ey.localCOMx=ey.lverts.next.x;ey.localCOMy=ey.lverts.next.y;ey.localCOMx+=ey.lverts.next.next.x;ey.localCOMy+=ey.lverts.next.next.y;ey.localCOMx*=0.5;ey.localCOMy*=0.5}else{ey.localCOMx=0;ey.localCOMy=0;var ez=0;var es=ey.lverts.next;var ek=es;es=es.next;var ej=es;es=es.next;while(es!=null){var eh=es;ez+=ej.x*(eh.y-ek.y);var en=eh.y*ej.x-eh.x*ej.y;ey.localCOMx+=(ej.x+eh.x)*en;ey.localCOMy+=(ej.y+eh.y)*en;ek=ej;ej=eh;es=es.next}es=ey.lverts.next;var ei=es;ez+=ej.x*(ei.y-ek.y);var ef=ei.y*ej.x-ei.x*ej.y;ey.localCOMx+=(ej.x+ei.x)*ef;ey.localCOMy+=(ej.y+ei.y)*ef;ek=ej;es=es.next;var eg=es;ez+=ei.x*(eg.y-ek.y);var ee=eg.y*ei.x-eg.x*ei.y;ey.localCOMx+=(ei.x+eg.x)*ee;ey.localCOMy+=(ei.y+eg.y)*ee;ez=1/(3*ez);var em=ez;ey.localCOMx*=em;ey.localCOMy*=em}}}if(et.wrap_localCOM!=null){et.wrap_localCOM.zpp_inner.x=et.localCOMx;et.wrap_localCOM.zpp_inner.y=et.localCOMy}}var ex=et.body;if(ex.zip_axis){ex.zip_axis=false;ex.axisx=Math.sin(ex.rot);ex.axisy=Math.cos(ex.rot)}et.worldCOMx=et.body.posx+(et.body.axisy*et.localCOMx-et.body.axisx*et.localCOMy);et.worldCOMy=et.body.posy+(et.localCOMx*et.body.axisx+et.localCOMy*et.body.axisy)}}var ed=et.radius;var ec=et.radius;et.aabb.minx=et.worldCOMx-ed;et.aabb.miny=et.worldCOMy-ec;et.aabb.maxx=et.worldCOMx+ed;et.aabb.maxy=et.worldCOMy+ec}else{var ev=ea.polygon;if(ev.zip_gverts){if(ev.body!=null){ev.zip_gverts=false;ev.validate_lverts();var eu=ev.body;if(eu.zip_axis){eu.zip_axis=false;eu.axisx=Math.sin(eu.rot);eu.axisy=Math.cos(eu.rot)}var el=ev.lverts.next;var eq=ev.gverts.next;while(eq!=null){var ew=eq;var er=el;el=el.next;ew.x=ev.body.posx+(ev.body.axisy*er.x-ev.body.axisx*er.y);ew.y=ev.body.posy+(er.x*ev.body.axisx+er.y*ev.body.axisy);eq=eq.next}}}var eb=ev.gverts.next;ev.aabb.minx=eb.x;ev.aabb.miny=eb.y;ev.aabb.maxx=eb.x;ev.aabb.maxy=eb.y;var ep=ev.gverts.next.next;while(ep!=null){var eo=ep;if(eo.x<ev.aabb.minx){ev.aabb.minx=eo.x}if(eo.x>ev.aabb.maxx){ev.aabb.maxx=eo.x}if(eo.y<ev.aabb.miny){ev.aabb.miny=eo.y}if(eo.y>ev.aabb.maxy){ev.aabb.maxy=eo.y}ep=ep.next}}}}}};c6.prototype.sync_broadphase=function(){this.space.validation();if(this.list!=null){var eb=this.list.next;while(eb!=null){var ed=eb.next;var ea=eb.prev;if(eb.aabb.minx>ea.aabb.minx){eb=ed;continue}while(ea.prev!=null&&ea.prev.aabb.minx>eb.aabb.minx){ea=ea.prev}var ec=eb.prev;ec.next=eb.next;if(eb.next!=null){eb.next.prev=ec}if(ea.prev==null){eb.prev=null;this.list=eb;eb.next=ea;ea.prev=eb}else{eb.prev=ea.prev;ea.prev=eb;eb.prev.next=eb;eb.next=ea}eb=ed}}};c6.prototype.sync_broadphase_fast=function(){var eb=this.list.next;while(eb!=null){var ed=eb.next;var ea=eb.prev;if(eb.aabb.minx>ea.aabb.minx){eb=ed;continue}while(ea.prev!=null&&ea.prev.aabb.minx>eb.aabb.minx){ea=ea.prev}var ec=eb.prev;ec.next=eb.next;if(eb.next!=null){eb.next.prev=ec}if(ea.prev==null){eb.prev=null;this.list=eb;eb.next=ea;ea.prev=eb}else{eb.prev=ea.prev;ea.prev=eb;eb.prev.next=eb;eb.next=ea}eb=ed}};c6.prototype.broadphase=function(eb,ef){if(this.list!=null){var em=this.list.next;while(em!=null){var ee=em.next;var ej=em.prev;if(em.aabb.minx>ej.aabb.minx){em=ee;continue}while(ej.prev!=null&&ej.prev.aabb.minx>em.aabb.minx){ej=ej.prev}var eg=em.prev;eg.next=em.next;if(em.next!=null){em.next.prev=eg}if(ej.prev==null){em.prev=null;this.list=em;em.next=ej;ej.prev=em}else{em.prev=ej.prev;ej.prev=em;em.prev.next=em;em.next=ej}em=ee}var ed=this.list;while(ed!=null){var ec=ed.next;var eo=ed.shape;var el=eo.body;var ea=ed.aabb.maxx;while(ec!=null){if(ec.aabb.minx>ea){break}var en=ec.shape;var ei=en.body;if(ei==el){ec=ec.next;continue}if(el.type==1&&ei.type==1){ec=ec.next;continue}if(el.component.sleeping&&ei.component.sleeping){ec=ec.next;continue}var eh=eo.aabb;var ek=en.aabb;if(!(ek.miny>eh.maxy||eh.miny>ek.maxy)){if(ef){eb.narrowPhase(eo,en,el.type!=2||ei.type!=2,null,false)}else{eb.continuousEvent(eo,en,el.type!=2||ei.type!=2,null,false)}}ec=ec.next}ed=ed.next}}};c6.prototype.clear=function(){while(this.list!=null){this.list.shape.removedFromSpace();this.__remove(this.list.shape)}};c6.prototype.shapesUnderPoint=function(ej,eg,ea,eb){this.sync_broadphase();var ef;if(bB.zpp_pool==null){ef=new bB()}else{ef=bB.zpp_pool;bB.zpp_pool=ef.next;ef.next=null}ef.weak=false;ef._immutable=false;ef.x=ej;ef.y=eg;var ek=ef;var eh=eb==null?new cZ():eb;var ei=this.list;while(ei!=null&&ei.aabb.minx>ej){ei=ei.next}while(ei!=null&&ei.aabb.minx<=ej){if(ei.aabb.maxx>=ej&&ei.aabb.miny<=eg&&ei.aabb.maxy>=eg){var ee=ei.shape;var ec;if(ea!=null){var ed=ee.filter;if((ed.collisionMask&ea.collisionGroup)!=0){ec=(ea.collisionMask&ed.collisionGroup)!=0}else{ec=false}}else{ec=true}if(ec){if(ee.type==0){if(b7.circleContains(ee.circle,ek)){eh.push(ee.outer)}}else{if(b7.polyContains(ee.polygon,ek)){eh.push(ee.outer)}}}}ei=ei.next}if(ek.outer!=null){ek.outer.zpp_inner=null;ek.outer=null}ek._isimmutable=null;ek._validate=null;ek._invalidate=null;ek.next=bB.zpp_pool;bB.zpp_pool=ek;return eh};c6.prototype.bodiesUnderPoint=function(ek,eh,ea,eb){this.sync_broadphase();var eg;if(bB.zpp_pool==null){eg=new bB()}else{eg=bB.zpp_pool;bB.zpp_pool=eg.next;eg.next=null}eg.weak=false;eg._immutable=false;eg.x=ek;eg.y=eh;var el=eg;var ei=eb==null?new a5():eb;var ej=this.list;while(ej!=null&&ej.aabb.minx>ek){ej=ej.next}while(ej!=null&&ej.aabb.minx<=ek){if(ej.aabb.maxx>=ek&&ej.aabb.miny<=eh&&ej.aabb.maxy>=eh){var ef=ej.shape;var ed=ef.body.outer;if(!ei.has(ed)){var ec;if(ea!=null){var ee=ef.filter;if((ee.collisionMask&ea.collisionGroup)!=0){ec=(ea.collisionMask&ee.collisionGroup)!=0}else{ec=false}}else{ec=true}if(ec){if(ef.type==0){if(b7.circleContains(ef.circle,el)){ei.push(ed)}}else{if(b7.polyContains(ef.polygon,el)){ei.push(ed)}}}}}ej=ej.next}if(el.outer!=null){el.outer.zpp_inner=null;el.outer=null}el._isimmutable=null;el._validate=null;el._invalidate=null;el.next=bB.zpp_pool;bB.zpp_pool=el;return ei};c6.prototype.shapesInAABB=function(eg,en,ea,ec,ed){this.sync_broadphase();this.updateAABBShape(eg);var ep=this.aabbShape.zpp_inner.aabb;var ek=ed==null?new cZ():ed;var eo=this.list;while(eo!=null&&eo.aabb.maxx<ep.minx){eo=eo.next}while(eo!=null&&eo.aabb.minx<=ep.maxx){var ej=eo.shape;var ef;if(ec!=null){var eh=ej.filter;if((eh.collisionMask&ec.collisionGroup)!=0){ef=(ec.collisionMask&eh.collisionGroup)!=0}else{ef=false}}else{ef=true}if(ef){if(en){if(ea){if(b7.containTest(this.aabbShape.zpp_inner,ej)){ek.push(ej.outer)}}else{var em=eo.aabb;if(em.minx>=ep.minx&&em.miny>=ep.miny&&em.maxx<=ep.maxx&&em.maxy<=ep.maxy){ek.push(ej.outer)}else{var el=eo.aabb;if(ep.miny<=el.maxy&&el.miny<=ep.maxy&&ep.minx<=el.maxx&&el.minx<=ep.maxx){if(b7.testCollide_safe(ej,this.aabbShape.zpp_inner)){ek.push(ej.outer)}}}}}else{var ee;if(ea){var eb=eo.aabb;if(eb.minx>=ep.minx&&eb.miny>=ep.miny&&eb.maxx<=ep.maxx){ee=eb.maxy<=ep.maxy}else{ee=false}}else{var ei=eo.aabb;if(ep.miny<=ei.maxy&&ei.miny<=ep.maxy&&ep.minx<=ei.maxx){ee=ei.minx<=ep.maxx}else{ee=false}}if(ee){ek.push(ej.outer)}}}eo=eo.next}return ek};c6.prototype.failed=null;c6.prototype.bodiesInAABB=function(ec,er,em,eg,ed){this.sync_broadphase();this.updateAABBShape(ec);var eo=this.aabbShape.zpp_inner.aabb;var eq=ed==null?new a5():ed;if(this.failed==null){this.failed=new a5()}var ep=this.list;while(ep!=null&&ep.aabb.maxx<eo.minx){ep=ep.next}while(ep!=null&&ep.aabb.minx<=eo.maxx){var ea=ep.shape;var ef=ea.body.outer;var ei=ep.aabb;if(eo.miny<=ei.maxy&&ei.miny<=eo.maxy&&eo.minx<=ei.maxx&&ei.minx<=eo.maxx){var en;if(eg!=null){var ek=ea.filter;if((ek.collisionMask&eg.collisionGroup)!=0){en=(eg.collisionMask&ek.collisionGroup)!=0}else{en=false}}else{en=true}if(en){if(er){if(em){if(!this.failed.has(ef)){var eb=b7.containTest(this.aabbShape.zpp_inner,ea);if(!eq.has(ef)&&eb){eq.push(ef)}else{if(!eb){eq.remove(ef);this.failed.push(ef)}}}}else{if(!eq.has(ef)&&b7.testCollide_safe(ea,this.aabbShape.zpp_inner)){eq.push(ef)}}}else{if(em){if(!this.failed.has(ef)){var ee=ea.aabb;var el=ee.minx>=eo.minx&&ee.miny>=eo.miny&&ee.maxx<=eo.maxx&&ee.maxy<=eo.maxy;if(!eq.has(ef)&&el){eq.push(ef)}else{if(!el){eq.remove(ef);this.failed.push(ef)}}}}else{var eh;if(!eq.has(ef)){var ej=ea.aabb;if(ej.minx>=eo.minx&&ej.miny>=eo.miny&&ej.maxx<=eo.maxx){eh=ej.maxy<=eo.maxy}else{eh=false}}else{eh=false}if(eh){eq.push(ef)}}}}}ep=ep.next}this.failed.clear();return eq};c6.prototype.shapesInCircle=function(el,ej,eb,ea,ec,ed){this.sync_broadphase();this.updateCircShape(el,ej,eb);var em=this.circShape.zpp_inner.aabb;var eh=ed==null?new cZ():ed;var ek=this.list;while(ek!=null&&ek.aabb.maxx<em.minx){ek=ek.next}while(ek!=null&&ek.aabb.minx<=em.maxx){var ef=ek.aabb;if(em.miny<=ef.maxy&&ef.miny<=em.maxy&&em.minx<=ef.maxx&&ef.minx<=em.maxx){var eg=ek.shape;var ee;if(ec!=null){var ei=eg.filter;if((ei.collisionMask&ec.collisionGroup)!=0){ee=(ec.collisionMask&ei.collisionGroup)!=0}else{ee=false}}else{ee=true}if(ee){if(ea){if(b7.containTest(this.circShape.zpp_inner,eg)){eh.push(eg.outer)}}else{if(b7.testCollide_safe(eg,this.circShape.zpp_inner)){eh.push(eg.outer)}}}}ek=ek.next}return eh};c6.prototype.bodiesInCircle=function(en,el,eb,ea,ec,ee){this.sync_broadphase();this.updateCircShape(en,el,eb);var eo=this.circShape.zpp_inner.aabb;var ej=ee==null?new a5():ee;if(this.failed==null){this.failed=new a5()}var em=this.list;while(em!=null&&em.aabb.maxx<eo.minx){em=em.next}while(em!=null&&em.aabb.minx<=eo.maxx){var eh=em.aabb;if(eo.miny<=eh.maxy&&eh.miny<=eo.maxy&&eo.minx<=eh.maxx&&eh.minx<=eo.maxx){var ei=em.shape;var eg=ei.body.outer;var ef;if(ec!=null){var ek=ei.filter;if((ek.collisionMask&ec.collisionGroup)!=0){ef=(ec.collisionMask&ek.collisionGroup)!=0}else{ef=false}}else{ef=true}if(ef){if(ea){if(!this.failed.has(eg)){var ed=b7.containTest(this.circShape.zpp_inner,ei);if(!ej.has(eg)&&ed){ej.push(eg)}else{if(!ed){ej.remove(eg);this.failed.push(eg)}}}}else{if(!ej.has(eg)&&b7.testCollide_safe(ei,this.circShape.zpp_inner)){ej.push(eg)}}}}em=em.next}this.failed.clear();return ej};c6.prototype.shapesInShape=function(eg,ea,eb,ec){this.sync_broadphase();this.validateShape(eg);var ek=eg.aabb;var ef=ec==null?new cZ():ec;var ei=this.list;while(ei!=null&&ei.aabb.maxx<ek.minx){ei=ei.next}while(ei!=null&&ei.aabb.minx<=ek.maxx){var ee=ei.aabb;if(ek.miny<=ee.maxy&&ee.miny<=ek.maxy&&ek.minx<=ee.maxx&&ee.minx<=ek.maxx){var ej=ei.shape;var ed;if(eb!=null){var eh=ej.filter;if((eh.collisionMask&eb.collisionGroup)!=0){ed=(eb.collisionMask&eh.collisionGroup)!=0}else{ed=false}}else{ed=true}if(ed){if(ea){if(b7.containTest(eg,ej)){ef.push(ej.outer)}}else{if(b7.testCollide_safe(ej,eg)){ef.push(ej.outer)}}}}ei=ei.next}return ef};c6.prototype.bodiesInShape=function(ei,ea,eb,ed){this.sync_broadphase();this.validateShape(ei);var em=ei.aabb;var eh=ed==null?new a5():ed;if(this.failed==null){this.failed=new a5()}var ek=this.list;while(ek!=null&&ek.aabb.maxx<em.minx){ek=ek.next}while(ek!=null&&ek.aabb.minx<=em.maxx){var eg=ek.aabb;if(em.miny<=eg.maxy&&eg.miny<=em.maxy&&em.minx<=eg.maxx&&eg.minx<=em.maxx){var el=ek.shape;var ef=el.body.outer;var ee;if(eb!=null){var ej=el.filter;if((ej.collisionMask&eb.collisionGroup)!=0){ee=(eb.collisionMask&ej.collisionGroup)!=0}else{ee=false}}else{ee=true}if(ee){if(ea){if(!this.failed.has(ef)){var ec=b7.containTest(ei,el);if(!eh.has(ef)&&ec){eh.push(ef)}else{if(!ec){eh.remove(ef);this.failed.push(ef)}}}}else{if(!eh.has(ef)&&b7.testCollide_safe(ei,el)){eh.push(ef)}}}}ek=ek.next}this.failed.clear();return eh};c6.prototype.rayCast=function(eh,ex,eg){this.sync_broadphase();eh.validate_dir();var em=eh.rayAABB();var ec=eh.maxdist;var ej=null;if(eh.dirx==0){var ev=this.list;while(ev!=null&&ev.aabb.minx<=em.minx){var et;var en=ev.aabb;if(em.miny<=en.maxy&&en.miny<=em.maxy&&em.minx<=en.maxx&&en.minx<=em.maxx){if(eg!=null){var es=ev.shape.filter;if((es.collisionMask&eg.collisionGroup)!=0){et=(eg.collisionMask&es.collisionGroup)!=0}else{et=false}}else{et=true}}else{et=false}if(et){var ei=eh.aabbsect(ev.aabb);if(ei>=0&&ei<ec){var ef=ev.shape.type==0?eh.circlesect(ev.shape.circle,ex,ec):eh.polysect(ev.shape.polygon,ex,ec);if(ef!=null){ec=ef.zpp_inner.toiDistance;if(ej!=null){ej.zpp_inner.free()}ej=ef}}}ev=ev.next}}else{if(eh.dirx<0){var ey=this.list;var eu=null;while(ey!=null&&ey.aabb.minx<=em.maxx){eu=ey;ey=ey.next}ey=eu;while(ey!=null){var el;var er=ey.aabb;if(em.miny<=er.maxy&&er.miny<=em.maxy&&em.minx<=er.maxx&&er.minx<=em.maxx){if(eg!=null){var eq=ey.shape.filter;if((eq.collisionMask&eg.collisionGroup)!=0){el=(eg.collisionMask&eq.collisionGroup)!=0}else{el=false}}else{el=true}}else{el=false}if(el){var ee=eh.aabbsect(ey.aabb);if(ee>=0&&ee<ec){var eb=ey.shape.type==0?eh.circlesect(ey.shape.circle,ex,ec):eh.polysect(ey.shape.polygon,ex,ec);if(eb!=null){ec=eb.zpp_inner.toiDistance;if(ej!=null){ej.zpp_inner.free()}ej=eb}}}ey=ey.prev}}else{var ew=this.list;while(ew!=null&&ew.aabb.minx<=em.maxx&&ew.aabb.minx<eh.originx+eh.dirx*ec){var ek;var ep=ew.aabb;if(em.miny<=ep.maxy&&ep.miny<=em.maxy&&em.minx<=ep.maxx&&ep.minx<=em.maxx){if(eg!=null){var eo=ew.shape.filter;if((eo.collisionMask&eg.collisionGroup)!=0){ek=(eg.collisionMask&eo.collisionGroup)!=0}else{ek=false}}else{ek=true}}else{ek=false}if(ek){var ed=eh.aabbsect(ew.aabb);if(ed>=0&&ed<ec){var ea=ew.shape.type==0?eh.circlesect(ew.shape.circle,ex,ec):eh.polysect(ew.shape.polygon,ex,ec);if(ea!=null){ec=ea.zpp_inner.toiDistance;if(ej!=null){ej.zpp_inner.free()}ej=ea}}}ew=ew.next}}}if(em.outer!=null){em.outer.zpp_inner=null;em.outer=null}em.wrap_min=em.wrap_max=null;em._invalidate=null;em._validate=null;em.next=bT.zpp_pool;bT.zpp_pool=em;return ej};c6.prototype.rayMultiCast=function(ec,eq,eb,ea){this.sync_broadphase();ec.validate_dir();var ef=ec.rayAABB();var er=ea==null?new aa():ea;if(ec.dirx==0){var eo=this.list;while(eo!=null&&eo.aabb.minx<=ef.minx){var em;var eg=eo.aabb;if(ef.miny<=eg.maxy&&eg.miny<=ef.maxy&&ef.minx<=eg.maxx&&eg.minx<=ef.maxx){if(eb!=null){var el=eo.shape.filter;if((el.collisionMask&eb.collisionGroup)!=0){em=(eb.collisionMask&el.collisionGroup)!=0}else{em=false}}else{em=true}}else{em=false}if(em){if(ec.aabbsect(eo.aabb)>=0){if(eo.shape.type==0){ec.circlesect2(eo.shape.circle,eq,er)}else{ec.polysect2(eo.shape.polygon,eq,er)}}}eo=eo.next}}else{if(ec.dirx<0){var es=this.list;var en=null;while(es!=null&&es.aabb.minx<=ef.maxx){en=es;es=es.next}es=en;while(es!=null){var ee;var ek=es.aabb;if(ef.miny<=ek.maxy&&ek.miny<=ef.maxy&&ef.minx<=ek.maxx&&ek.minx<=ef.maxx){if(eb!=null){var ej=es.shape.filter;if((ej.collisionMask&eb.collisionGroup)!=0){ee=(eb.collisionMask&ej.collisionGroup)!=0}else{ee=false}}else{ee=true}}else{ee=false}if(ee){if(ec.aabbsect(es.aabb)>=0){if(es.shape.type==0){ec.circlesect2(es.shape.circle,eq,er)}else{ec.polysect2(es.shape.polygon,eq,er)}}}es=es.prev}}else{var ep=this.list;while(ep!=null&&ep.aabb.minx<=ef.maxx){var ed;var ei=ep.aabb;if(ef.miny<=ei.maxy&&ei.miny<=ef.maxy&&ef.minx<=ei.maxx&&ei.minx<=ef.maxx){if(eb!=null){var eh=ep.shape.filter;if((eh.collisionMask&eb.collisionGroup)!=0){ed=(eb.collisionMask&eh.collisionGroup)!=0}else{ed=false}}else{ed=true}}else{ed=false}if(ed){if(ec.aabbsect(ep.aabb)>=0){if(ep.shape.type==0){ec.circlesect2(ep.shape.circle,eq,er)}else{ec.polysect2(ep.shape.polygon,eq,er)}}}ep=ep.next}}}if(ef.outer!=null){ef.outer.zpp_inner=null;ef.outer=null}ef.wrap_min=ef.wrap_max=null;ef._invalidate=null;ef._validate=null;ef.next=bT.zpp_pool;bT.zpp_pool=ef;return er};c6.prototype.__class__=c6;var cb=zpp_nape.util.ZNPArray2_Float=function(eb,ea){this.width=0;this.list=null;this.width=eb;this.list=[]};cb.__name__=["zpp_nape","util","ZNPArray2_Float"];cb.prototype.list=null;cb.prototype.width=null;cb.prototype.resize=function(eb,ea,ed){this.width=eb;var ec=0;var ee=eb*ea;while(ec<ee){this.list[ec++]=ed}};cb.prototype.get=function(ea,eb){return this.list[eb*this.width+ea]};cb.prototype.set=function(ea,ec,eb){return this.list[ec*this.width+ea]=eb};cb.prototype.__class__=cb;var ac=zpp_nape.util.ZNPArray2_ZPP_GeomVert=function(eb,ea){this.width=0;this.list=null;this.width=eb;this.list=[]};ac.__name__=["zpp_nape","util","ZNPArray2_ZPP_GeomVert"];ac.prototype.list=null;ac.prototype.width=null;ac.prototype.resize=function(eb,ea,ed){this.width=eb;var ec=0;var ee=eb*ea;while(ec<ee){this.list[ec++]=ed}};ac.prototype.get=function(ea,eb){return this.list[eb*this.width+ea]};ac.prototype.set=function(ea,ec,eb){return this.list[ec*this.width+ea]=eb};ac.prototype.__class__=ac;var ae=zpp_nape.util.ZNPArray2_ZPP_MarchPair=function(eb,ea){this.width=0;this.list=null;this.width=eb;this.list=[]};ae.__name__=["zpp_nape","util","ZNPArray2_ZPP_MarchPair"];ae.prototype.list=null;ae.prototype.width=null;ae.prototype.resize=function(eb,ea,ed){this.width=eb;var ec=0;var ee=eb*ea;while(ec<ee){this.list[ec++]=ed}};ae.prototype.get=function(ea,eb){return this.list[eb*this.width+ea]};ae.prototype.set=function(ea,ec,eb){return this.list[ec*this.width+ea]=eb};ae.prototype.__class__=ae;var ca=zpp_nape.util.Hashable2_Boolfalse=function(){this.di=0;this.id=0;this.hnext=null;this.next=null;this.value=false};ca.__name__=["zpp_nape","util","Hashable2_Boolfalse"];ca.get=function(ee,eb,ed){var ea;if(ca.zpp_pool==null){ea=new ca()}else{ea=ca.zpp_pool;ca.zpp_pool=ea.next;ea.next=null}ea.id=ee;ea.di=eb;var ec=ea;ec.value=ed;return ec};ca.getpersist=function(ec,eb){var ea;if(ca.zpp_pool==null){ea=new ca()}else{ea=ca.zpp_pool;ca.zpp_pool=ea.next;ea.next=null}ea.id=ec;ea.di=eb;return ea};ca.ordered_get=function(eg,ec,ef){if(eg<=ec){var ea;if(ca.zpp_pool==null){ea=new ca()}else{ea=ca.zpp_pool;ca.zpp_pool=ea.next;ea.next=null}ea.id=eg;ea.di=ec;var ee=ea;ee.value=ef;return ee}else{var ed;if(ca.zpp_pool==null){ed=new ca()}else{ed=ca.zpp_pool;ca.zpp_pool=ed.next;ed.next=null}ed.id=ec;ed.di=eg;var eb=ed;eb.value=ef;return eb}};ca.ordered_get_persist=function(ed,eb){if(ed<=eb){var ea;if(ca.zpp_pool==null){ea=new ca()}else{ea=ca.zpp_pool;ca.zpp_pool=ea.next;ea.next=null}ea.id=ed;ea.di=eb;return ea}else{var ec;if(ca.zpp_pool==null){ec=new ca()}else{ec=ca.zpp_pool;ca.zpp_pool=ec.next;ec.next=null}ec.id=eb;ec.di=ed;return ec}};ca.prototype.value=null;ca.prototype.next=null;ca.prototype.hnext=null;ca.prototype.id=null;ca.prototype.di=null;ca.prototype.free=function(){};ca.prototype.alloc=function(){};ca.prototype.__class__=ca;var bK=zpp_nape.util.FastHash2_Hashable2_Boolfalse=function(){this.cnt=0;this.table=null;this.cnt=0;this.table=[];var ea=0;while(ea<1048576){++ea;this.table.push(null)}};bK.__name__=["zpp_nape","util","FastHash2_Hashable2_Boolfalse"];bK.prototype.table=null;bK.prototype.cnt=null;bK.prototype.empty=function(){return this.cnt==0};bK.prototype.clear=function(){var ec=0;var ed=this.table.length;while(ec<ed){var eb=ec++;var ee=this.table[eb];if(ee==null){continue}while(ee!=null){var ea=ee.hnext;ee.hnext=null;ee=ea}this.table[eb]=null}};bK.prototype.get=function(ec,ea){var eb=this.table[ec*106039+ea&1048575];if(eb==null){return null}else{if(eb.id==ec&&eb.di==ea){return eb}else{while(true){eb=eb.hnext;if(!(eb!=null&&(eb.id!=ec||eb.di!=ea))){break}}return eb}}};bK.prototype.ordered_get=function(ed,eb){if(ed>eb){var ea=ed;ed=eb;eb=ea}var ec=this.table[ed*106039+eb&1048575];if(ec==null){return null}else{if(ec.id==ed&&ec.di==eb){return ec}else{while(true){ec=ec.hnext;if(!(ec!=null&&(ec.id!=ed||ec.di!=eb))){break}}return ec}}};bK.prototype.has=function(ec,ea){var eb=this.table[ec*106039+ea&1048575];if(eb==null){return false}else{if(eb.id==ec&&eb.di==ea){return true}else{while(true){eb=eb.hnext;if(!(eb!=null&&(eb.id!=ec||eb.di!=ea))){break}}return eb!=null}}};bK.prototype.maybeAdd=function(eb){var ea=eb.id*106039+eb.di&1048575;var ec=this.table[ea];if(ec==null){this.table[ea]=eb;eb.hnext=null}else{eb.hnext=ec.hnext;ec.hnext=eb}this.cnt++};bK.prototype.add=function(eb){var ea=eb.id*106039+eb.di&1048575;var ec=this.table[ea];if(ec==null){this.table[ea]=eb;eb.hnext=null}else{eb.hnext=ec.hnext;ec.hnext=eb}this.cnt++};bK.prototype.remove=function(eb){var ea=eb.id*106039+eb.di&1048575;var ed=this.table[ea];if(ed==eb){this.table[ea]=ed.hnext}else{if(ed!=null){var ec;while(true){ec=ed;ed=ed.hnext;if(!(ed!=null&&ed!=eb)){break}}ec.hnext=ed.hnext}}eb.hnext=null;this.cnt--};bK.prototype.hash=function(eb,ea){return eb*106039+ea&1048575};bK.prototype.__class__=bK;var dF=zpp_nape.util.ZNPList_ZPP_CallbackSet=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};dF.__name__=["zpp_nape","util","ZNPList_ZPP_CallbackSet"];dF.prototype.head=null;dF.prototype.begin=function(){return this.head};dF.prototype.modified=null;dF.prototype.pushmod=null;dF.prototype.length=null;dF.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};dF.prototype.add=function(ec){var eb;if(cF.zpp_pool==null){eb=new cF()}else{eb=cF.zpp_pool;cF.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dF.prototype.inlined_add=function(ec){var eb;if(cF.zpp_pool==null){eb=new cF()}else{eb=cF.zpp_pool;cF.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dF.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};dF.prototype.insert=function(ed,ec){var eb;if(cF.zpp_pool==null){eb=new cF()}else{eb=cF.zpp_pool;cF.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dF.prototype.inlined_insert=function(ed,ec){var eb;if(cF.zpp_pool==null){eb=new cF()}else{eb=cF.zpp_pool;cF.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dF.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cF.zpp_pool;cF.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dF.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cF.zpp_pool;cF.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dF.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dF.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dF.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cF.zpp_pool;cF.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dF.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};dF.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cF.zpp_pool;cF.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dF.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cF.zpp_pool;cF.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};dF.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cF.zpp_pool;cF.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dF.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cF.zpp_pool;cF.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dF.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};dF.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cF.zpp_pool;cF.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dF.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cF.zpp_pool;cF.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dF.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};dF.prototype.empty=function(){return this.head==null};dF.prototype.size=function(){return this.length};dF.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dF.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dF.prototype.front=function(){return this.head.elt};dF.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};dF.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};dF.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};dF.prototype.__class__=dF;var s=zpp_nape.util.ZNPList_ZPP_Shape=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};s.__name__=["zpp_nape","util","ZNPList_ZPP_Shape"];s.prototype.head=null;s.prototype.begin=function(){return this.head};s.prototype.modified=null;s.prototype.pushmod=null;s.prototype.length=null;s.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};s.prototype.add=function(ec){var eb;if(b9.zpp_pool==null){eb=new b9()}else{eb=b9.zpp_pool;b9.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};s.prototype.inlined_add=function(ec){var eb;if(b9.zpp_pool==null){eb=new b9()}else{eb=b9.zpp_pool;b9.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};s.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};s.prototype.insert=function(ed,ec){var eb;if(b9.zpp_pool==null){eb=new b9()}else{eb=b9.zpp_pool;b9.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};s.prototype.inlined_insert=function(ed,ec){var eb;if(b9.zpp_pool==null){eb=new b9()}else{eb=b9.zpp_pool;b9.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};s.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=b9.zpp_pool;b9.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};s.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=b9.zpp_pool;b9.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};s.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};s.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};s.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=b9.zpp_pool;b9.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};s.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};s.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=b9.zpp_pool;b9.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};s.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=b9.zpp_pool;b9.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};s.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=b9.zpp_pool;b9.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};s.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=b9.zpp_pool;b9.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};s.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};s.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=b9.zpp_pool;b9.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};s.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=b9.zpp_pool;b9.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};s.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};s.prototype.empty=function(){return this.head==null};s.prototype.size=function(){return this.length};s.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};s.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};s.prototype.front=function(){return this.head.elt};s.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};s.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};s.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};s.prototype.__class__=s;var bs=zpp_nape.util.ZNPList_ZPP_Body=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};bs.__name__=["zpp_nape","util","ZNPList_ZPP_Body"];bs.prototype.head=null;bs.prototype.begin=function(){return this.head};bs.prototype.modified=null;bs.prototype.pushmod=null;bs.prototype.length=null;bs.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};bs.prototype.add=function(ec){var eb;if(bE.zpp_pool==null){eb=new bE()}else{eb=bE.zpp_pool;bE.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bs.prototype.inlined_add=function(ec){var eb;if(bE.zpp_pool==null){eb=new bE()}else{eb=bE.zpp_pool;bE.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bs.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};bs.prototype.insert=function(ed,ec){var eb;if(bE.zpp_pool==null){eb=new bE()}else{eb=bE.zpp_pool;bE.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bs.prototype.inlined_insert=function(ed,ec){var eb;if(bE.zpp_pool==null){eb=new bE()}else{eb=bE.zpp_pool;bE.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bs.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bE.zpp_pool;bE.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bs.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bE.zpp_pool;bE.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bs.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bs.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bs.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=bE.zpp_pool;bE.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bs.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bs.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=bE.zpp_pool;bE.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bs.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=bE.zpp_pool;bE.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};bs.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=bE.zpp_pool;bE.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bs.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=bE.zpp_pool;bE.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bs.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bs.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bE.zpp_pool;bE.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bs.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bE.zpp_pool;bE.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bs.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bs.prototype.empty=function(){return this.head==null};bs.prototype.size=function(){return this.length};bs.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bs.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bs.prototype.front=function(){return this.head.elt};bs.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};bs.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};bs.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};bs.prototype.__class__=bs;var n=zpp_nape.util.ZNPList_ZPP_Compound=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};n.__name__=["zpp_nape","util","ZNPList_ZPP_Compound"];n.prototype.head=null;n.prototype.begin=function(){return this.head};n.prototype.modified=null;n.prototype.pushmod=null;n.prototype.length=null;n.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};n.prototype.add=function(ec){var eb;if(Q.zpp_pool==null){eb=new Q()}else{eb=Q.zpp_pool;Q.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};n.prototype.inlined_add=function(ec){var eb;if(Q.zpp_pool==null){eb=new Q()}else{eb=Q.zpp_pool;Q.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};n.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};n.prototype.insert=function(ed,ec){var eb;if(Q.zpp_pool==null){eb=new Q()}else{eb=Q.zpp_pool;Q.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};n.prototype.inlined_insert=function(ed,ec){var eb;if(Q.zpp_pool==null){eb=new Q()}else{eb=Q.zpp_pool;Q.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};n.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=Q.zpp_pool;Q.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};n.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=Q.zpp_pool;Q.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};n.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};n.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};n.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=Q.zpp_pool;Q.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};n.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};n.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=Q.zpp_pool;Q.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};n.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=Q.zpp_pool;Q.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};n.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=Q.zpp_pool;Q.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};n.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=Q.zpp_pool;Q.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};n.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};n.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=Q.zpp_pool;Q.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};n.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=Q.zpp_pool;Q.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};n.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};n.prototype.empty=function(){return this.head==null};n.prototype.size=function(){return this.length};n.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};n.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};n.prototype.front=function(){return this.head.elt};n.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};n.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};n.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};n.prototype.__class__=n;var h=zpp_nape.util.ZNPList_ZPP_Arbiter=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};h.__name__=["zpp_nape","util","ZNPList_ZPP_Arbiter"];h.prototype.head=null;h.prototype.begin=function(){return this.head};h.prototype.modified=null;h.prototype.pushmod=null;h.prototype.length=null;h.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};h.prototype.add=function(ec){var eb;if(dL.zpp_pool==null){eb=new dL()}else{eb=dL.zpp_pool;dL.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};h.prototype.inlined_add=function(ec){var eb;if(dL.zpp_pool==null){eb=new dL()}else{eb=dL.zpp_pool;dL.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};h.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};h.prototype.insert=function(ed,ec){var eb;if(dL.zpp_pool==null){eb=new dL()}else{eb=dL.zpp_pool;dL.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};h.prototype.inlined_insert=function(ed,ec){var eb;if(dL.zpp_pool==null){eb=new dL()}else{eb=dL.zpp_pool;dL.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};h.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};h.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};h.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};h.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};h.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dL.zpp_pool;dL.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};h.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};h.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dL.zpp_pool;dL.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};h.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=dL.zpp_pool;dL.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};h.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dL.zpp_pool;dL.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};h.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dL.zpp_pool;dL.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};h.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};h.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};h.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dL.zpp_pool;dL.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};h.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};h.prototype.empty=function(){return this.head==null};h.prototype.size=function(){return this.length};h.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};h.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};h.prototype.front=function(){return this.head.elt};h.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};h.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};h.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};h.prototype.__class__=h;var aK=zpp_nape.util.ZNPList_ZPP_CbSetPair=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};aK.__name__=["zpp_nape","util","ZNPList_ZPP_CbSetPair"];aK.prototype.head=null;aK.prototype.begin=function(){return this.head};aK.prototype.modified=null;aK.prototype.pushmod=null;aK.prototype.length=null;aK.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};aK.prototype.add=function(ec){var eb;if(cd.zpp_pool==null){eb=new cd()}else{eb=cd.zpp_pool;cd.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};aK.prototype.inlined_add=function(ec){var eb;if(cd.zpp_pool==null){eb=new cd()}else{eb=cd.zpp_pool;cd.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};aK.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};aK.prototype.insert=function(ed,ec){var eb;if(cd.zpp_pool==null){eb=new cd()}else{eb=cd.zpp_pool;cd.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};aK.prototype.inlined_insert=function(ed,ec){var eb;if(cd.zpp_pool==null){eb=new cd()}else{eb=cd.zpp_pool;cd.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};aK.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cd.zpp_pool;cd.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};aK.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cd.zpp_pool;cd.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};aK.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};aK.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};aK.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cd.zpp_pool;cd.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};aK.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};aK.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cd.zpp_pool;cd.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};aK.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cd.zpp_pool;cd.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};aK.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cd.zpp_pool;cd.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};aK.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cd.zpp_pool;cd.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};aK.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};aK.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cd.zpp_pool;cd.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};aK.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cd.zpp_pool;cd.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};aK.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};aK.prototype.empty=function(){return this.head==null};aK.prototype.size=function(){return this.length};aK.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};aK.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};aK.prototype.front=function(){return this.head.elt};aK.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};aK.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};aK.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};aK.prototype.__class__=aK;var t=zpp_nape.util.ZNPList_ZPP_CutInt=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};t.__name__=["zpp_nape","util","ZNPList_ZPP_CutInt"];t.prototype.head=null;t.prototype.begin=function(){return this.head};t.prototype.modified=null;t.prototype.pushmod=null;t.prototype.length=null;t.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};t.prototype.add=function(ec){var eb;if(d3.zpp_pool==null){eb=new d3()}else{eb=d3.zpp_pool;d3.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};t.prototype.inlined_add=function(ec){var eb;if(d3.zpp_pool==null){eb=new d3()}else{eb=d3.zpp_pool;d3.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};t.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};t.prototype.insert=function(ed,ec){var eb;if(d3.zpp_pool==null){eb=new d3()}else{eb=d3.zpp_pool;d3.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};t.prototype.inlined_insert=function(ed,ec){var eb;if(d3.zpp_pool==null){eb=new d3()}else{eb=d3.zpp_pool;d3.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};t.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d3.zpp_pool;d3.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};t.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d3.zpp_pool;d3.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};t.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};t.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};t.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=d3.zpp_pool;d3.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};t.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};t.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=d3.zpp_pool;d3.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};t.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=d3.zpp_pool;d3.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};t.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=d3.zpp_pool;d3.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};t.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=d3.zpp_pool;d3.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};t.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};t.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d3.zpp_pool;d3.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};t.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d3.zpp_pool;d3.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};t.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};t.prototype.empty=function(){return this.head==null};t.prototype.size=function(){return this.length};t.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};t.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};t.prototype.front=function(){return this.head.elt};t.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};t.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};t.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};t.prototype.__class__=t;var B=zpp_nape.util.ZNPList_ZPP_CutVert=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};B.__name__=["zpp_nape","util","ZNPList_ZPP_CutVert"];B.prototype.head=null;B.prototype.begin=function(){return this.head};B.prototype.modified=null;B.prototype.pushmod=null;B.prototype.length=null;B.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};B.prototype.add=function(ec){var eb;if(cH.zpp_pool==null){eb=new cH()}else{eb=cH.zpp_pool;cH.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};B.prototype.inlined_add=function(ec){var eb;if(cH.zpp_pool==null){eb=new cH()}else{eb=cH.zpp_pool;cH.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};B.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};B.prototype.insert=function(ed,ec){var eb;if(cH.zpp_pool==null){eb=new cH()}else{eb=cH.zpp_pool;cH.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};B.prototype.inlined_insert=function(ed,ec){var eb;if(cH.zpp_pool==null){eb=new cH()}else{eb=cH.zpp_pool;cH.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};B.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cH.zpp_pool;cH.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};B.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cH.zpp_pool;cH.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};B.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};B.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};B.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cH.zpp_pool;cH.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};B.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};B.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cH.zpp_pool;cH.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};B.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cH.zpp_pool;cH.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};B.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cH.zpp_pool;cH.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};B.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cH.zpp_pool;cH.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};B.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};B.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cH.zpp_pool;cH.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};B.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cH.zpp_pool;cH.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};B.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};B.prototype.empty=function(){return this.head==null};B.prototype.size=function(){return this.length};B.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};B.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};B.prototype.front=function(){return this.head.elt};B.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};B.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};B.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};B.prototype.__class__=B;var dO=zpp_nape.util.ZNPList_ZPP_PartitionVertex=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};dO.__name__=["zpp_nape","util","ZNPList_ZPP_PartitionVertex"];dO.prototype.head=null;dO.prototype.begin=function(){return this.head};dO.prototype.modified=null;dO.prototype.pushmod=null;dO.prototype.length=null;dO.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};dO.prototype.add=function(ec){var eb;if(V.zpp_pool==null){eb=new V()}else{eb=V.zpp_pool;V.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dO.prototype.inlined_add=function(ec){var eb;if(V.zpp_pool==null){eb=new V()}else{eb=V.zpp_pool;V.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dO.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};dO.prototype.insert=function(ed,ec){var eb;if(V.zpp_pool==null){eb=new V()}else{eb=V.zpp_pool;V.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dO.prototype.inlined_insert=function(ed,ec){var eb;if(V.zpp_pool==null){eb=new V()}else{eb=V.zpp_pool;V.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dO.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=V.zpp_pool;V.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dO.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=V.zpp_pool;V.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dO.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dO.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dO.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=V.zpp_pool;V.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dO.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};dO.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=V.zpp_pool;V.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dO.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=V.zpp_pool;V.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};dO.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=V.zpp_pool;V.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dO.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=V.zpp_pool;V.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dO.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};dO.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=V.zpp_pool;V.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dO.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=V.zpp_pool;V.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dO.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};dO.prototype.empty=function(){return this.head==null};dO.prototype.size=function(){return this.length};dO.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dO.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dO.prototype.front=function(){return this.head.elt};dO.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};dO.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};dO.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};dO.prototype.__class__=dO;var c0=zpp_nape.util.ZNPList_ZPP_SimplifyP=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};c0.__name__=["zpp_nape","util","ZNPList_ZPP_SimplifyP"];c0.prototype.head=null;c0.prototype.begin=function(){return this.head};c0.prototype.modified=null;c0.prototype.pushmod=null;c0.prototype.length=null;c0.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};c0.prototype.add=function(ec){var eb;if(o.zpp_pool==null){eb=new o()}else{eb=o.zpp_pool;o.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};c0.prototype.inlined_add=function(ec){var eb;if(o.zpp_pool==null){eb=new o()}else{eb=o.zpp_pool;o.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};c0.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};c0.prototype.insert=function(ed,ec){var eb;if(o.zpp_pool==null){eb=new o()}else{eb=o.zpp_pool;o.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};c0.prototype.inlined_insert=function(ed,ec){var eb;if(o.zpp_pool==null){eb=new o()}else{eb=o.zpp_pool;o.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};c0.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=o.zpp_pool;o.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};c0.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=o.zpp_pool;o.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};c0.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};c0.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};c0.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=o.zpp_pool;o.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};c0.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};c0.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=o.zpp_pool;o.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};c0.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=o.zpp_pool;o.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};c0.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=o.zpp_pool;o.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};c0.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=o.zpp_pool;o.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};c0.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};c0.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=o.zpp_pool;o.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};c0.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=o.zpp_pool;o.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};c0.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};c0.prototype.empty=function(){return this.head==null};c0.prototype.size=function(){return this.length};c0.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};c0.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};c0.prototype.front=function(){return this.head.elt};c0.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};c0.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};c0.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};c0.prototype.__class__=c0;var bu=zpp_nape.util.ZNPList_ZPP_PartitionedPoly=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};bu.__name__=["zpp_nape","util","ZNPList_ZPP_PartitionedPoly"];bu.prototype.head=null;bu.prototype.begin=function(){return this.head};bu.prototype.modified=null;bu.prototype.pushmod=null;bu.prototype.length=null;bu.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};bu.prototype.add=function(ec){var eb;if(dU.zpp_pool==null){eb=new dU()}else{eb=dU.zpp_pool;dU.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bu.prototype.inlined_add=function(ec){var eb;if(dU.zpp_pool==null){eb=new dU()}else{eb=dU.zpp_pool;dU.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bu.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};bu.prototype.insert=function(ed,ec){var eb;if(dU.zpp_pool==null){eb=new dU()}else{eb=dU.zpp_pool;dU.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bu.prototype.inlined_insert=function(ed,ec){var eb;if(dU.zpp_pool==null){eb=new dU()}else{eb=dU.zpp_pool;dU.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bu.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dU.zpp_pool;dU.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bu.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dU.zpp_pool;dU.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bu.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bu.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bu.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dU.zpp_pool;dU.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bu.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bu.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dU.zpp_pool;dU.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bu.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=dU.zpp_pool;dU.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};bu.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dU.zpp_pool;dU.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bu.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dU.zpp_pool;dU.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bu.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bu.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dU.zpp_pool;dU.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bu.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dU.zpp_pool;dU.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bu.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bu.prototype.empty=function(){return this.head==null};bu.prototype.size=function(){return this.length};bu.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bu.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bu.prototype.front=function(){return this.head.elt};bu.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};bu.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};bu.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};bu.prototype.__class__=bu;var dA=zpp_nape.util.ZNPList_ZPP_GeomVert=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};dA.__name__=["zpp_nape","util","ZNPList_ZPP_GeomVert"];dA.prototype.head=null;dA.prototype.begin=function(){return this.head};dA.prototype.modified=null;dA.prototype.pushmod=null;dA.prototype.length=null;dA.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};dA.prototype.add=function(ec){var eb;if(dS.zpp_pool==null){eb=new dS()}else{eb=dS.zpp_pool;dS.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dA.prototype.inlined_add=function(ec){var eb;if(dS.zpp_pool==null){eb=new dS()}else{eb=dS.zpp_pool;dS.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dA.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};dA.prototype.insert=function(ed,ec){var eb;if(dS.zpp_pool==null){eb=new dS()}else{eb=dS.zpp_pool;dS.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dA.prototype.inlined_insert=function(ed,ec){var eb;if(dS.zpp_pool==null){eb=new dS()}else{eb=dS.zpp_pool;dS.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dA.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dS.zpp_pool;dS.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dA.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dS.zpp_pool;dS.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dA.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dA.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dA.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dS.zpp_pool;dS.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dA.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};dA.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dS.zpp_pool;dS.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dA.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=dS.zpp_pool;dS.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};dA.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dS.zpp_pool;dS.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dA.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dS.zpp_pool;dS.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dA.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};dA.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dS.zpp_pool;dS.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dA.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dS.zpp_pool;dS.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dA.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};dA.prototype.empty=function(){return this.head==null};dA.prototype.size=function(){return this.length};dA.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dA.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dA.prototype.front=function(){return this.head.elt};dA.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};dA.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};dA.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};dA.prototype.__class__=dA;var a8=zpp_nape.util.ZNPList_ZPP_SimpleVert=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};a8.__name__=["zpp_nape","util","ZNPList_ZPP_SimpleVert"];a8.prototype.head=null;a8.prototype.begin=function(){return this.head};a8.prototype.modified=null;a8.prototype.pushmod=null;a8.prototype.length=null;a8.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};a8.prototype.add=function(ec){var eb;if(d6.zpp_pool==null){eb=new d6()}else{eb=d6.zpp_pool;d6.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};a8.prototype.inlined_add=function(ec){var eb;if(d6.zpp_pool==null){eb=new d6()}else{eb=d6.zpp_pool;d6.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};a8.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};a8.prototype.insert=function(ed,ec){var eb;if(d6.zpp_pool==null){eb=new d6()}else{eb=d6.zpp_pool;d6.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};a8.prototype.inlined_insert=function(ed,ec){var eb;if(d6.zpp_pool==null){eb=new d6()}else{eb=d6.zpp_pool;d6.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};a8.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d6.zpp_pool;d6.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};a8.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d6.zpp_pool;d6.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};a8.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};a8.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};a8.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=d6.zpp_pool;d6.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};a8.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};a8.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=d6.zpp_pool;d6.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};a8.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=d6.zpp_pool;d6.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};a8.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=d6.zpp_pool;d6.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};a8.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=d6.zpp_pool;d6.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};a8.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};a8.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d6.zpp_pool;d6.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};a8.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d6.zpp_pool;d6.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};a8.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};a8.prototype.empty=function(){return this.head==null};a8.prototype.size=function(){return this.length};a8.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};a8.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};a8.prototype.front=function(){return this.head.elt};a8.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};a8.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};a8.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};a8.prototype.__class__=a8;var dC=zpp_nape.util.ZNPList_ZPP_SimpleEvent=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};dC.__name__=["zpp_nape","util","ZNPList_ZPP_SimpleEvent"];dC.prototype.head=null;dC.prototype.begin=function(){return this.head};dC.prototype.modified=null;dC.prototype.pushmod=null;dC.prototype.length=null;dC.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};dC.prototype.add=function(ec){var eb;if(dY.zpp_pool==null){eb=new dY()}else{eb=dY.zpp_pool;dY.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dC.prototype.inlined_add=function(ec){var eb;if(dY.zpp_pool==null){eb=new dY()}else{eb=dY.zpp_pool;dY.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dC.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};dC.prototype.insert=function(ed,ec){var eb;if(dY.zpp_pool==null){eb=new dY()}else{eb=dY.zpp_pool;dY.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dC.prototype.inlined_insert=function(ed,ec){var eb;if(dY.zpp_pool==null){eb=new dY()}else{eb=dY.zpp_pool;dY.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dC.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dY.zpp_pool;dY.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dC.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dY.zpp_pool;dY.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dC.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dC.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dC.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dY.zpp_pool;dY.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dC.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};dC.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dY.zpp_pool;dY.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dC.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=dY.zpp_pool;dY.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};dC.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dY.zpp_pool;dY.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dC.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dY.zpp_pool;dY.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dC.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};dC.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dY.zpp_pool;dY.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dC.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dY.zpp_pool;dY.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dC.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};dC.prototype.empty=function(){return this.head==null};dC.prototype.size=function(){return this.length};dC.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dC.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dC.prototype.front=function(){return this.head.elt};dC.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};dC.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};dC.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};dC.prototype.__class__=dC;var dw=zpp_nape.util.ZNPList_ZPP_AABBPair=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};dw.__name__=["zpp_nape","util","ZNPList_ZPP_AABBPair"];dw.prototype.head=null;dw.prototype.begin=function(){return this.head};dw.prototype.modified=null;dw.prototype.pushmod=null;dw.prototype.length=null;dw.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};dw.prototype.add=function(ec){var eb;if(cl.zpp_pool==null){eb=new cl()}else{eb=cl.zpp_pool;cl.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dw.prototype.inlined_add=function(ec){var eb;if(cl.zpp_pool==null){eb=new cl()}else{eb=cl.zpp_pool;cl.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dw.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};dw.prototype.insert=function(ed,ec){var eb;if(cl.zpp_pool==null){eb=new cl()}else{eb=cl.zpp_pool;cl.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dw.prototype.inlined_insert=function(ed,ec){var eb;if(cl.zpp_pool==null){eb=new cl()}else{eb=cl.zpp_pool;cl.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dw.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cl.zpp_pool;cl.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dw.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cl.zpp_pool;cl.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dw.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dw.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dw.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cl.zpp_pool;cl.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dw.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};dw.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cl.zpp_pool;cl.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dw.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cl.zpp_pool;cl.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};dw.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cl.zpp_pool;cl.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dw.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cl.zpp_pool;cl.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dw.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};dw.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cl.zpp_pool;cl.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dw.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cl.zpp_pool;cl.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dw.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};dw.prototype.empty=function(){return this.head==null};dw.prototype.size=function(){return this.length};dw.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dw.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dw.prototype.front=function(){return this.head.elt};dw.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};dw.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};dw.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};dw.prototype.__class__=dw;var ce=zpp_nape.util.ZNPList_ZPP_Edge=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};ce.__name__=["zpp_nape","util","ZNPList_ZPP_Edge"];ce.prototype.head=null;ce.prototype.begin=function(){return this.head};ce.prototype.modified=null;ce.prototype.pushmod=null;ce.prototype.length=null;ce.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};ce.prototype.add=function(ec){var eb;if(cq.zpp_pool==null){eb=new cq()}else{eb=cq.zpp_pool;cq.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};ce.prototype.inlined_add=function(ec){var eb;if(cq.zpp_pool==null){eb=new cq()}else{eb=cq.zpp_pool;cq.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};ce.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};ce.prototype.insert=function(ed,ec){var eb;if(cq.zpp_pool==null){eb=new cq()}else{eb=cq.zpp_pool;cq.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};ce.prototype.inlined_insert=function(ed,ec){var eb;if(cq.zpp_pool==null){eb=new cq()}else{eb=cq.zpp_pool;cq.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};ce.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cq.zpp_pool;cq.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};ce.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cq.zpp_pool;cq.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};ce.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};ce.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};ce.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cq.zpp_pool;cq.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};ce.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};ce.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cq.zpp_pool;cq.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};ce.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cq.zpp_pool;cq.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};ce.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cq.zpp_pool;cq.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};ce.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cq.zpp_pool;cq.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};ce.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};ce.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cq.zpp_pool;cq.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};ce.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cq.zpp_pool;cq.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};ce.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};ce.prototype.empty=function(){return this.head==null};ce.prototype.size=function(){return this.length};ce.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};ce.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};ce.prototype.front=function(){return this.head.elt};ce.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};ce.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};ce.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};ce.prototype.__class__=ce;var ai=zpp_nape.util.ZNPList_ZPP_AABBNode=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};ai.__name__=["zpp_nape","util","ZNPList_ZPP_AABBNode"];ai.prototype.head=null;ai.prototype.begin=function(){return this.head};ai.prototype.modified=null;ai.prototype.pushmod=null;ai.prototype.length=null;ai.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};ai.prototype.add=function(ec){var eb;if(d2.zpp_pool==null){eb=new d2()}else{eb=d2.zpp_pool;d2.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};ai.prototype.inlined_add=function(ec){var eb;if(d2.zpp_pool==null){eb=new d2()}else{eb=d2.zpp_pool;d2.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};ai.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};ai.prototype.insert=function(ed,ec){var eb;if(d2.zpp_pool==null){eb=new d2()}else{eb=d2.zpp_pool;d2.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};ai.prototype.inlined_insert=function(ed,ec){var eb;if(d2.zpp_pool==null){eb=new d2()}else{eb=d2.zpp_pool;d2.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};ai.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d2.zpp_pool;d2.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};ai.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d2.zpp_pool;d2.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};ai.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};ai.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};ai.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=d2.zpp_pool;d2.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};ai.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};ai.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=d2.zpp_pool;d2.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};ai.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=d2.zpp_pool;d2.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};ai.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=d2.zpp_pool;d2.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};ai.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=d2.zpp_pool;d2.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};ai.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};ai.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d2.zpp_pool;d2.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};ai.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=d2.zpp_pool;d2.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};ai.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};ai.prototype.empty=function(){return this.head==null};ai.prototype.size=function(){return this.length};ai.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};ai.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};ai.prototype.front=function(){return this.head.elt};ai.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};ai.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};ai.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};ai.prototype.__class__=ai;var bN=zpp_nape.util.ZNPList_ZPP_Component=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};bN.__name__=["zpp_nape","util","ZNPList_ZPP_Component"];bN.prototype.head=null;bN.prototype.begin=function(){return this.head};bN.prototype.modified=null;bN.prototype.pushmod=null;bN.prototype.length=null;bN.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};bN.prototype.add=function(ec){var eb;if(dv.zpp_pool==null){eb=new dv()}else{eb=dv.zpp_pool;dv.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bN.prototype.inlined_add=function(ec){var eb;if(dv.zpp_pool==null){eb=new dv()}else{eb=dv.zpp_pool;dv.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bN.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};bN.prototype.insert=function(ed,ec){var eb;if(dv.zpp_pool==null){eb=new dv()}else{eb=dv.zpp_pool;dv.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bN.prototype.inlined_insert=function(ed,ec){var eb;if(dv.zpp_pool==null){eb=new dv()}else{eb=dv.zpp_pool;dv.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bN.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dv.zpp_pool;dv.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bN.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dv.zpp_pool;dv.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bN.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bN.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bN.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dv.zpp_pool;dv.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bN.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bN.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dv.zpp_pool;dv.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bN.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=dv.zpp_pool;dv.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};bN.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dv.zpp_pool;dv.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bN.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dv.zpp_pool;dv.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bN.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bN.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dv.zpp_pool;dv.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bN.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dv.zpp_pool;dv.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bN.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bN.prototype.empty=function(){return this.head==null};bN.prototype.size=function(){return this.length};bN.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bN.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bN.prototype.front=function(){return this.head.elt};bN.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};bN.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};bN.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};bN.prototype.__class__=bN;var c7=zpp_nape.util.ZNPList_ZPP_FluidArbiter=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};c7.__name__=["zpp_nape","util","ZNPList_ZPP_FluidArbiter"];c7.prototype.head=null;c7.prototype.begin=function(){return this.head};c7.prototype.modified=null;c7.prototype.pushmod=null;c7.prototype.length=null;c7.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};c7.prototype.add=function(ec){var eb;if(bb.zpp_pool==null){eb=new bb()}else{eb=bb.zpp_pool;bb.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};c7.prototype.inlined_add=function(ec){var eb;if(bb.zpp_pool==null){eb=new bb()}else{eb=bb.zpp_pool;bb.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};c7.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};c7.prototype.insert=function(ed,ec){var eb;if(bb.zpp_pool==null){eb=new bb()}else{eb=bb.zpp_pool;bb.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};c7.prototype.inlined_insert=function(ed,ec){var eb;if(bb.zpp_pool==null){eb=new bb()}else{eb=bb.zpp_pool;bb.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};c7.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bb.zpp_pool;bb.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};c7.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bb.zpp_pool;bb.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};c7.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};c7.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};c7.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=bb.zpp_pool;bb.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};c7.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};c7.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=bb.zpp_pool;bb.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};c7.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=bb.zpp_pool;bb.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};c7.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=bb.zpp_pool;bb.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};c7.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=bb.zpp_pool;bb.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};c7.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};c7.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bb.zpp_pool;bb.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};c7.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bb.zpp_pool;bb.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};c7.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};c7.prototype.empty=function(){return this.head==null};c7.prototype.size=function(){return this.length};c7.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};c7.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};c7.prototype.front=function(){return this.head.elt};c7.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};c7.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};c7.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};c7.prototype.__class__=c7;var bd=zpp_nape.util.ZNPList_ZPP_SensorArbiter=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};bd.__name__=["zpp_nape","util","ZNPList_ZPP_SensorArbiter"];bd.prototype.head=null;bd.prototype.begin=function(){return this.head};bd.prototype.modified=null;bd.prototype.pushmod=null;bd.prototype.length=null;bd.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};bd.prototype.add=function(ec){var eb;if(L.zpp_pool==null){eb=new L()}else{eb=L.zpp_pool;L.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bd.prototype.inlined_add=function(ec){var eb;if(L.zpp_pool==null){eb=new L()}else{eb=L.zpp_pool;L.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bd.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};bd.prototype.insert=function(ed,ec){var eb;if(L.zpp_pool==null){eb=new L()}else{eb=L.zpp_pool;L.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bd.prototype.inlined_insert=function(ed,ec){var eb;if(L.zpp_pool==null){eb=new L()}else{eb=L.zpp_pool;L.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bd.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=L.zpp_pool;L.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bd.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=L.zpp_pool;L.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bd.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bd.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bd.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=L.zpp_pool;L.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bd.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bd.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=L.zpp_pool;L.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bd.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=L.zpp_pool;L.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};bd.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=L.zpp_pool;L.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bd.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=L.zpp_pool;L.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bd.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bd.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=L.zpp_pool;L.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bd.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=L.zpp_pool;L.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bd.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bd.prototype.empty=function(){return this.head==null};bd.prototype.size=function(){return this.length};bd.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bd.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bd.prototype.front=function(){return this.head.elt};bd.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};bd.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};bd.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};bd.prototype.__class__=bd;var dP=zpp_nape.util.ZNPList_ZPP_Listener=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};dP.__name__=["zpp_nape","util","ZNPList_ZPP_Listener"];dP.prototype.head=null;dP.prototype.begin=function(){return this.head};dP.prototype.modified=null;dP.prototype.pushmod=null;dP.prototype.length=null;dP.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};dP.prototype.add=function(ec){var eb;if(e.zpp_pool==null){eb=new e()}else{eb=e.zpp_pool;e.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dP.prototype.inlined_add=function(ec){var eb;if(e.zpp_pool==null){eb=new e()}else{eb=e.zpp_pool;e.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};dP.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};dP.prototype.insert=function(ed,ec){var eb;if(e.zpp_pool==null){eb=new e()}else{eb=e.zpp_pool;e.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dP.prototype.inlined_insert=function(ed,ec){var eb;if(e.zpp_pool==null){eb=new e()}else{eb=e.zpp_pool;e.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};dP.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=e.zpp_pool;e.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dP.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=e.zpp_pool;e.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};dP.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dP.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};dP.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=e.zpp_pool;e.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dP.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};dP.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=e.zpp_pool;e.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};dP.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=e.zpp_pool;e.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};dP.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=e.zpp_pool;e.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dP.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=e.zpp_pool;e.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};dP.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};dP.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=e.zpp_pool;e.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dP.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=e.zpp_pool;e.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};dP.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};dP.prototype.empty=function(){return this.head==null};dP.prototype.size=function(){return this.length};dP.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dP.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};dP.prototype.front=function(){return this.head.elt};dP.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};dP.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};dP.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};dP.prototype.__class__=dP;var bH=zpp_nape.util.ZNPList_ZPP_ColArbiter=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};bH.__name__=["zpp_nape","util","ZNPList_ZPP_ColArbiter"];bH.prototype.head=null;bH.prototype.begin=function(){return this.head};bH.prototype.modified=null;bH.prototype.pushmod=null;bH.prototype.length=null;bH.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};bH.prototype.add=function(ec){var eb;if(bi.zpp_pool==null){eb=new bi()}else{eb=bi.zpp_pool;bi.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bH.prototype.inlined_add=function(ec){var eb;if(bi.zpp_pool==null){eb=new bi()}else{eb=bi.zpp_pool;bi.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bH.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};bH.prototype.insert=function(ed,ec){var eb;if(bi.zpp_pool==null){eb=new bi()}else{eb=bi.zpp_pool;bi.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bH.prototype.inlined_insert=function(ed,ec){var eb;if(bi.zpp_pool==null){eb=new bi()}else{eb=bi.zpp_pool;bi.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bH.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bi.zpp_pool;bi.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bH.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bi.zpp_pool;bi.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bH.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bH.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bH.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=bi.zpp_pool;bi.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bH.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bH.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=bi.zpp_pool;bi.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bH.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=bi.zpp_pool;bi.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};bH.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=bi.zpp_pool;bi.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bH.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=bi.zpp_pool;bi.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bH.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bH.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bi.zpp_pool;bi.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bH.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=bi.zpp_pool;bi.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bH.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bH.prototype.empty=function(){return this.head==null};bH.prototype.size=function(){return this.length};bH.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bH.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bH.prototype.front=function(){return this.head.elt};bH.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};bH.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};bH.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};bH.prototype.__class__=bH;var da=zpp_nape.util.ZNPList_ZPP_InteractionGroup=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};da.__name__=["zpp_nape","util","ZNPList_ZPP_InteractionGroup"];da.prototype.head=null;da.prototype.begin=function(){return this.head};da.prototype.modified=null;da.prototype.pushmod=null;da.prototype.length=null;da.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};da.prototype.add=function(ec){var eb;if(w.zpp_pool==null){eb=new w()}else{eb=w.zpp_pool;w.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};da.prototype.inlined_add=function(ec){var eb;if(w.zpp_pool==null){eb=new w()}else{eb=w.zpp_pool;w.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};da.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};da.prototype.insert=function(ed,ec){var eb;if(w.zpp_pool==null){eb=new w()}else{eb=w.zpp_pool;w.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};da.prototype.inlined_insert=function(ed,ec){var eb;if(w.zpp_pool==null){eb=new w()}else{eb=w.zpp_pool;w.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};da.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=w.zpp_pool;w.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};da.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=w.zpp_pool;w.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};da.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};da.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};da.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=w.zpp_pool;w.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};da.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};da.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=w.zpp_pool;w.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};da.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=w.zpp_pool;w.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};da.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=w.zpp_pool;w.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};da.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=w.zpp_pool;w.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};da.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};da.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=w.zpp_pool;w.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};da.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=w.zpp_pool;w.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};da.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};da.prototype.empty=function(){return this.head==null};da.prototype.size=function(){return this.length};da.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};da.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};da.prototype.front=function(){return this.head.elt};da.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};da.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};da.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};da.prototype.__class__=da;var d4=zpp_nape.util.ZNPList_ZPP_ToiEvent=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};d4.__name__=["zpp_nape","util","ZNPList_ZPP_ToiEvent"];d4.prototype.head=null;d4.prototype.begin=function(){return this.head};d4.prototype.modified=null;d4.prototype.pushmod=null;d4.prototype.length=null;d4.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};d4.prototype.add=function(ec){var eb;if(c5.zpp_pool==null){eb=new c5()}else{eb=c5.zpp_pool;c5.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};d4.prototype.inlined_add=function(ec){var eb;if(c5.zpp_pool==null){eb=new c5()}else{eb=c5.zpp_pool;c5.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};d4.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};d4.prototype.insert=function(ed,ec){var eb;if(c5.zpp_pool==null){eb=new c5()}else{eb=c5.zpp_pool;c5.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};d4.prototype.inlined_insert=function(ed,ec){var eb;if(c5.zpp_pool==null){eb=new c5()}else{eb=c5.zpp_pool;c5.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};d4.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=c5.zpp_pool;c5.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};d4.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=c5.zpp_pool;c5.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};d4.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};d4.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};d4.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=c5.zpp_pool;c5.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};d4.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};d4.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=c5.zpp_pool;c5.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};d4.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=c5.zpp_pool;c5.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};d4.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=c5.zpp_pool;c5.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};d4.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=c5.zpp_pool;c5.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};d4.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};d4.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=c5.zpp_pool;c5.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};d4.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=c5.zpp_pool;c5.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};d4.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};d4.prototype.empty=function(){return this.head==null};d4.prototype.size=function(){return this.length};d4.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};d4.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};d4.prototype.front=function(){return this.head.elt};d4.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};d4.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};d4.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};d4.prototype.__class__=d4;var bS=zpp_nape.util.ZNPList_ConvexResult=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};bS.__name__=["zpp_nape","util","ZNPList_ConvexResult"];bS.prototype.head=null;bS.prototype.begin=function(){return this.head};bS.prototype.modified=null;bS.prototype.pushmod=null;bS.prototype.length=null;bS.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};bS.prototype.add=function(ec){var eb;if(cn.zpp_pool==null){eb=new cn()}else{eb=cn.zpp_pool;cn.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bS.prototype.inlined_add=function(ec){var eb;if(cn.zpp_pool==null){eb=new cn()}else{eb=cn.zpp_pool;cn.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};bS.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};bS.prototype.insert=function(ed,ec){var eb;if(cn.zpp_pool==null){eb=new cn()}else{eb=cn.zpp_pool;cn.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bS.prototype.inlined_insert=function(ed,ec){var eb;if(cn.zpp_pool==null){eb=new cn()}else{eb=cn.zpp_pool;cn.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};bS.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cn.zpp_pool;cn.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bS.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cn.zpp_pool;cn.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};bS.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bS.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};bS.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cn.zpp_pool;cn.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bS.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};bS.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cn.zpp_pool;cn.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};bS.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cn.zpp_pool;cn.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};bS.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cn.zpp_pool;cn.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bS.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cn.zpp_pool;cn.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};bS.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};bS.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cn.zpp_pool;cn.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bS.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cn.zpp_pool;cn.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};bS.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};bS.prototype.empty=function(){return this.head==null};bS.prototype.size=function(){return this.length};bS.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bS.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};bS.prototype.front=function(){return this.head.elt};bS.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};bS.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};bS.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};bS.prototype.__class__=bS;var ch=zpp_nape.util.ZNPList_ZPP_GeomPoly=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};ch.__name__=["zpp_nape","util","ZNPList_ZPP_GeomPoly"];ch.prototype.head=null;ch.prototype.begin=function(){return this.head};ch.prototype.modified=null;ch.prototype.pushmod=null;ch.prototype.length=null;ch.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};ch.prototype.add=function(ec){var eb;if(cM.zpp_pool==null){eb=new cM()}else{eb=cM.zpp_pool;cM.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};ch.prototype.inlined_add=function(ec){var eb;if(cM.zpp_pool==null){eb=new cM()}else{eb=cM.zpp_pool;cM.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};ch.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};ch.prototype.insert=function(ed,ec){var eb;if(cM.zpp_pool==null){eb=new cM()}else{eb=cM.zpp_pool;cM.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};ch.prototype.inlined_insert=function(ed,ec){var eb;if(cM.zpp_pool==null){eb=new cM()}else{eb=cM.zpp_pool;cM.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};ch.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cM.zpp_pool;cM.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};ch.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cM.zpp_pool;cM.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};ch.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};ch.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};ch.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cM.zpp_pool;cM.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};ch.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};ch.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=cM.zpp_pool;cM.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};ch.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=cM.zpp_pool;cM.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};ch.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cM.zpp_pool;cM.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};ch.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=cM.zpp_pool;cM.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};ch.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};ch.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cM.zpp_pool;cM.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};ch.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=cM.zpp_pool;cM.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};ch.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};ch.prototype.empty=function(){return this.head==null};ch.prototype.size=function(){return this.length};ch.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};ch.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};ch.prototype.front=function(){return this.head.elt};ch.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};ch.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};ch.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};ch.prototype.__class__=ch;var cf=zpp_nape.util.ZNPList_RayResult=function(){this.length=0;this.pushmod=false;this.modified=false;this.head=null};cf.__name__=["zpp_nape","util","ZNPList_RayResult"];cf.prototype.head=null;cf.prototype.begin=function(){return this.head};cf.prototype.modified=null;cf.prototype.pushmod=null;cf.prototype.length=null;cf.prototype.setbegin=function(ea){this.head=ea;this.modified=true;this.pushmod=true};cf.prototype.add=function(ec){var eb;if(dp.zpp_pool==null){eb=new dp()}else{eb=dp.zpp_pool;dp.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};cf.prototype.inlined_add=function(ec){var eb;if(dp.zpp_pool==null){eb=new dp()}else{eb=dp.zpp_pool;dp.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;ea.next=this.head;this.head=ea;this.modified=true;this.length++;return ec};cf.prototype.addAll=function(ea){var eb=ea.head;while(eb!=null){this.add(eb.elt);eb=eb.next}};cf.prototype.insert=function(ed,ec){var eb;if(dp.zpp_pool==null){eb=new dp()}else{eb=dp.zpp_pool;dp.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cf.prototype.inlined_insert=function(ed,ec){var eb;if(dp.zpp_pool==null){eb=new dp()}else{eb=dp.zpp_pool;dp.zpp_pool=eb.next;eb.next=null}eb.elt=ec;var ea=eb;if(ed==null){ea.next=this.head;this.head=ea}else{ea.next=ed.next;ed.next=ea}this.pushmod=this.modified=true;this.length++;return ea};cf.prototype.pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dp.zpp_pool;dp.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};cf.prototype.inlined_pop=function(){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dp.zpp_pool;dp.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--};cf.prototype.pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};cf.prototype.inlined_pop_unsafe=function(){var ea=this.head.elt;this.pop();return ea};cf.prototype.remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dp.zpp_pool;dp.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};cf.prototype.try_remove=function(ec){var eb=null;var ed=this.head;var ea=false;while(ed!=null){if(ed.elt==ec){this.erase(eb);ea=true;break}eb=ed;ed=ed.next}return ea};cf.prototype.inlined_remove=function(ed){var ec=null;var ef=this.head;while(ef!=null){if(ef.elt==ed){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ee=ea;ee.elt=null;ee.next=dp.zpp_pool;dp.zpp_pool=ee;this.modified=true;this.length--;this.pushmod=true;break}ec=ef;ef=ef.next}};cf.prototype.inlined_try_remove=function(ee){var ed=null;var eg=this.head;var eb=false;while(eg!=null){if(eg.elt==ee){var ea;var ec;if(ed==null){ea=this.head;ec=ea.next;this.head=ec;if(this.head==null){this.pushmod=true}}else{ea=ed.next;ec=ea.next;ed.next=ec;if(ec==null){this.pushmod=true}}var ef=ea;ef.elt=null;ef.next=dp.zpp_pool;dp.zpp_pool=ef;this.modified=true;this.length--;this.pushmod=true;eb=true;break}ed=eg;eg=eg.next}return eb};cf.prototype.erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dp.zpp_pool;dp.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};cf.prototype.inlined_erase=function(ec){var ea;var eb;if(ec==null){ea=this.head;eb=ea.next;this.head=eb;if(this.head==null){this.pushmod=true}}else{ea=ec.next;eb=ea.next;ec.next=eb;if(eb==null){this.pushmod=true}}var ed=ea;ed.elt=null;ed.next=dp.zpp_pool;dp.zpp_pool=ed;this.modified=true;this.length--;this.pushmod=true;return eb};cf.prototype.splice=function(ea,eb){while(eb-->0&&ea.next!=null){this.erase(ea)}return ea.next};cf.prototype.clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dp.zpp_pool;dp.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};cf.prototype.inlined_clear=function(){while(this.head!=null){var ea=this.head;this.head=ea.next;ea.elt=null;ea.next=dp.zpp_pool;dp.zpp_pool=ea;if(this.head==null){this.pushmod=true}this.modified=true;this.length--}this.pushmod=true};cf.prototype.reverse=function(){var ec=this.head;var eb=null;while(ec!=null){var ea=ec.next;ec.next=eb;this.head=ec;eb=ec;ec=ea}this.modified=true;this.pushmod=true};cf.prototype.empty=function(){return this.head==null};cf.prototype.size=function(){return this.length};cf.prototype.has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};cf.prototype.inlined_has=function(ec){var ea;ea=false;var eb=this.head;while(eb!=null){if(eb.elt==ec){ea=true;break}eb=eb.next}return ea};cf.prototype.front=function(){return this.head.elt};cf.prototype.back=function(){var ea=this.head;var eb=ea;while(eb!=null){ea=eb;eb=eb.next}return ea.elt};cf.prototype.iterator_at=function(eb){var ea=this.head;while(eb-->0&&ea!=null){ea=ea.next}return ea};cf.prototype.at=function(eb){var ea=this.iterator_at(eb);if(ea!=null){return ea.elt}else{return null}};cf.prototype.__class__=cf;var b=zpp_nape.util.ZNPNode_ZPP_CbType=function(){this.elt=null;this.next=null};b.__name__=["zpp_nape","util","ZNPNode_ZPP_CbType"];b.prototype.next=null;b.prototype.alloc=function(){};b.prototype.free=function(){this.elt=null};b.prototype.elt=null;b.prototype.elem=function(){return this.elt};b.prototype.__class__=b;var cF=zpp_nape.util.ZNPNode_ZPP_CallbackSet=function(){this.elt=null;this.next=null};cF.__name__=["zpp_nape","util","ZNPNode_ZPP_CallbackSet"];cF.prototype.next=null;cF.prototype.alloc=function(){};cF.prototype.free=function(){this.elt=null};cF.prototype.elt=null;cF.prototype.elem=function(){return this.elt};cF.prototype.__class__=cF;var b9=zpp_nape.util.ZNPNode_ZPP_Shape=function(){this.elt=null;this.next=null};b9.__name__=["zpp_nape","util","ZNPNode_ZPP_Shape"];b9.prototype.next=null;b9.prototype.alloc=function(){};b9.prototype.free=function(){this.elt=null};b9.prototype.elt=null;b9.prototype.elem=function(){return this.elt};b9.prototype.__class__=b9;var bE=zpp_nape.util.ZNPNode_ZPP_Body=function(){this.elt=null;this.next=null};bE.__name__=["zpp_nape","util","ZNPNode_ZPP_Body"];bE.prototype.next=null;bE.prototype.alloc=function(){};bE.prototype.free=function(){this.elt=null};bE.prototype.elt=null;bE.prototype.elem=function(){return this.elt};bE.prototype.__class__=bE;var cx=zpp_nape.util.ZNPNode_ZPP_Constraint=function(){this.elt=null;this.next=null};cx.__name__=["zpp_nape","util","ZNPNode_ZPP_Constraint"];cx.prototype.next=null;cx.prototype.alloc=function(){};cx.prototype.free=function(){this.elt=null};cx.prototype.elt=null;cx.prototype.elem=function(){return this.elt};cx.prototype.__class__=cx;var Q=zpp_nape.util.ZNPNode_ZPP_Compound=function(){this.elt=null;this.next=null};Q.__name__=["zpp_nape","util","ZNPNode_ZPP_Compound"];Q.prototype.next=null;Q.prototype.alloc=function(){};Q.prototype.free=function(){this.elt=null};Q.prototype.elt=null;Q.prototype.elem=function(){return this.elt};Q.prototype.__class__=Q;var dL=zpp_nape.util.ZNPNode_ZPP_Arbiter=function(){this.elt=null;this.next=null};dL.__name__=["zpp_nape","util","ZNPNode_ZPP_Arbiter"];dL.prototype.next=null;dL.prototype.alloc=function(){};dL.prototype.free=function(){this.elt=null};dL.prototype.elt=null;dL.prototype.elem=function(){return this.elt};dL.prototype.__class__=dL;var aF=zpp_nape.util.ZNPNode_ZPP_InteractionListener=function(){this.elt=null;this.next=null};aF.__name__=["zpp_nape","util","ZNPNode_ZPP_InteractionListener"];aF.prototype.next=null;aF.prototype.alloc=function(){};aF.prototype.free=function(){this.elt=null};aF.prototype.elt=null;aF.prototype.elem=function(){return this.elt};aF.prototype.__class__=aF;var cO=zpp_nape.util.ZNPNode_ZPP_CbSet=function(){this.elt=null;this.next=null};cO.__name__=["zpp_nape","util","ZNPNode_ZPP_CbSet"];cO.prototype.next=null;cO.prototype.alloc=function(){};cO.prototype.free=function(){this.elt=null};cO.prototype.elt=null;cO.prototype.elem=function(){return this.elt};cO.prototype.__class__=cO;var g=zpp_nape.util.ZNPNode_ZPP_Interactor=function(){this.elt=null;this.next=null};g.__name__=["zpp_nape","util","ZNPNode_ZPP_Interactor"];g.prototype.next=null;g.prototype.alloc=function(){};g.prototype.free=function(){this.elt=null};g.prototype.elt=null;g.prototype.elem=function(){return this.elt};g.prototype.__class__=g;var aT=zpp_nape.util.ZNPNode_ZPP_BodyListener=function(){this.elt=null;this.next=null};aT.__name__=["zpp_nape","util","ZNPNode_ZPP_BodyListener"];aT.prototype.next=null;aT.prototype.alloc=function(){};aT.prototype.free=function(){this.elt=null};aT.prototype.elt=null;aT.prototype.elem=function(){return this.elt};aT.prototype.__class__=aT;var cd=zpp_nape.util.ZNPNode_ZPP_CbSetPair=function(){this.elt=null;this.next=null};cd.__name__=["zpp_nape","util","ZNPNode_ZPP_CbSetPair"];cd.prototype.next=null;cd.prototype.alloc=function(){};cd.prototype.free=function(){this.elt=null};cd.prototype.elt=null;cd.prototype.elem=function(){return this.elt};cd.prototype.__class__=cd;var aR=zpp_nape.util.ZNPNode_ZPP_ConstraintListener=function(){this.elt=null;this.next=null};aR.__name__=["zpp_nape","util","ZNPNode_ZPP_ConstraintListener"];aR.prototype.next=null;aR.prototype.alloc=function(){};aR.prototype.free=function(){this.elt=null};aR.prototype.elt=null;aR.prototype.elem=function(){return this.elt};aR.prototype.__class__=aR;var d3=zpp_nape.util.ZNPNode_ZPP_CutInt=function(){this.elt=null;this.next=null};d3.__name__=["zpp_nape","util","ZNPNode_ZPP_CutInt"];d3.prototype.next=null;d3.prototype.alloc=function(){};d3.prototype.free=function(){this.elt=null};d3.prototype.elt=null;d3.prototype.elem=function(){return this.elt};d3.prototype.__class__=d3;var cH=zpp_nape.util.ZNPNode_ZPP_CutVert=function(){this.elt=null;this.next=null};cH.__name__=["zpp_nape","util","ZNPNode_ZPP_CutVert"];cH.prototype.next=null;cH.prototype.alloc=function(){};cH.prototype.free=function(){this.elt=null};cH.prototype.elt=null;cH.prototype.elem=function(){return this.elt};cH.prototype.__class__=cH;var V=zpp_nape.util.ZNPNode_ZPP_PartitionVertex=function(){this.elt=null;this.next=null};V.__name__=["zpp_nape","util","ZNPNode_ZPP_PartitionVertex"];V.prototype.next=null;V.prototype.alloc=function(){};V.prototype.free=function(){this.elt=null};V.prototype.elt=null;V.prototype.elem=function(){return this.elt};V.prototype.__class__=V;var o=zpp_nape.util.ZNPNode_ZPP_SimplifyP=function(){this.elt=null;this.next=null};o.__name__=["zpp_nape","util","ZNPNode_ZPP_SimplifyP"];o.prototype.next=null;o.prototype.alloc=function(){};o.prototype.free=function(){this.elt=null};o.prototype.elt=null;o.prototype.elem=function(){return this.elt};o.prototype.__class__=o;var dU=zpp_nape.util.ZNPNode_ZPP_PartitionedPoly=function(){this.elt=null;this.next=null};dU.__name__=["zpp_nape","util","ZNPNode_ZPP_PartitionedPoly"];dU.prototype.next=null;dU.prototype.alloc=function(){};dU.prototype.free=function(){this.elt=null};dU.prototype.elt=null;dU.prototype.elem=function(){return this.elt};dU.prototype.__class__=dU;var dS=zpp_nape.util.ZNPNode_ZPP_GeomVert=function(){this.elt=null;this.next=null};dS.__name__=["zpp_nape","util","ZNPNode_ZPP_GeomVert"];dS.prototype.next=null;dS.prototype.alloc=function(){};dS.prototype.free=function(){this.elt=null};dS.prototype.elt=null;dS.prototype.elem=function(){return this.elt};dS.prototype.__class__=dS;var d6=zpp_nape.util.ZNPNode_ZPP_SimpleVert=function(){this.elt=null;this.next=null};d6.__name__=["zpp_nape","util","ZNPNode_ZPP_SimpleVert"];d6.prototype.next=null;d6.prototype.alloc=function(){};d6.prototype.free=function(){this.elt=null};d6.prototype.elt=null;d6.prototype.elem=function(){return this.elt};d6.prototype.__class__=d6;var dY=zpp_nape.util.ZNPNode_ZPP_SimpleEvent=function(){this.elt=null;this.next=null};dY.__name__=["zpp_nape","util","ZNPNode_ZPP_SimpleEvent"];dY.prototype.next=null;dY.prototype.alloc=function(){};dY.prototype.free=function(){this.elt=null};dY.prototype.elt=null;dY.prototype.elem=function(){return this.elt};dY.prototype.__class__=dY;var aV=zpp_nape.util.ZNPNode_ZPP_Vec2=function(){this.elt=null;this.next=null};aV.__name__=["zpp_nape","util","ZNPNode_ZPP_Vec2"];aV.prototype.next=null;aV.prototype.alloc=function(){};aV.prototype.free=function(){this.elt=null};aV.prototype.elt=null;aV.prototype.elem=function(){return this.elt};aV.prototype.__class__=aV;var cl=zpp_nape.util.ZNPNode_ZPP_AABBPair=function(){this.elt=null;this.next=null};cl.__name__=["zpp_nape","util","ZNPNode_ZPP_AABBPair"];cl.prototype.next=null;cl.prototype.alloc=function(){};cl.prototype.free=function(){this.elt=null};cl.prototype.elt=null;cl.prototype.elem=function(){return this.elt};cl.prototype.__class__=cl;var cq=zpp_nape.util.ZNPNode_ZPP_Edge=function(){this.elt=null;this.next=null};cq.__name__=["zpp_nape","util","ZNPNode_ZPP_Edge"];cq.prototype.next=null;cq.prototype.alloc=function(){};cq.prototype.free=function(){this.elt=null};cq.prototype.elt=null;cq.prototype.elem=function(){return this.elt};cq.prototype.__class__=cq;var d2=zpp_nape.util.ZNPNode_ZPP_AABBNode=function(){this.elt=null;this.next=null};d2.__name__=["zpp_nape","util","ZNPNode_ZPP_AABBNode"];d2.prototype.next=null;d2.prototype.alloc=function(){};d2.prototype.free=function(){this.elt=null};d2.prototype.elt=null;d2.prototype.elem=function(){return this.elt};d2.prototype.__class__=d2;var dv=zpp_nape.util.ZNPNode_ZPP_Component=function(){this.elt=null;this.next=null};dv.__name__=["zpp_nape","util","ZNPNode_ZPP_Component"];dv.prototype.next=null;dv.prototype.alloc=function(){};dv.prototype.free=function(){this.elt=null};dv.prototype.elt=null;dv.prototype.elem=function(){return this.elt};dv.prototype.__class__=dv;var bb=zpp_nape.util.ZNPNode_ZPP_FluidArbiter=function(){this.elt=null;this.next=null};bb.__name__=["zpp_nape","util","ZNPNode_ZPP_FluidArbiter"];bb.prototype.next=null;bb.prototype.alloc=function(){};bb.prototype.free=function(){this.elt=null};bb.prototype.elt=null;bb.prototype.elem=function(){return this.elt};bb.prototype.__class__=bb;var L=zpp_nape.util.ZNPNode_ZPP_SensorArbiter=function(){this.elt=null;this.next=null};L.__name__=["zpp_nape","util","ZNPNode_ZPP_SensorArbiter"];L.prototype.next=null;L.prototype.alloc=function(){};L.prototype.free=function(){this.elt=null};L.prototype.elt=null;L.prototype.elem=function(){return this.elt};L.prototype.__class__=L;var e=zpp_nape.util.ZNPNode_ZPP_Listener=function(){this.elt=null;this.next=null};e.__name__=["zpp_nape","util","ZNPNode_ZPP_Listener"];e.prototype.next=null;e.prototype.alloc=function(){};e.prototype.free=function(){this.elt=null};e.prototype.elt=null;e.prototype.elem=function(){return this.elt};e.prototype.__class__=e;var bi=zpp_nape.util.ZNPNode_ZPP_ColArbiter=function(){this.elt=null;this.next=null};bi.__name__=["zpp_nape","util","ZNPNode_ZPP_ColArbiter"];bi.prototype.next=null;bi.prototype.alloc=function(){};bi.prototype.free=function(){this.elt=null};bi.prototype.elt=null;bi.prototype.elem=function(){return this.elt};bi.prototype.__class__=bi;var w=zpp_nape.util.ZNPNode_ZPP_InteractionGroup=function(){this.elt=null;this.next=null};w.__name__=["zpp_nape","util","ZNPNode_ZPP_InteractionGroup"];w.prototype.next=null;w.prototype.alloc=function(){};w.prototype.free=function(){this.elt=null};w.prototype.elt=null;w.prototype.elem=function(){return this.elt};w.prototype.__class__=w;var c5=zpp_nape.util.ZNPNode_ZPP_ToiEvent=function(){this.elt=null;this.next=null};c5.__name__=["zpp_nape","util","ZNPNode_ZPP_ToiEvent"];c5.prototype.next=null;c5.prototype.alloc=function(){};c5.prototype.free=function(){this.elt=null};c5.prototype.elt=null;c5.prototype.elem=function(){return this.elt};c5.prototype.__class__=c5;var cn=zpp_nape.util.ZNPNode_ConvexResult=function(){this.elt=null;this.next=null};cn.__name__=["zpp_nape","util","ZNPNode_ConvexResult"];cn.prototype.next=null;cn.prototype.alloc=function(){};cn.prototype.free=function(){this.elt=null};cn.prototype.elt=null;cn.prototype.elem=function(){return this.elt};cn.prototype.__class__=cn;var cM=zpp_nape.util.ZNPNode_ZPP_GeomPoly=function(){this.elt=null;this.next=null};cM.__name__=["zpp_nape","util","ZNPNode_ZPP_GeomPoly"];cM.prototype.next=null;cM.prototype.alloc=function(){};cM.prototype.free=function(){this.elt=null};cM.prototype.elt=null;cM.prototype.elem=function(){return this.elt};cM.prototype.__class__=cM;var dp=zpp_nape.util.ZNPNode_RayResult=function(){this.elt=null;this.next=null};dp.__name__=["zpp_nape","util","ZNPNode_RayResult"];dp.prototype.next=null;dp.prototype.alloc=function(){};dp.prototype.free=function(){this.elt=null};dp.prototype.elt=null;dp.prototype.elem=function(){return this.elt};dp.prototype.__class__=dp;var ao=zpp_nape.util.ZPP_MixVec2List=function(){this.at_index=0;this.at_ite=null;this.zip_length=false;this._length=0;this.inner=null;aN.call(this);this.at_ite=null;this.at_index=0;this.zip_length=true;this._length=0};ao.__name__=["zpp_nape","util","ZPP_MixVec2List"];ao.__super__=aN;ao.prototype=Object.create(aN.prototype);ao.get=function(eb,ec){if(ec==null){ec=false}var ea=new ao();ea.inner=eb;ea.zpp_inner.immutable=ec;return ea};ao.prototype.inner=null;ao.prototype._length=null;ao.prototype.zip_length=null;ao.prototype.at_ite=null;ao.prototype.at_index=null;ao.prototype.zpp_gl=function(){this.zpp_vm();if(this.zip_length){this._length=0;var ea=this.inner.next;while(ea!=null){this._length++;ea=ea.next}this.zip_length=false}return this._length};ao.prototype.zpp_vm=function(){this.zpp_inner.validate();if(this.inner.modified){this.zip_length=true;this._length=0;this.at_ite=null}};ao.prototype.at=function(ea){this.zpp_vm();if(this.zpp_inner.reverse_flag){ea=this.zpp_gl()-1-ea}if(ea<this.at_index||this.at_ite==null){this.at_index=0;this.at_ite=this.inner.next;while(true){break}}while(this.at_index!=ea){this.at_index++;this.at_ite=this.at_ite.next;while(true){break}}var ec=this.at_ite;if(ec.outer==null){ec.outer=new r();var eb=ec.outer.zpp_inner;if(eb.outer!=null){eb.outer.zpp_inner=null;eb.outer=null}eb._isimmutable=null;eb._validate=null;eb._invalidate=null;eb.next=bB.zpp_pool;bB.zpp_pool=eb;ec.outer.zpp_inner=ec}return ec.outer};ao.prototype.push=function(eb){this.zpp_inner.modify_test();this.zpp_vm();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(eb):true;if(ea){if(this.zpp_inner.reverse_flag){this.inner.add(eb.zpp_inner)}else{this.inner.insert(this.inner.iterator_at(this.zpp_gl()-1),eb.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(eb)}}return ea};ao.prototype.unshift=function(eb){this.zpp_inner.modify_test();this.zpp_vm();var ea=this.zpp_inner.adder!=null?this.zpp_inner.adder(eb):true;if(ea){if(this.zpp_inner.reverse_flag){this.inner.insert(this.inner.iterator_at(this.zpp_gl()-1),eb.zpp_inner)}else{this.inner.add(eb.zpp_inner)}this.zpp_inner.invalidate();if(this.zpp_inner.post_adder!=null){this.zpp_inner.post_adder(eb)}}return ea};ao.prototype.pop=function(){this.zpp_inner.modify_test();this.zpp_vm();var eb=null;if(this.zpp_inner.reverse_flag){eb=this.inner.next;if(eb.outer==null){eb.outer=new r();var eg=eb.outer.zpp_inner;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg._isimmutable=null;eg._validate=null;eg._invalidate=null;eg.next=bB.zpp_pool;bB.zpp_pool=eg;eb.outer.zpp_inner=eb}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.inner.pop()}}else{if(this.at_ite!=null&&this.at_ite.next==null){this.at_ite=null}var ee=this.zpp_gl()==1?null:this.inner.iterator_at(this.zpp_gl()-2);if(ee==null){eb=this.inner.next}else{eb=ee.next}if(eb.outer==null){eb.outer=new r();var ed=eb.outer.zpp_inner;if(ed.outer!=null){ed.outer.zpp_inner=null;ed.outer=null}ed._isimmutable=null;ed._validate=null;ed._invalidate=null;ed.next=bB.zpp_pool;bB.zpp_pool=ed;eb.outer.zpp_inner=eb}var ef=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ef)}if(!this.zpp_inner.dontremove){this.inner.erase(ee)}}this.zpp_inner.invalidate();if(eb.outer==null){eb.outer=new r();var ec=eb.outer.zpp_inner;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec._isimmutable=null;ec._validate=null;ec._invalidate=null;ec.next=bB.zpp_pool;bB.zpp_pool=ec;eb.outer.zpp_inner=eb}return eb.outer};ao.prototype.shift=function(){this.zpp_inner.modify_test();this.zpp_vm();var eb=null;if(this.zpp_inner.reverse_flag){if(this.at_ite!=null&&this.at_ite.next==null){this.at_ite=null}var ee=this.zpp_gl()==1?null:this.inner.iterator_at(this.zpp_gl()-2);if(ee==null){eb=this.inner.next}else{eb=ee.next}if(eb.outer==null){eb.outer=new r();var eg=eb.outer.zpp_inner;if(eg.outer!=null){eg.outer.zpp_inner=null;eg.outer=null}eg._isimmutable=null;eg._validate=null;eg._invalidate=null;eg.next=bB.zpp_pool;bB.zpp_pool=eg;eb.outer.zpp_inner=eb}var ea=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ea)}if(!this.zpp_inner.dontremove){this.inner.erase(ee)}}else{eb=this.inner.next;if(eb.outer==null){eb.outer=new r();var ed=eb.outer.zpp_inner;if(ed.outer!=null){ed.outer.zpp_inner=null;ed.outer=null}ed._isimmutable=null;ed._validate=null;ed._invalidate=null;ed.next=bB.zpp_pool;bB.zpp_pool=ed;eb.outer.zpp_inner=eb}var ef=eb.outer;if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ef)}if(!this.zpp_inner.dontremove){this.inner.pop()}}this.zpp_inner.invalidate();if(eb.outer==null){eb.outer=new r();var ec=eb.outer.zpp_inner;if(ec.outer!=null){ec.outer.zpp_inner=null;ec.outer=null}ec._isimmutable=null;ec._validate=null;ec._invalidate=null;ec.next=bB.zpp_pool;bB.zpp_pool=ec;eb.outer.zpp_inner=eb}return eb.outer};ao.prototype.remove=function(ec){this.zpp_inner.modify_test();this.zpp_vm();var ea;ea=false;var eb=this.inner.next;while(eb!=null){if(ec.zpp_inner==eb){ea=true;break}eb=eb.next}if(ea){if(this.zpp_inner.subber!=null){this.zpp_inner.subber(ec)}if(!this.zpp_inner.dontremove){this.inner.remove(ec.zpp_inner)}this.zpp_inner.invalidate()}return ea};ao.prototype.clear=function(){if(this.zpp_inner.reverse_flag){while(!this.empty()){this.pop()}}else{while(!this.empty()){this.shift()}}};ao.prototype.__class__=ao;var aZ=zpp_nape.util.ZPP_ConstraintList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new m();this._invalidated=true};aZ.__name__=["zpp_nape","util","ZPP_ConstraintList"];aZ.get=function(ec,eb){if(eb==null){eb=false}var ea=new bg();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};aZ.prototype.outer=null;aZ.prototype.inner=null;aZ.prototype.immutable=null;aZ.prototype._invalidated=null;aZ.prototype._invalidate=null;aZ.prototype._validate=null;aZ.prototype._modifiable=null;aZ.prototype.adder=null;aZ.prototype.post_adder=null;aZ.prototype.subber=null;aZ.prototype.dontremove=null;aZ.prototype.reverse_flag=null;aZ.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};aZ.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};aZ.prototype.modify_test=function(){};aZ.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};aZ.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};aZ.prototype.at_index=null;aZ.prototype.at_ite=null;aZ.prototype.push_ite=null;aZ.prototype.zip_length=null;aZ.prototype.user_length=null;aZ.prototype.__class__=aZ;var b0=zpp_nape.util.ZPP_BodyList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new bs();this._invalidated=true};b0.__name__=["zpp_nape","util","ZPP_BodyList"];b0.get=function(ec,eb){if(eb==null){eb=false}var ea=new a5();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};b0.prototype.outer=null;b0.prototype.inner=null;b0.prototype.immutable=null;b0.prototype._invalidated=null;b0.prototype._invalidate=null;b0.prototype._validate=null;b0.prototype._modifiable=null;b0.prototype.adder=null;b0.prototype.post_adder=null;b0.prototype.subber=null;b0.prototype.dontremove=null;b0.prototype.reverse_flag=null;b0.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};b0.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};b0.prototype.modify_test=function(){};b0.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};b0.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};b0.prototype.at_index=null;b0.prototype.at_ite=null;b0.prototype.push_ite=null;b0.prototype.zip_length=null;b0.prototype.user_length=null;b0.prototype.__class__=b0;var i=zpp_nape.util.ZPP_InteractorList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new bn();this._invalidated=true};i.__name__=["zpp_nape","util","ZPP_InteractorList"];i.get=function(ec,eb){if(eb==null){eb=false}var ea=new dd();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};i.prototype.outer=null;i.prototype.inner=null;i.prototype.immutable=null;i.prototype._invalidated=null;i.prototype._invalidate=null;i.prototype._validate=null;i.prototype._modifiable=null;i.prototype.adder=null;i.prototype.post_adder=null;i.prototype.subber=null;i.prototype.dontremove=null;i.prototype.reverse_flag=null;i.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};i.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};i.prototype.modify_test=function(){};i.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};i.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};i.prototype.at_index=null;i.prototype.at_ite=null;i.prototype.push_ite=null;i.prototype.zip_length=null;i.prototype.user_length=null;i.prototype.__class__=i;var bj=zpp_nape.util.ZPP_CompoundList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new n();this._invalidated=true};bj.__name__=["zpp_nape","util","ZPP_CompoundList"];bj.get=function(ec,eb){if(eb==null){eb=false}var ea=new cB();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};bj.prototype.outer=null;bj.prototype.inner=null;bj.prototype.immutable=null;bj.prototype._invalidated=null;bj.prototype._invalidate=null;bj.prototype._validate=null;bj.prototype._modifiable=null;bj.prototype.adder=null;bj.prototype.post_adder=null;bj.prototype.subber=null;bj.prototype.dontremove=null;bj.prototype.reverse_flag=null;bj.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};bj.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};bj.prototype.modify_test=function(){};bj.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};bj.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};bj.prototype.at_index=null;bj.prototype.at_ite=null;bj.prototype.push_ite=null;bj.prototype.zip_length=null;bj.prototype.user_length=null;bj.prototype.__class__=bj;var a1=zpp_nape.util.ZPP_ListenerList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new dP();this._invalidated=true};a1.__name__=["zpp_nape","util","ZPP_ListenerList"];a1.get=function(ec,eb){if(eb==null){eb=false}var ea=new ci();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};a1.prototype.outer=null;a1.prototype.inner=null;a1.prototype.immutable=null;a1.prototype._invalidated=null;a1.prototype._invalidate=null;a1.prototype._validate=null;a1.prototype._modifiable=null;a1.prototype.adder=null;a1.prototype.post_adder=null;a1.prototype.subber=null;a1.prototype.dontremove=null;a1.prototype.reverse_flag=null;a1.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};a1.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};a1.prototype.modify_test=function(){};a1.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};a1.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};a1.prototype.at_index=null;a1.prototype.at_ite=null;a1.prototype.push_ite=null;a1.prototype.zip_length=null;a1.prototype.user_length=null;a1.prototype.__class__=a1;var cy=zpp_nape.util.ZPP_CbTypeList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new x();this._invalidated=true};cy.__name__=["zpp_nape","util","ZPP_CbTypeList"];cy.get=function(ec,eb){if(eb==null){eb=false}var ea=new C();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};cy.prototype.outer=null;cy.prototype.inner=null;cy.prototype.immutable=null;cy.prototype._invalidated=null;cy.prototype._invalidate=null;cy.prototype._validate=null;cy.prototype._modifiable=null;cy.prototype.adder=null;cy.prototype.post_adder=null;cy.prototype.subber=null;cy.prototype.dontremove=null;cy.prototype.reverse_flag=null;cy.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};cy.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};cy.prototype.modify_test=function(){};cy.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};cy.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};cy.prototype.at_index=null;cy.prototype.at_ite=null;cy.prototype.push_ite=null;cy.prototype.zip_length=null;cy.prototype.user_length=null;cy.prototype.__class__=cy;var bF=zpp_nape.util.ZPP_Vec2List=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new aG();this._invalidated=true};bF.__name__=["zpp_nape","util","ZPP_Vec2List"];bF.get=function(ec,eb){if(eb==null){eb=false}var ea=new aN();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};bF.prototype.outer=null;bF.prototype.inner=null;bF.prototype.immutable=null;bF.prototype._invalidated=null;bF.prototype._invalidate=null;bF.prototype._validate=null;bF.prototype._modifiable=null;bF.prototype.adder=null;bF.prototype.post_adder=null;bF.prototype.subber=null;bF.prototype.dontremove=null;bF.prototype.reverse_flag=null;bF.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};bF.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};bF.prototype.modify_test=function(){};bF.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};bF.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};bF.prototype.at_index=null;bF.prototype.at_ite=null;bF.prototype.push_ite=null;bF.prototype.zip_length=null;bF.prototype.user_length=null;bF.prototype.__class__=bF;var dl=zpp_nape.util.ZPP_GeomPolyList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new ch();this._invalidated=true};dl.__name__=["zpp_nape","util","ZPP_GeomPolyList"];dl.get=function(ec,eb){if(eb==null){eb=false}var ea=new u();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};dl.prototype.outer=null;dl.prototype.inner=null;dl.prototype.immutable=null;dl.prototype._invalidated=null;dl.prototype._invalidate=null;dl.prototype._validate=null;dl.prototype._modifiable=null;dl.prototype.adder=null;dl.prototype.post_adder=null;dl.prototype.subber=null;dl.prototype.dontremove=null;dl.prototype.reverse_flag=null;dl.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};dl.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};dl.prototype.modify_test=function(){};dl.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};dl.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};dl.prototype.at_index=null;dl.prototype.at_ite=null;dl.prototype.push_ite=null;dl.prototype.zip_length=null;dl.prototype.user_length=null;dl.prototype.__class__=dl;var bw=zpp_nape.util.ZPP_RayResultList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new cf();this._invalidated=true};bw.__name__=["zpp_nape","util","ZPP_RayResultList"];bw.get=function(ec,eb){if(eb==null){eb=false}var ea=new aa();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};bw.prototype.outer=null;bw.prototype.inner=null;bw.prototype.immutable=null;bw.prototype._invalidated=null;bw.prototype._invalidate=null;bw.prototype._validate=null;bw.prototype._modifiable=null;bw.prototype.adder=null;bw.prototype.post_adder=null;bw.prototype.subber=null;bw.prototype.dontremove=null;bw.prototype.reverse_flag=null;bw.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};bw.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};bw.prototype.modify_test=function(){};bw.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};bw.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};bw.prototype.at_index=null;bw.prototype.at_ite=null;bw.prototype.push_ite=null;bw.prototype.zip_length=null;bw.prototype.user_length=null;bw.prototype.__class__=bw;var dE=zpp_nape.util.ZPP_ConvexResultList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new bS();this._invalidated=true};dE.__name__=["zpp_nape","util","ZPP_ConvexResultList"];dE.get=function(ec,eb){if(eb==null){eb=false}var ea=new cs();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};dE.prototype.outer=null;dE.prototype.inner=null;dE.prototype.immutable=null;dE.prototype._invalidated=null;dE.prototype._invalidate=null;dE.prototype._validate=null;dE.prototype._modifiable=null;dE.prototype.adder=null;dE.prototype.post_adder=null;dE.prototype.subber=null;dE.prototype.dontremove=null;dE.prototype.reverse_flag=null;dE.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};dE.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};dE.prototype.modify_test=function(){};dE.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};dE.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};dE.prototype.at_index=null;dE.prototype.at_ite=null;dE.prototype.push_ite=null;dE.prototype.zip_length=null;dE.prototype.user_length=null;dE.prototype.__class__=dE;var aw=zpp_nape.util.ZPP_EdgeList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new ce();this._invalidated=true};aw.__name__=["zpp_nape","util","ZPP_EdgeList"];aw.get=function(ec,eb){if(eb==null){eb=false}var ea=new a2();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};aw.prototype.outer=null;aw.prototype.inner=null;aw.prototype.immutable=null;aw.prototype._invalidated=null;aw.prototype._invalidate=null;aw.prototype._validate=null;aw.prototype._modifiable=null;aw.prototype.adder=null;aw.prototype.post_adder=null;aw.prototype.subber=null;aw.prototype.dontremove=null;aw.prototype.reverse_flag=null;aw.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};aw.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};aw.prototype.modify_test=function(){};aw.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};aw.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};aw.prototype.at_index=null;aw.prototype.at_ite=null;aw.prototype.push_ite=null;aw.prototype.zip_length=null;aw.prototype.user_length=null;aw.prototype.__class__=aw;var aI=zpp_nape.util.ZPP_ShapeList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new s();this._invalidated=true};aI.__name__=["zpp_nape","util","ZPP_ShapeList"];aI.get=function(ec,eb){if(eb==null){eb=false}var ea=new cZ();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};aI.prototype.outer=null;aI.prototype.inner=null;aI.prototype.immutable=null;aI.prototype._invalidated=null;aI.prototype._invalidate=null;aI.prototype._validate=null;aI.prototype._modifiable=null;aI.prototype.adder=null;aI.prototype.post_adder=null;aI.prototype.subber=null;aI.prototype.dontremove=null;aI.prototype.reverse_flag=null;aI.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};aI.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};aI.prototype.modify_test=function(){};aI.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};aI.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};aI.prototype.at_index=null;aI.prototype.at_ite=null;aI.prototype.push_ite=null;aI.prototype.zip_length=null;aI.prototype.user_length=null;aI.prototype.__class__=aI;var bt=zpp_nape.util.ZPP_InteractionGroupList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new da();this._invalidated=true};bt.__name__=["zpp_nape","util","ZPP_InteractionGroupList"];bt.get=function(ec,eb){if(eb==null){eb=false}var ea=new aS();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};bt.prototype.outer=null;bt.prototype.inner=null;bt.prototype.immutable=null;bt.prototype._invalidated=null;bt.prototype._invalidate=null;bt.prototype._validate=null;bt.prototype._modifiable=null;bt.prototype.adder=null;bt.prototype.post_adder=null;bt.prototype.subber=null;bt.prototype.dontremove=null;bt.prototype.reverse_flag=null;bt.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};bt.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};bt.prototype.modify_test=function(){};bt.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};bt.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};bt.prototype.at_index=null;bt.prototype.at_ite=null;bt.prototype.push_ite=null;bt.prototype.zip_length=null;bt.prototype.user_length=null;bt.prototype.__class__=bt;var U=zpp_nape.util.ZPP_ArbiterList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new h();this._invalidated=true};U.__name__=["zpp_nape","util","ZPP_ArbiterList"];U.get=function(ec,eb){if(eb==null){eb=false}var ea=new dD();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};U.prototype.outer=null;U.prototype.inner=null;U.prototype.immutable=null;U.prototype._invalidated=null;U.prototype._invalidate=null;U.prototype._validate=null;U.prototype._modifiable=null;U.prototype.adder=null;U.prototype.post_adder=null;U.prototype.subber=null;U.prototype.dontremove=null;U.prototype.reverse_flag=null;U.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};U.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};U.prototype.modify_test=function(){};U.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};U.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};U.prototype.at_index=null;U.prototype.at_ite=null;U.prototype.push_ite=null;U.prototype.zip_length=null;U.prototype.user_length=null;U.prototype.__class__=U;var aB=zpp_nape.util.ZPP_ContactList=function(){this.user_length=0;this.zip_length=false;this.push_ite=null;this.at_ite=null;this.at_index=0;this.reverse_flag=false;this.dontremove=false;this.subber=null;this.post_adder=null;this.adder=null;this._modifiable=null;this._validate=null;this._invalidate=null;this._invalidated=false;this.immutable=false;this.inner=null;this.outer=null;this.inner=new c2();this._invalidated=true};aB.__name__=["zpp_nape","util","ZPP_ContactList"];aB.get=function(ec,eb){if(eb==null){eb=false}var ea=new d7();ea.zpp_inner.inner=ec;if(eb){ea.zpp_inner.immutable=true}ea.zpp_inner.zip_length=true;return ea};aB.prototype.outer=null;aB.prototype.inner=null;aB.prototype.immutable=null;aB.prototype._invalidated=null;aB.prototype._invalidate=null;aB.prototype._validate=null;aB.prototype._modifiable=null;aB.prototype.adder=null;aB.prototype.post_adder=null;aB.prototype.subber=null;aB.prototype.dontremove=null;aB.prototype.reverse_flag=null;aB.prototype.valmod=function(){this.validate();if(this.inner.modified){if(this.inner.pushmod){this.push_ite=null}this.at_ite=null;this.inner.modified=false;this.inner.pushmod=false;this.zip_length=true}};aB.prototype.modified=function(){this.zip_length=true;this.at_ite=null;this.push_ite=null};aB.prototype.modify_test=function(){};aB.prototype.validate=function(){if(this._invalidated){this._invalidated=false;if(this._validate!=null){this._validate()}}};aB.prototype.invalidate=function(){this._invalidated=true;if(this._invalidate!=null){this._invalidate(this)}};aB.prototype.at_index=null;aB.prototype.at_ite=null;aB.prototype.push_ite=null;aB.prototype.zip_length=null;aB.prototype.user_length=null;aB.prototype.__class__=aB;var aH=zpp_nape.util.ZPP_Math=function(){};aH.__name__=["zpp_nape","util","ZPP_Math"];aH.sqrt=function(ea){return Math.sqrt(ea)};aH.invsqrt=function(ea){return 1/Math.sqrt(ea)};aH.sqr=function(ea){return ea*ea};aH.clamp2=function(ea,ec){var eb=-ec;if(ea<eb){return eb}else{if(ea>ec){return ec}else{return ea}}};aH.clamp=function(eb,ec,ea){if(eb<ec){return ec}else{if(eb>ea){return ea}else{return eb}}};aH.prototype.__class__=aH;var au=zpp_nape.util.ZPP_PubPool=function(){};au.__name__=["zpp_nape","util","ZPP_PubPool"];au.prototype.__class__=au;var dV=zpp_nape.util.ZPP_Set_ZPP_Body=function(){this.colour=0;this.parent=null;this.next=null;this.prev=null;this.data=null;this.swapped=null;this.lt=null};dV.__name__=["zpp_nape","util","ZPP_Set_ZPP_Body"];dV.prototype.free=function(){this.data=null;this.lt=null;this.swapped=null};dV.prototype.alloc=function(){};dV.prototype.lt=null;dV.prototype.swapped=null;dV.prototype.data=null;dV.prototype.prev=null;dV.prototype.next=null;dV.prototype.parent=null;dV.prototype.colour=null;dV.prototype.verify=function(){if(!this.empty()){var ed=this.parent;while(ed.prev!=null){ed=ed.prev}while(ed!=null){var eb=ed.data;var ee=true;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!ee){if(!this.lt(eb,ea)&&this.lt(ea,eb)){return false}}else{if(eb==ea){ee=false}else{if(!this.lt(ea,eb)&&this.lt(eb,ea)){return false}}}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}if(ed.next!=null){ed=ed.next;while(ed.prev!=null){ed=ed.prev}}else{while(ed.parent!=null&&ed==ed.parent.next){ed=ed.parent}ed=ed.parent}}}return true};dV.prototype.empty=function(){return this.parent==null};dV.prototype.singular=function(){if(this.parent!=null&&this.parent.prev==null){return this.parent.next==null}else{return false}};dV.prototype.size=function(){var ea=0;if(!this.empty()){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}while(eb!=null){++ea;if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{while(eb.parent!=null&&eb==eb.parent.next){eb=eb.parent}eb=eb.parent}}}return ea};dV.prototype.has=function(ea){return this.find(ea)!=null};dV.prototype.find=function(ea){var eb=this.parent;while(eb!=null&&eb.data!=ea){if(this.lt(ea,eb.data)){eb=eb.prev}else{eb=eb.next}}return eb};dV.prototype.has_weak=function(ea){return this.find_weak(ea)!=null};dV.prototype.find_weak=function(ea){var eb=this.parent;while(eb!=null){if(this.lt(ea,eb.data)){eb=eb.prev}else{if(this.lt(eb.data,ea)){eb=eb.next}else{break}}}return eb};dV.prototype.lower_bound=function(ed){var eb=null;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!this.lt(ea,ed)){eb=ea;break}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}return eb};dV.prototype.first=function(){var ea=this.parent;while(ea.prev!=null){ea=ea.prev}return ea.data};dV.prototype.pop_front=function(){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}var ea=eb.data;this.remove_node(eb);return ea};dV.prototype.remove=function(ea){this.remove_node(this.find(ea))};dV.prototype.successor_node=function(eb){if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.prev!=ea){ea=eb;eb=eb.parent}}return eb};dV.prototype.predecessor_node=function(eb){if(eb.prev!=null){eb=eb.prev;while(eb.next!=null){eb=eb.next}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.next!=ea){ea=eb;eb=eb.parent}}return eb};dV.prototype.successor=function(eb){var ea=this.successor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};dV.prototype.predecessor=function(eb){var ea=this.predecessor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};dV.prototype.remove_node=function(eh){if(eh.next!=null&&eh.prev!=null){var ec=eh.next;while(ec.prev!=null){ec=ec.prev}var ei=eh.data;eh.data=ec.data;ec.data=ei;if(this.swapped!=null){this.swapped(eh.data,ec.data)}eh=ec}var eb=eh.prev==null?eh.next:eh.prev;if(eh.colour==1){if(eh.prev!=null||eh.next!=null){eb.colour=1}else{if(eh.parent!=null){var eg=eh.parent;while(true){eg.colour++;eg.prev.colour--;eg.next.colour--;var ee=eg.prev;if(ee.colour==-1){this.__fix_neg_red(ee);break}else{if(ee.colour==0){if(ee.prev!=null&&ee.prev.colour==0){this.__fix_dbl_red(ee.prev);break}if(ee.next!=null&&ee.next.colour==0){this.__fix_dbl_red(ee.next);break}}}var ed=eg.next;if(ed.colour==-1){this.__fix_neg_red(ed);break}else{if(ed.colour==0){if(ed.prev!=null&&ed.prev.colour==0){this.__fix_dbl_red(ed.prev);break}if(ed.next!=null&&ed.next.colour==0){this.__fix_dbl_red(ed.next);break}}}if(eg.colour==2){if(eg.parent==null){eg.colour=1}else{eg=eg.parent;continue}}break}}}}var ef=eh.parent;if(ef==null){this.parent=eb}else{if(ef.prev==eh){ef.prev=eb}else{ef.next=eb}}if(eb!=null){eb.parent=ef}eh.parent=eh.prev=eh.next=null;var ea=eh;ea.data=null;ea.lt=null;ea.swapped=null;ea.next=dV.zpp_pool;dV.zpp_pool=ea};dV.prototype.clear=function(){if(this.parent!=null){var ec=this.parent;while(ec!=null){if(ec.prev!=null){ec=ec.prev}else{if(ec.next!=null){ec=ec.next}else{var ea=ec.parent;if(ea!=null){if(ec==ea.prev){ea.prev=null}else{ea.next=null}ec.parent=null}var eb=ec;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=dV.zpp_pool;dV.zpp_pool=eb;ec=ea}}}this.parent=null}};dV.prototype.clear_with=function(ea){if(this.parent==null){return}else{var ed=this.parent;while(ed!=null){if(ed.prev!=null){ed=ed.prev}else{if(ed.next!=null){ed=ed.next}else{ea(ed.data);var eb=ed.parent;if(eb!=null){if(ed==eb.prev){eb.prev=null}else{eb.next=null}ed.parent=null}var ec=ed;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=dV.zpp_pool;dV.zpp_pool=ec;ed=eb}}}this.parent=null}};dV.prototype.clear_node=function(ec,ea){ea(ec.data);var eb=ec.parent;if(eb!=null){if(ec==eb.prev){eb.prev=null}else{eb.next=null}ec.parent=null}ec.data=null;ec.lt=null;ec.swapped=null;ec.next=dV.zpp_pool;dV.zpp_pool=ec;return eb};dV.prototype.__fix_neg_red=function(ee){var ek=ee.parent;var ec;if(ek.prev==ee){var ea=ee.prev;var ei=ee.next;var el=ei.prev;var eg=ei.next;ea.colour=0;ee.colour=ek.colour=1;ee.next=el;if(el!=null){el.parent=ee}var em=ek.data;ek.data=ei.data;ei.data=em;if(this.swapped!=null){this.swapped(ek.data,ei.data)}ei.prev=eg;if(eg!=null){eg.parent=ei}ei.next=ek.next;if(ek.next!=null){ek.next.parent=ei}ek.next=ei;if(ei!=null){ei.parent=ek}ec=ea}else{var ed=ee.next;var eb=ee.prev;var ej=eb.next;var eh=eb.prev;ed.colour=0;ee.colour=ek.colour=1;ee.prev=ej;if(ej!=null){ej.parent=ee}var ef=ek.data;ek.data=eb.data;eb.data=ef;if(this.swapped!=null){this.swapped(ek.data,eb.data)}eb.next=eh;if(eh!=null){eh.parent=eb}eb.prev=ek.prev;if(ek.prev!=null){ek.prev.parent=eb}ek.prev=eb;if(eb!=null){eb.parent=ek}ec=ed}if(ec.prev!=null&&ec.prev.colour==0){this.__fix_dbl_red(ec.prev)}else{if(ec.next!=null&&ec.next.colour==0){this.__fix_dbl_red(ec.next)}}};dV.prototype.__fix_dbl_red=function(ek){while(true){var ej=ek.parent;var ee=ej.parent;if(ee==null){ej.colour=1;break}var ei;var eh;var eg;var ef;var ed;var ec;var eb;if(ej==ee.prev){eg=ee;eb=ee.next;if(ek==ej.prev){ei=ek;eh=ej;ef=ek.prev;ed=ek.next;ec=ej.next}else{ei=ej;eh=ek;ef=ej.prev;ed=ek.prev;ec=ek.next}}else{ei=ee;ef=ee.prev;if(ek==ej.prev){eh=ek;eg=ej;ed=ek.prev;ec=ek.next;eb=ej.next}else{eh=ej;eg=ek;ed=ej.prev;ec=ek.prev;eb=ek.next}}var ea=ee.parent;if(ea==null){this.parent=eh}else{if(ea.prev==ee){ea.prev=eh}else{ea.next=eh}}if(eh!=null){eh.parent=ea}ei.prev=ef;if(ef!=null){ef.parent=ei}ei.next=ed;if(ed!=null){ed.parent=ei}eh.prev=ei;if(ei!=null){ei.parent=eh}eh.next=eg;if(eg!=null){eg.parent=eh}eg.prev=ec;if(ec!=null){ec.parent=eg}eg.next=eb;if(eb!=null){eb.parent=eg}eh.colour=ee.colour-1;ei.colour=1;eg.colour=1;if(eh==this.parent){this.parent.colour=1}else{if(eh.colour==0&&eh.parent.colour==0){ek=eh;continue}}break}};dV.prototype.try_insert_bool=function(eb){var ea=null;var ec=null;if(this.parent==null){if(dV.zpp_pool==null){ea=new dV()}else{ea=dV.zpp_pool;dV.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(dV.zpp_pool==null){ea=new dV()}else{ea=dV.zpp_pool;dV.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(dV.zpp_pool==null){ea=new dV()}else{ea=dV.zpp_pool;dV.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return false}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return true}};dV.prototype.try_insert=function(eb){var ea=null;var ec=null;if(this.parent==null){if(dV.zpp_pool==null){ea=new dV()}else{ea=dV.zpp_pool;dV.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(dV.zpp_pool==null){ea=new dV()}else{ea=dV.zpp_pool;dV.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(dV.zpp_pool==null){ea=new dV()}else{ea=dV.zpp_pool;dV.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return ec}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea}};dV.prototype.insert=function(eb){var ea;if(dV.zpp_pool==null){ea=new dV()}else{ea=dV.zpp_pool;dV.zpp_pool=ea.next;ea.next=null}ea.data=eb;if(this.parent==null){this.parent=ea}else{var ec=this.parent;while(true){if(this.lt(ea.data,ec.data)){if(ec.prev==null){ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(ec.next==null){ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}}}if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea};dV.prototype.__class__=dV;var p=zpp_nape.util.ZPP_Set_ZPP_CbSetPair=function(){this.colour=0;this.parent=null;this.next=null;this.prev=null;this.data=null;this.swapped=null;this.lt=null};p.__name__=["zpp_nape","util","ZPP_Set_ZPP_CbSetPair"];p.prototype.free=function(){this.data=null;this.lt=null;this.swapped=null};p.prototype.alloc=function(){};p.prototype.lt=null;p.prototype.swapped=null;p.prototype.data=null;p.prototype.prev=null;p.prototype.next=null;p.prototype.parent=null;p.prototype.colour=null;p.prototype.verify=function(){if(!this.empty()){var ed=this.parent;while(ed.prev!=null){ed=ed.prev}while(ed!=null){var eb=ed.data;var ee=true;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!ee){if(!this.lt(eb,ea)&&this.lt(ea,eb)){return false}}else{if(eb==ea){ee=false}else{if(!this.lt(ea,eb)&&this.lt(eb,ea)){return false}}}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}if(ed.next!=null){ed=ed.next;while(ed.prev!=null){ed=ed.prev}}else{while(ed.parent!=null&&ed==ed.parent.next){ed=ed.parent}ed=ed.parent}}}return true};p.prototype.empty=function(){return this.parent==null};p.prototype.singular=function(){if(this.parent!=null&&this.parent.prev==null){return this.parent.next==null}else{return false}};p.prototype.size=function(){var ea=0;if(!this.empty()){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}while(eb!=null){++ea;if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{while(eb.parent!=null&&eb==eb.parent.next){eb=eb.parent}eb=eb.parent}}}return ea};p.prototype.has=function(ea){return this.find(ea)!=null};p.prototype.find=function(ea){var eb=this.parent;while(eb!=null&&eb.data!=ea){if(this.lt(ea,eb.data)){eb=eb.prev}else{eb=eb.next}}return eb};p.prototype.has_weak=function(ea){return this.find_weak(ea)!=null};p.prototype.find_weak=function(ea){var eb=this.parent;while(eb!=null){if(this.lt(ea,eb.data)){eb=eb.prev}else{if(this.lt(eb.data,ea)){eb=eb.next}else{break}}}return eb};p.prototype.lower_bound=function(ed){var eb=null;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!this.lt(ea,ed)){eb=ea;break}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}return eb};p.prototype.first=function(){var ea=this.parent;while(ea.prev!=null){ea=ea.prev}return ea.data};p.prototype.pop_front=function(){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}var ea=eb.data;this.remove_node(eb);return ea};p.prototype.remove=function(ea){this.remove_node(this.find(ea))};p.prototype.successor_node=function(eb){if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.prev!=ea){ea=eb;eb=eb.parent}}return eb};p.prototype.predecessor_node=function(eb){if(eb.prev!=null){eb=eb.prev;while(eb.next!=null){eb=eb.next}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.next!=ea){ea=eb;eb=eb.parent}}return eb};p.prototype.successor=function(eb){var ea=this.successor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};p.prototype.predecessor=function(eb){var ea=this.predecessor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};p.prototype.remove_node=function(eh){if(eh.next!=null&&eh.prev!=null){var ec=eh.next;while(ec.prev!=null){ec=ec.prev}var ei=eh.data;eh.data=ec.data;ec.data=ei;if(this.swapped!=null){this.swapped(eh.data,ec.data)}eh=ec}var eb=eh.prev==null?eh.next:eh.prev;if(eh.colour==1){if(eh.prev!=null||eh.next!=null){eb.colour=1}else{if(eh.parent!=null){var eg=eh.parent;while(true){eg.colour++;eg.prev.colour--;eg.next.colour--;var ee=eg.prev;if(ee.colour==-1){this.__fix_neg_red(ee);break}else{if(ee.colour==0){if(ee.prev!=null&&ee.prev.colour==0){this.__fix_dbl_red(ee.prev);break}if(ee.next!=null&&ee.next.colour==0){this.__fix_dbl_red(ee.next);break}}}var ed=eg.next;if(ed.colour==-1){this.__fix_neg_red(ed);break}else{if(ed.colour==0){if(ed.prev!=null&&ed.prev.colour==0){this.__fix_dbl_red(ed.prev);break}if(ed.next!=null&&ed.next.colour==0){this.__fix_dbl_red(ed.next);break}}}if(eg.colour==2){if(eg.parent==null){eg.colour=1}else{eg=eg.parent;continue}}break}}}}var ef=eh.parent;if(ef==null){this.parent=eb}else{if(ef.prev==eh){ef.prev=eb}else{ef.next=eb}}if(eb!=null){eb.parent=ef}eh.parent=eh.prev=eh.next=null;var ea=eh;ea.data=null;ea.lt=null;ea.swapped=null;ea.next=p.zpp_pool;p.zpp_pool=ea};p.prototype.clear=function(){if(this.parent!=null){var ec=this.parent;while(ec!=null){if(ec.prev!=null){ec=ec.prev}else{if(ec.next!=null){ec=ec.next}else{var ea=ec.parent;if(ea!=null){if(ec==ea.prev){ea.prev=null}else{ea.next=null}ec.parent=null}var eb=ec;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=p.zpp_pool;p.zpp_pool=eb;ec=ea}}}this.parent=null}};p.prototype.clear_with=function(ea){if(this.parent==null){return}else{var ed=this.parent;while(ed!=null){if(ed.prev!=null){ed=ed.prev}else{if(ed.next!=null){ed=ed.next}else{ea(ed.data);var eb=ed.parent;if(eb!=null){if(ed==eb.prev){eb.prev=null}else{eb.next=null}ed.parent=null}var ec=ed;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=p.zpp_pool;p.zpp_pool=ec;ed=eb}}}this.parent=null}};p.prototype.clear_node=function(ec,ea){ea(ec.data);var eb=ec.parent;if(eb!=null){if(ec==eb.prev){eb.prev=null}else{eb.next=null}ec.parent=null}ec.data=null;ec.lt=null;ec.swapped=null;ec.next=p.zpp_pool;p.zpp_pool=ec;return eb};p.prototype.__fix_neg_red=function(ee){var ek=ee.parent;var ec;if(ek.prev==ee){var ea=ee.prev;var ei=ee.next;var el=ei.prev;var eg=ei.next;ea.colour=0;ee.colour=ek.colour=1;ee.next=el;if(el!=null){el.parent=ee}var em=ek.data;ek.data=ei.data;ei.data=em;if(this.swapped!=null){this.swapped(ek.data,ei.data)}ei.prev=eg;if(eg!=null){eg.parent=ei}ei.next=ek.next;if(ek.next!=null){ek.next.parent=ei}ek.next=ei;if(ei!=null){ei.parent=ek}ec=ea}else{var ed=ee.next;var eb=ee.prev;var ej=eb.next;var eh=eb.prev;ed.colour=0;ee.colour=ek.colour=1;ee.prev=ej;if(ej!=null){ej.parent=ee}var ef=ek.data;ek.data=eb.data;eb.data=ef;if(this.swapped!=null){this.swapped(ek.data,eb.data)}eb.next=eh;if(eh!=null){eh.parent=eb}eb.prev=ek.prev;if(ek.prev!=null){ek.prev.parent=eb}ek.prev=eb;if(eb!=null){eb.parent=ek}ec=ed}if(ec.prev!=null&&ec.prev.colour==0){this.__fix_dbl_red(ec.prev)}else{if(ec.next!=null&&ec.next.colour==0){this.__fix_dbl_red(ec.next)}}};p.prototype.__fix_dbl_red=function(ek){while(true){var ej=ek.parent;var ee=ej.parent;if(ee==null){ej.colour=1;break}var ei;var eh;var eg;var ef;var ed;var ec;var eb;if(ej==ee.prev){eg=ee;eb=ee.next;if(ek==ej.prev){ei=ek;eh=ej;ef=ek.prev;ed=ek.next;ec=ej.next}else{ei=ej;eh=ek;ef=ej.prev;ed=ek.prev;ec=ek.next}}else{ei=ee;ef=ee.prev;if(ek==ej.prev){eh=ek;eg=ej;ed=ek.prev;ec=ek.next;eb=ej.next}else{eh=ej;eg=ek;ed=ej.prev;ec=ek.prev;eb=ek.next}}var ea=ee.parent;if(ea==null){this.parent=eh}else{if(ea.prev==ee){ea.prev=eh}else{ea.next=eh}}if(eh!=null){eh.parent=ea}ei.prev=ef;if(ef!=null){ef.parent=ei}ei.next=ed;if(ed!=null){ed.parent=ei}eh.prev=ei;if(ei!=null){ei.parent=eh}eh.next=eg;if(eg!=null){eg.parent=eh}eg.prev=ec;if(ec!=null){ec.parent=eg}eg.next=eb;if(eb!=null){eb.parent=eg}eh.colour=ee.colour-1;ei.colour=1;eg.colour=1;if(eh==this.parent){this.parent.colour=1}else{if(eh.colour==0&&eh.parent.colour==0){ek=eh;continue}}break}};p.prototype.try_insert_bool=function(eb){var ea=null;var ec=null;if(this.parent==null){if(p.zpp_pool==null){ea=new p()}else{ea=p.zpp_pool;p.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(p.zpp_pool==null){ea=new p()}else{ea=p.zpp_pool;p.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(p.zpp_pool==null){ea=new p()}else{ea=p.zpp_pool;p.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return false}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return true}};p.prototype.try_insert=function(eb){var ea=null;var ec=null;if(this.parent==null){if(p.zpp_pool==null){ea=new p()}else{ea=p.zpp_pool;p.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(p.zpp_pool==null){ea=new p()}else{ea=p.zpp_pool;p.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(p.zpp_pool==null){ea=new p()}else{ea=p.zpp_pool;p.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return ec}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea}};p.prototype.insert=function(eb){var ea;if(p.zpp_pool==null){ea=new p()}else{ea=p.zpp_pool;p.zpp_pool=ea.next;ea.next=null}ea.data=eb;if(this.parent==null){this.parent=ea}else{var ec=this.parent;while(true){if(this.lt(ea.data,ec.data)){if(ec.prev==null){ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(ec.next==null){ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}}}if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea};p.prototype.__class__=p;var b8=zpp_nape.util.ZPP_Set_ZPP_PartitionVertex=function(){this.colour=0;this.parent=null;this.next=null;this.prev=null;this.data=null;this.swapped=null;this.lt=null};b8.__name__=["zpp_nape","util","ZPP_Set_ZPP_PartitionVertex"];b8.prototype.free=function(){this.data=null;this.lt=null;this.swapped=null};b8.prototype.alloc=function(){};b8.prototype.lt=null;b8.prototype.swapped=null;b8.prototype.data=null;b8.prototype.prev=null;b8.prototype.next=null;b8.prototype.parent=null;b8.prototype.colour=null;b8.prototype.verify=function(){if(!this.empty()){var ed=this.parent;while(ed.prev!=null){ed=ed.prev}while(ed!=null){var eb=ed.data;var ee=true;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!ee){if(!this.lt(eb,ea)&&this.lt(ea,eb)){return false}}else{if(eb==ea){ee=false}else{if(!this.lt(ea,eb)&&this.lt(eb,ea)){return false}}}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}if(ed.next!=null){ed=ed.next;while(ed.prev!=null){ed=ed.prev}}else{while(ed.parent!=null&&ed==ed.parent.next){ed=ed.parent}ed=ed.parent}}}return true};b8.prototype.empty=function(){return this.parent==null};b8.prototype.singular=function(){if(this.parent!=null&&this.parent.prev==null){return this.parent.next==null}else{return false}};b8.prototype.size=function(){var ea=0;if(!this.empty()){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}while(eb!=null){++ea;if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{while(eb.parent!=null&&eb==eb.parent.next){eb=eb.parent}eb=eb.parent}}}return ea};b8.prototype.has=function(ea){return this.find(ea)!=null};b8.prototype.find=function(ea){var eb=this.parent;while(eb!=null&&eb.data!=ea){if(this.lt(ea,eb.data)){eb=eb.prev}else{eb=eb.next}}return eb};b8.prototype.has_weak=function(ea){return this.find_weak(ea)!=null};b8.prototype.find_weak=function(ea){var eb=this.parent;while(eb!=null){if(this.lt(ea,eb.data)){eb=eb.prev}else{if(this.lt(eb.data,ea)){eb=eb.next}else{break}}}return eb};b8.prototype.lower_bound=function(ed){var eb=null;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!this.lt(ea,ed)){eb=ea;break}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}return eb};b8.prototype.first=function(){var ea=this.parent;while(ea.prev!=null){ea=ea.prev}return ea.data};b8.prototype.pop_front=function(){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}var ea=eb.data;this.remove_node(eb);return ea};b8.prototype.remove=function(ea){this.remove_node(this.find(ea))};b8.prototype.successor_node=function(eb){if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.prev!=ea){ea=eb;eb=eb.parent}}return eb};b8.prototype.predecessor_node=function(eb){if(eb.prev!=null){eb=eb.prev;while(eb.next!=null){eb=eb.next}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.next!=ea){ea=eb;eb=eb.parent}}return eb};b8.prototype.successor=function(eb){var ea=this.successor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};b8.prototype.predecessor=function(eb){var ea=this.predecessor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};b8.prototype.remove_node=function(eh){if(eh.next!=null&&eh.prev!=null){var ec=eh.next;while(ec.prev!=null){ec=ec.prev}var ei=eh.data;eh.data=ec.data;ec.data=ei;if(this.swapped!=null){this.swapped(eh.data,ec.data)}eh=ec}var eb=eh.prev==null?eh.next:eh.prev;if(eh.colour==1){if(eh.prev!=null||eh.next!=null){eb.colour=1}else{if(eh.parent!=null){var eg=eh.parent;while(true){eg.colour++;eg.prev.colour--;eg.next.colour--;var ee=eg.prev;if(ee.colour==-1){this.__fix_neg_red(ee);break}else{if(ee.colour==0){if(ee.prev!=null&&ee.prev.colour==0){this.__fix_dbl_red(ee.prev);break}if(ee.next!=null&&ee.next.colour==0){this.__fix_dbl_red(ee.next);break}}}var ed=eg.next;if(ed.colour==-1){this.__fix_neg_red(ed);break}else{if(ed.colour==0){if(ed.prev!=null&&ed.prev.colour==0){this.__fix_dbl_red(ed.prev);break}if(ed.next!=null&&ed.next.colour==0){this.__fix_dbl_red(ed.next);break}}}if(eg.colour==2){if(eg.parent==null){eg.colour=1}else{eg=eg.parent;continue}}break}}}}var ef=eh.parent;if(ef==null){this.parent=eb}else{if(ef.prev==eh){ef.prev=eb}else{ef.next=eb}}if(eb!=null){eb.parent=ef}eh.parent=eh.prev=eh.next=null;var ea=eh;ea.data=null;ea.lt=null;ea.swapped=null;ea.next=b8.zpp_pool;b8.zpp_pool=ea};b8.prototype.clear=function(){if(this.parent!=null){var ec=this.parent;while(ec!=null){if(ec.prev!=null){ec=ec.prev}else{if(ec.next!=null){ec=ec.next}else{var ea=ec.parent;if(ea!=null){if(ec==ea.prev){ea.prev=null}else{ea.next=null}ec.parent=null}var eb=ec;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=b8.zpp_pool;b8.zpp_pool=eb;ec=ea}}}this.parent=null}};b8.prototype.clear_with=function(ea){if(this.parent==null){return}else{var ed=this.parent;while(ed!=null){if(ed.prev!=null){ed=ed.prev}else{if(ed.next!=null){ed=ed.next}else{ea(ed.data);var eb=ed.parent;if(eb!=null){if(ed==eb.prev){eb.prev=null}else{eb.next=null}ed.parent=null}var ec=ed;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=b8.zpp_pool;b8.zpp_pool=ec;ed=eb}}}this.parent=null}};b8.prototype.clear_node=function(ec,ea){ea(ec.data);var eb=ec.parent;if(eb!=null){if(ec==eb.prev){eb.prev=null}else{eb.next=null}ec.parent=null}ec.data=null;ec.lt=null;ec.swapped=null;ec.next=b8.zpp_pool;b8.zpp_pool=ec;return eb};b8.prototype.__fix_neg_red=function(ee){var ek=ee.parent;var ec;if(ek.prev==ee){var ea=ee.prev;var ei=ee.next;var el=ei.prev;var eg=ei.next;ea.colour=0;ee.colour=ek.colour=1;ee.next=el;if(el!=null){el.parent=ee}var em=ek.data;ek.data=ei.data;ei.data=em;if(this.swapped!=null){this.swapped(ek.data,ei.data)}ei.prev=eg;if(eg!=null){eg.parent=ei}ei.next=ek.next;if(ek.next!=null){ek.next.parent=ei}ek.next=ei;if(ei!=null){ei.parent=ek}ec=ea}else{var ed=ee.next;var eb=ee.prev;var ej=eb.next;var eh=eb.prev;ed.colour=0;ee.colour=ek.colour=1;ee.prev=ej;if(ej!=null){ej.parent=ee}var ef=ek.data;ek.data=eb.data;eb.data=ef;if(this.swapped!=null){this.swapped(ek.data,eb.data)}eb.next=eh;if(eh!=null){eh.parent=eb}eb.prev=ek.prev;if(ek.prev!=null){ek.prev.parent=eb}ek.prev=eb;if(eb!=null){eb.parent=ek}ec=ed}if(ec.prev!=null&&ec.prev.colour==0){this.__fix_dbl_red(ec.prev)}else{if(ec.next!=null&&ec.next.colour==0){this.__fix_dbl_red(ec.next)}}};b8.prototype.__fix_dbl_red=function(ek){while(true){var ej=ek.parent;var ee=ej.parent;if(ee==null){ej.colour=1;break}var ei;var eh;var eg;var ef;var ed;var ec;var eb;if(ej==ee.prev){eg=ee;eb=ee.next;if(ek==ej.prev){ei=ek;eh=ej;ef=ek.prev;ed=ek.next;ec=ej.next}else{ei=ej;eh=ek;ef=ej.prev;ed=ek.prev;ec=ek.next}}else{ei=ee;ef=ee.prev;if(ek==ej.prev){eh=ek;eg=ej;ed=ek.prev;ec=ek.next;eb=ej.next}else{eh=ej;eg=ek;ed=ej.prev;ec=ek.prev;eb=ek.next}}var ea=ee.parent;if(ea==null){this.parent=eh}else{if(ea.prev==ee){ea.prev=eh}else{ea.next=eh}}if(eh!=null){eh.parent=ea}ei.prev=ef;if(ef!=null){ef.parent=ei}ei.next=ed;if(ed!=null){ed.parent=ei}eh.prev=ei;if(ei!=null){ei.parent=eh}eh.next=eg;if(eg!=null){eg.parent=eh}eg.prev=ec;if(ec!=null){ec.parent=eg}eg.next=eb;if(eb!=null){eb.parent=eg}eh.colour=ee.colour-1;ei.colour=1;eg.colour=1;if(eh==this.parent){this.parent.colour=1}else{if(eh.colour==0&&eh.parent.colour==0){ek=eh;continue}}break}};b8.prototype.try_insert_bool=function(eb){var ea=null;var ec=null;if(this.parent==null){if(b8.zpp_pool==null){ea=new b8()}else{ea=b8.zpp_pool;b8.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(b8.zpp_pool==null){ea=new b8()}else{ea=b8.zpp_pool;b8.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(b8.zpp_pool==null){ea=new b8()}else{ea=b8.zpp_pool;b8.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return false}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return true}};b8.prototype.try_insert=function(eb){var ea=null;var ec=null;if(this.parent==null){if(b8.zpp_pool==null){ea=new b8()}else{ea=b8.zpp_pool;b8.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(b8.zpp_pool==null){ea=new b8()}else{ea=b8.zpp_pool;b8.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(b8.zpp_pool==null){ea=new b8()}else{ea=b8.zpp_pool;b8.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return ec}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea}};b8.prototype.insert=function(eb){var ea;if(b8.zpp_pool==null){ea=new b8()}else{ea=b8.zpp_pool;b8.zpp_pool=ea.next;ea.next=null}ea.data=eb;if(this.parent==null){this.parent=ea}else{var ec=this.parent;while(true){if(this.lt(ea.data,ec.data)){if(ec.prev==null){ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(ec.next==null){ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}}}if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea};b8.prototype.__class__=b8;var am=zpp_nape.util.ZPP_Set_ZPP_PartitionPair=function(){this.colour=0;this.parent=null;this.next=null;this.prev=null;this.data=null;this.swapped=null;this.lt=null};am.__name__=["zpp_nape","util","ZPP_Set_ZPP_PartitionPair"];am.prototype.free=function(){this.data=null;this.lt=null;this.swapped=null};am.prototype.alloc=function(){};am.prototype.lt=null;am.prototype.swapped=null;am.prototype.data=null;am.prototype.prev=null;am.prototype.next=null;am.prototype.parent=null;am.prototype.colour=null;am.prototype.verify=function(){if(!this.empty()){var ed=this.parent;while(ed.prev!=null){ed=ed.prev}while(ed!=null){var eb=ed.data;var ee=true;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!ee){if(!this.lt(eb,ea)&&this.lt(ea,eb)){return false}}else{if(eb==ea){ee=false}else{if(!this.lt(ea,eb)&&this.lt(eb,ea)){return false}}}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}if(ed.next!=null){ed=ed.next;while(ed.prev!=null){ed=ed.prev}}else{while(ed.parent!=null&&ed==ed.parent.next){ed=ed.parent}ed=ed.parent}}}return true};am.prototype.empty=function(){return this.parent==null};am.prototype.singular=function(){if(this.parent!=null&&this.parent.prev==null){return this.parent.next==null}else{return false}};am.prototype.size=function(){var ea=0;if(!this.empty()){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}while(eb!=null){++ea;if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{while(eb.parent!=null&&eb==eb.parent.next){eb=eb.parent}eb=eb.parent}}}return ea};am.prototype.has=function(ea){return this.find(ea)!=null};am.prototype.find=function(ea){var eb=this.parent;while(eb!=null&&eb.data!=ea){if(this.lt(ea,eb.data)){eb=eb.prev}else{eb=eb.next}}return eb};am.prototype.has_weak=function(ea){return this.find_weak(ea)!=null};am.prototype.find_weak=function(ea){var eb=this.parent;while(eb!=null){if(this.lt(ea,eb.data)){eb=eb.prev}else{if(this.lt(eb.data,ea)){eb=eb.next}else{break}}}return eb};am.prototype.lower_bound=function(ed){var eb=null;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!this.lt(ea,ed)){eb=ea;break}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}return eb};am.prototype.first=function(){var ea=this.parent;while(ea.prev!=null){ea=ea.prev}return ea.data};am.prototype.pop_front=function(){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}var ea=eb.data;this.remove_node(eb);return ea};am.prototype.remove=function(ea){this.remove_node(this.find(ea))};am.prototype.successor_node=function(eb){if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.prev!=ea){ea=eb;eb=eb.parent}}return eb};am.prototype.predecessor_node=function(eb){if(eb.prev!=null){eb=eb.prev;while(eb.next!=null){eb=eb.next}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.next!=ea){ea=eb;eb=eb.parent}}return eb};am.prototype.successor=function(eb){var ea=this.successor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};am.prototype.predecessor=function(eb){var ea=this.predecessor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};am.prototype.remove_node=function(eh){if(eh.next!=null&&eh.prev!=null){var ec=eh.next;while(ec.prev!=null){ec=ec.prev}var ei=eh.data;eh.data=ec.data;ec.data=ei;if(this.swapped!=null){this.swapped(eh.data,ec.data)}eh=ec}var eb=eh.prev==null?eh.next:eh.prev;if(eh.colour==1){if(eh.prev!=null||eh.next!=null){eb.colour=1}else{if(eh.parent!=null){var eg=eh.parent;while(true){eg.colour++;eg.prev.colour--;eg.next.colour--;var ee=eg.prev;if(ee.colour==-1){this.__fix_neg_red(ee);break}else{if(ee.colour==0){if(ee.prev!=null&&ee.prev.colour==0){this.__fix_dbl_red(ee.prev);break}if(ee.next!=null&&ee.next.colour==0){this.__fix_dbl_red(ee.next);break}}}var ed=eg.next;if(ed.colour==-1){this.__fix_neg_red(ed);break}else{if(ed.colour==0){if(ed.prev!=null&&ed.prev.colour==0){this.__fix_dbl_red(ed.prev);break}if(ed.next!=null&&ed.next.colour==0){this.__fix_dbl_red(ed.next);break}}}if(eg.colour==2){if(eg.parent==null){eg.colour=1}else{eg=eg.parent;continue}}break}}}}var ef=eh.parent;if(ef==null){this.parent=eb}else{if(ef.prev==eh){ef.prev=eb}else{ef.next=eb}}if(eb!=null){eb.parent=ef}eh.parent=eh.prev=eh.next=null;var ea=eh;ea.data=null;ea.lt=null;ea.swapped=null;ea.next=am.zpp_pool;am.zpp_pool=ea};am.prototype.clear=function(){if(this.parent!=null){var ec=this.parent;while(ec!=null){if(ec.prev!=null){ec=ec.prev}else{if(ec.next!=null){ec=ec.next}else{var ea=ec.parent;if(ea!=null){if(ec==ea.prev){ea.prev=null}else{ea.next=null}ec.parent=null}var eb=ec;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=am.zpp_pool;am.zpp_pool=eb;ec=ea}}}this.parent=null}};am.prototype.clear_with=function(ea){if(this.parent==null){return}else{var ed=this.parent;while(ed!=null){if(ed.prev!=null){ed=ed.prev}else{if(ed.next!=null){ed=ed.next}else{ea(ed.data);var eb=ed.parent;if(eb!=null){if(ed==eb.prev){eb.prev=null}else{eb.next=null}ed.parent=null}var ec=ed;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=am.zpp_pool;am.zpp_pool=ec;ed=eb}}}this.parent=null}};am.prototype.clear_node=function(ec,ea){ea(ec.data);var eb=ec.parent;if(eb!=null){if(ec==eb.prev){eb.prev=null}else{eb.next=null}ec.parent=null}ec.data=null;ec.lt=null;ec.swapped=null;ec.next=am.zpp_pool;am.zpp_pool=ec;return eb};am.prototype.__fix_neg_red=function(ee){var ek=ee.parent;var ec;if(ek.prev==ee){var ea=ee.prev;var ei=ee.next;var el=ei.prev;var eg=ei.next;ea.colour=0;ee.colour=ek.colour=1;ee.next=el;if(el!=null){el.parent=ee}var em=ek.data;ek.data=ei.data;ei.data=em;if(this.swapped!=null){this.swapped(ek.data,ei.data)}ei.prev=eg;if(eg!=null){eg.parent=ei}ei.next=ek.next;if(ek.next!=null){ek.next.parent=ei}ek.next=ei;if(ei!=null){ei.parent=ek}ec=ea}else{var ed=ee.next;var eb=ee.prev;var ej=eb.next;var eh=eb.prev;ed.colour=0;ee.colour=ek.colour=1;ee.prev=ej;if(ej!=null){ej.parent=ee}var ef=ek.data;ek.data=eb.data;eb.data=ef;if(this.swapped!=null){this.swapped(ek.data,eb.data)}eb.next=eh;if(eh!=null){eh.parent=eb}eb.prev=ek.prev;if(ek.prev!=null){ek.prev.parent=eb}ek.prev=eb;if(eb!=null){eb.parent=ek}ec=ed}if(ec.prev!=null&&ec.prev.colour==0){this.__fix_dbl_red(ec.prev)}else{if(ec.next!=null&&ec.next.colour==0){this.__fix_dbl_red(ec.next)}}};am.prototype.__fix_dbl_red=function(ek){while(true){var ej=ek.parent;var ee=ej.parent;if(ee==null){ej.colour=1;break}var ei;var eh;var eg;var ef;var ed;var ec;var eb;if(ej==ee.prev){eg=ee;eb=ee.next;if(ek==ej.prev){ei=ek;eh=ej;ef=ek.prev;ed=ek.next;ec=ej.next}else{ei=ej;eh=ek;ef=ej.prev;ed=ek.prev;ec=ek.next}}else{ei=ee;ef=ee.prev;if(ek==ej.prev){eh=ek;eg=ej;ed=ek.prev;ec=ek.next;eb=ej.next}else{eh=ej;eg=ek;ed=ej.prev;ec=ek.prev;eb=ek.next}}var ea=ee.parent;if(ea==null){this.parent=eh}else{if(ea.prev==ee){ea.prev=eh}else{ea.next=eh}}if(eh!=null){eh.parent=ea}ei.prev=ef;if(ef!=null){ef.parent=ei}ei.next=ed;if(ed!=null){ed.parent=ei}eh.prev=ei;if(ei!=null){ei.parent=eh}eh.next=eg;if(eg!=null){eg.parent=eh}eg.prev=ec;if(ec!=null){ec.parent=eg}eg.next=eb;if(eb!=null){eb.parent=eg}eh.colour=ee.colour-1;ei.colour=1;eg.colour=1;if(eh==this.parent){this.parent.colour=1}else{if(eh.colour==0&&eh.parent.colour==0){ek=eh;continue}}break}};am.prototype.try_insert_bool=function(eb){var ea=null;var ec=null;if(this.parent==null){if(am.zpp_pool==null){ea=new am()}else{ea=am.zpp_pool;am.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(am.zpp_pool==null){ea=new am()}else{ea=am.zpp_pool;am.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(am.zpp_pool==null){ea=new am()}else{ea=am.zpp_pool;am.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return false}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return true}};am.prototype.try_insert=function(eb){var ea=null;var ec=null;if(this.parent==null){if(am.zpp_pool==null){ea=new am()}else{ea=am.zpp_pool;am.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(am.zpp_pool==null){ea=new am()}else{ea=am.zpp_pool;am.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(am.zpp_pool==null){ea=new am()}else{ea=am.zpp_pool;am.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return ec}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea}};am.prototype.insert=function(eb){var ea;if(am.zpp_pool==null){ea=new am()}else{ea=am.zpp_pool;am.zpp_pool=ea.next;ea.next=null}ea.data=eb;if(this.parent==null){this.parent=ea}else{var ec=this.parent;while(true){if(this.lt(ea.data,ec.data)){if(ec.prev==null){ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(ec.next==null){ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}}}if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea};am.prototype.__class__=am;var bX=zpp_nape.util.ZPP_Set_ZPP_SimpleVert=function(){this.colour=0;this.parent=null;this.next=null;this.prev=null;this.data=null;this.swapped=null;this.lt=null};bX.__name__=["zpp_nape","util","ZPP_Set_ZPP_SimpleVert"];bX.prototype.free=function(){this.data=null;this.lt=null;this.swapped=null};bX.prototype.alloc=function(){};bX.prototype.lt=null;bX.prototype.swapped=null;bX.prototype.data=null;bX.prototype.prev=null;bX.prototype.next=null;bX.prototype.parent=null;bX.prototype.colour=null;bX.prototype.verify=function(){if(!this.empty()){var ed=this.parent;while(ed.prev!=null){ed=ed.prev}while(ed!=null){var eb=ed.data;var ee=true;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!ee){if(!this.lt(eb,ea)&&this.lt(ea,eb)){return false}}else{if(eb==ea){ee=false}else{if(!this.lt(ea,eb)&&this.lt(eb,ea)){return false}}}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}if(ed.next!=null){ed=ed.next;while(ed.prev!=null){ed=ed.prev}}else{while(ed.parent!=null&&ed==ed.parent.next){ed=ed.parent}ed=ed.parent}}}return true};bX.prototype.empty=function(){return this.parent==null};bX.prototype.singular=function(){if(this.parent!=null&&this.parent.prev==null){return this.parent.next==null}else{return false}};bX.prototype.size=function(){var ea=0;if(!this.empty()){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}while(eb!=null){++ea;if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{while(eb.parent!=null&&eb==eb.parent.next){eb=eb.parent}eb=eb.parent}}}return ea};bX.prototype.has=function(ea){return this.find(ea)!=null};bX.prototype.find=function(ea){var eb=this.parent;while(eb!=null&&eb.data!=ea){if(this.lt(ea,eb.data)){eb=eb.prev}else{eb=eb.next}}return eb};bX.prototype.has_weak=function(ea){return this.find_weak(ea)!=null};bX.prototype.find_weak=function(ea){var eb=this.parent;while(eb!=null){if(this.lt(ea,eb.data)){eb=eb.prev}else{if(this.lt(eb.data,ea)){eb=eb.next}else{break}}}return eb};bX.prototype.lower_bound=function(ed){var eb=null;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!this.lt(ea,ed)){eb=ea;break}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}return eb};bX.prototype.first=function(){var ea=this.parent;while(ea.prev!=null){ea=ea.prev}return ea.data};bX.prototype.pop_front=function(){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}var ea=eb.data;this.remove_node(eb);return ea};bX.prototype.remove=function(ea){this.remove_node(this.find(ea))};bX.prototype.successor_node=function(eb){if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.prev!=ea){ea=eb;eb=eb.parent}}return eb};bX.prototype.predecessor_node=function(eb){if(eb.prev!=null){eb=eb.prev;while(eb.next!=null){eb=eb.next}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.next!=ea){ea=eb;eb=eb.parent}}return eb};bX.prototype.successor=function(eb){var ea=this.successor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};bX.prototype.predecessor=function(eb){var ea=this.predecessor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};bX.prototype.remove_node=function(eh){if(eh.next!=null&&eh.prev!=null){var ec=eh.next;while(ec.prev!=null){ec=ec.prev}var ei=eh.data;eh.data=ec.data;ec.data=ei;if(this.swapped!=null){this.swapped(eh.data,ec.data)}eh=ec}var eb=eh.prev==null?eh.next:eh.prev;if(eh.colour==1){if(eh.prev!=null||eh.next!=null){eb.colour=1}else{if(eh.parent!=null){var eg=eh.parent;while(true){eg.colour++;eg.prev.colour--;eg.next.colour--;var ee=eg.prev;if(ee.colour==-1){this.__fix_neg_red(ee);break}else{if(ee.colour==0){if(ee.prev!=null&&ee.prev.colour==0){this.__fix_dbl_red(ee.prev);break}if(ee.next!=null&&ee.next.colour==0){this.__fix_dbl_red(ee.next);break}}}var ed=eg.next;if(ed.colour==-1){this.__fix_neg_red(ed);break}else{if(ed.colour==0){if(ed.prev!=null&&ed.prev.colour==0){this.__fix_dbl_red(ed.prev);break}if(ed.next!=null&&ed.next.colour==0){this.__fix_dbl_red(ed.next);break}}}if(eg.colour==2){if(eg.parent==null){eg.colour=1}else{eg=eg.parent;continue}}break}}}}var ef=eh.parent;if(ef==null){this.parent=eb}else{if(ef.prev==eh){ef.prev=eb}else{ef.next=eb}}if(eb!=null){eb.parent=ef}eh.parent=eh.prev=eh.next=null;var ea=eh;ea.data=null;ea.lt=null;ea.swapped=null;ea.next=bX.zpp_pool;bX.zpp_pool=ea};bX.prototype.clear=function(){if(this.parent!=null){var ec=this.parent;while(ec!=null){if(ec.prev!=null){ec=ec.prev}else{if(ec.next!=null){ec=ec.next}else{var ea=ec.parent;if(ea!=null){if(ec==ea.prev){ea.prev=null}else{ea.next=null}ec.parent=null}var eb=ec;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=bX.zpp_pool;bX.zpp_pool=eb;ec=ea}}}this.parent=null}};bX.prototype.clear_with=function(ea){if(this.parent==null){return}else{var ed=this.parent;while(ed!=null){if(ed.prev!=null){ed=ed.prev}else{if(ed.next!=null){ed=ed.next}else{ea(ed.data);var eb=ed.parent;if(eb!=null){if(ed==eb.prev){eb.prev=null}else{eb.next=null}ed.parent=null}var ec=ed;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=bX.zpp_pool;bX.zpp_pool=ec;ed=eb}}}this.parent=null}};bX.prototype.clear_node=function(ec,ea){ea(ec.data);var eb=ec.parent;if(eb!=null){if(ec==eb.prev){eb.prev=null}else{eb.next=null}ec.parent=null}ec.data=null;ec.lt=null;ec.swapped=null;ec.next=bX.zpp_pool;bX.zpp_pool=ec;return eb};bX.prototype.__fix_neg_red=function(ee){var ek=ee.parent;var ec;if(ek.prev==ee){var ea=ee.prev;var ei=ee.next;var el=ei.prev;var eg=ei.next;ea.colour=0;ee.colour=ek.colour=1;ee.next=el;if(el!=null){el.parent=ee}var em=ek.data;ek.data=ei.data;ei.data=em;if(this.swapped!=null){this.swapped(ek.data,ei.data)}ei.prev=eg;if(eg!=null){eg.parent=ei}ei.next=ek.next;if(ek.next!=null){ek.next.parent=ei}ek.next=ei;if(ei!=null){ei.parent=ek}ec=ea}else{var ed=ee.next;var eb=ee.prev;var ej=eb.next;var eh=eb.prev;ed.colour=0;ee.colour=ek.colour=1;ee.prev=ej;if(ej!=null){ej.parent=ee}var ef=ek.data;ek.data=eb.data;eb.data=ef;if(this.swapped!=null){this.swapped(ek.data,eb.data)}eb.next=eh;if(eh!=null){eh.parent=eb}eb.prev=ek.prev;if(ek.prev!=null){ek.prev.parent=eb}ek.prev=eb;if(eb!=null){eb.parent=ek}ec=ed}if(ec.prev!=null&&ec.prev.colour==0){this.__fix_dbl_red(ec.prev)}else{if(ec.next!=null&&ec.next.colour==0){this.__fix_dbl_red(ec.next)}}};bX.prototype.__fix_dbl_red=function(ek){while(true){var ej=ek.parent;var ee=ej.parent;if(ee==null){ej.colour=1;break}var ei;var eh;var eg;var ef;var ed;var ec;var eb;if(ej==ee.prev){eg=ee;eb=ee.next;if(ek==ej.prev){ei=ek;eh=ej;ef=ek.prev;ed=ek.next;ec=ej.next}else{ei=ej;eh=ek;ef=ej.prev;ed=ek.prev;ec=ek.next}}else{ei=ee;ef=ee.prev;if(ek==ej.prev){eh=ek;eg=ej;ed=ek.prev;ec=ek.next;eb=ej.next}else{eh=ej;eg=ek;ed=ej.prev;ec=ek.prev;eb=ek.next}}var ea=ee.parent;if(ea==null){this.parent=eh}else{if(ea.prev==ee){ea.prev=eh}else{ea.next=eh}}if(eh!=null){eh.parent=ea}ei.prev=ef;if(ef!=null){ef.parent=ei}ei.next=ed;if(ed!=null){ed.parent=ei}eh.prev=ei;if(ei!=null){ei.parent=eh}eh.next=eg;if(eg!=null){eg.parent=eh}eg.prev=ec;if(ec!=null){ec.parent=eg}eg.next=eb;if(eb!=null){eb.parent=eg}eh.colour=ee.colour-1;ei.colour=1;eg.colour=1;if(eh==this.parent){this.parent.colour=1}else{if(eh.colour==0&&eh.parent.colour==0){ek=eh;continue}}break}};bX.prototype.try_insert_bool=function(eb){var ea=null;var ec=null;if(this.parent==null){if(bX.zpp_pool==null){ea=new bX()}else{ea=bX.zpp_pool;bX.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(bX.zpp_pool==null){ea=new bX()}else{ea=bX.zpp_pool;bX.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(bX.zpp_pool==null){ea=new bX()}else{ea=bX.zpp_pool;bX.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return false}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return true}};bX.prototype.try_insert=function(eb){var ea=null;var ec=null;if(this.parent==null){if(bX.zpp_pool==null){ea=new bX()}else{ea=bX.zpp_pool;bX.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(bX.zpp_pool==null){ea=new bX()}else{ea=bX.zpp_pool;bX.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(bX.zpp_pool==null){ea=new bX()}else{ea=bX.zpp_pool;bX.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return ec}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea}};bX.prototype.insert=function(eb){var ea;if(bX.zpp_pool==null){ea=new bX()}else{ea=bX.zpp_pool;bX.zpp_pool=ea.next;ea.next=null}ea.data=eb;if(this.parent==null){this.parent=ea}else{var ec=this.parent;while(true){if(this.lt(ea.data,ec.data)){if(ec.prev==null){ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(ec.next==null){ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}}}if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea};bX.prototype.__class__=bX;var bD=zpp_nape.util.ZPP_Set_ZPP_SimpleSeg=function(){this.colour=0;this.parent=null;this.next=null;this.prev=null;this.data=null;this.swapped=null;this.lt=null};bD.__name__=["zpp_nape","util","ZPP_Set_ZPP_SimpleSeg"];bD.prototype.free=function(){this.data=null;this.lt=null;this.swapped=null};bD.prototype.alloc=function(){};bD.prototype.lt=null;bD.prototype.swapped=null;bD.prototype.data=null;bD.prototype.prev=null;bD.prototype.next=null;bD.prototype.parent=null;bD.prototype.colour=null;bD.prototype.verify=function(){if(!this.empty()){var ed=this.parent;while(ed.prev!=null){ed=ed.prev}while(ed!=null){var eb=ed.data;var ee=true;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!ee){if(!this.lt(eb,ea)&&this.lt(ea,eb)){return false}}else{if(eb==ea){ee=false}else{if(!this.lt(ea,eb)&&this.lt(eb,ea)){return false}}}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}if(ed.next!=null){ed=ed.next;while(ed.prev!=null){ed=ed.prev}}else{while(ed.parent!=null&&ed==ed.parent.next){ed=ed.parent}ed=ed.parent}}}return true};bD.prototype.empty=function(){return this.parent==null};bD.prototype.singular=function(){if(this.parent!=null&&this.parent.prev==null){return this.parent.next==null}else{return false}};bD.prototype.size=function(){var ea=0;if(!this.empty()){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}while(eb!=null){++ea;if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{while(eb.parent!=null&&eb==eb.parent.next){eb=eb.parent}eb=eb.parent}}}return ea};bD.prototype.has=function(ea){return this.find(ea)!=null};bD.prototype.find=function(ea){var eb=this.parent;while(eb!=null&&eb.data!=ea){if(this.lt(ea,eb.data)){eb=eb.prev}else{eb=eb.next}}return eb};bD.prototype.has_weak=function(ea){return this.find_weak(ea)!=null};bD.prototype.find_weak=function(ea){var eb=this.parent;while(eb!=null){if(this.lt(ea,eb.data)){eb=eb.prev}else{if(this.lt(eb.data,ea)){eb=eb.next}else{break}}}return eb};bD.prototype.lower_bound=function(ed){var eb=null;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!this.lt(ea,ed)){eb=ea;break}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}return eb};bD.prototype.first=function(){var ea=this.parent;while(ea.prev!=null){ea=ea.prev}return ea.data};bD.prototype.pop_front=function(){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}var ea=eb.data;this.remove_node(eb);return ea};bD.prototype.remove=function(ea){this.remove_node(this.find(ea))};bD.prototype.successor_node=function(eb){if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.prev!=ea){ea=eb;eb=eb.parent}}return eb};bD.prototype.predecessor_node=function(eb){if(eb.prev!=null){eb=eb.prev;while(eb.next!=null){eb=eb.next}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.next!=ea){ea=eb;eb=eb.parent}}return eb};bD.prototype.successor=function(eb){var ea=this.successor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};bD.prototype.predecessor=function(eb){var ea=this.predecessor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};bD.prototype.remove_node=function(eh){if(eh.next!=null&&eh.prev!=null){var ec=eh.next;while(ec.prev!=null){ec=ec.prev}var ei=eh.data;eh.data=ec.data;ec.data=ei;if(this.swapped!=null){this.swapped(eh.data,ec.data)}eh=ec}var eb=eh.prev==null?eh.next:eh.prev;if(eh.colour==1){if(eh.prev!=null||eh.next!=null){eb.colour=1}else{if(eh.parent!=null){var eg=eh.parent;while(true){eg.colour++;eg.prev.colour--;eg.next.colour--;var ee=eg.prev;if(ee.colour==-1){this.__fix_neg_red(ee);break}else{if(ee.colour==0){if(ee.prev!=null&&ee.prev.colour==0){this.__fix_dbl_red(ee.prev);break}if(ee.next!=null&&ee.next.colour==0){this.__fix_dbl_red(ee.next);break}}}var ed=eg.next;if(ed.colour==-1){this.__fix_neg_red(ed);break}else{if(ed.colour==0){if(ed.prev!=null&&ed.prev.colour==0){this.__fix_dbl_red(ed.prev);break}if(ed.next!=null&&ed.next.colour==0){this.__fix_dbl_red(ed.next);break}}}if(eg.colour==2){if(eg.parent==null){eg.colour=1}else{eg=eg.parent;continue}}break}}}}var ef=eh.parent;if(ef==null){this.parent=eb}else{if(ef.prev==eh){ef.prev=eb}else{ef.next=eb}}if(eb!=null){eb.parent=ef}eh.parent=eh.prev=eh.next=null;var ea=eh;ea.data=null;ea.lt=null;ea.swapped=null;ea.next=bD.zpp_pool;bD.zpp_pool=ea};bD.prototype.clear=function(){if(this.parent!=null){var ec=this.parent;while(ec!=null){if(ec.prev!=null){ec=ec.prev}else{if(ec.next!=null){ec=ec.next}else{var ea=ec.parent;if(ea!=null){if(ec==ea.prev){ea.prev=null}else{ea.next=null}ec.parent=null}var eb=ec;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=bD.zpp_pool;bD.zpp_pool=eb;ec=ea}}}this.parent=null}};bD.prototype.clear_with=function(ea){if(this.parent==null){return}else{var ed=this.parent;while(ed!=null){if(ed.prev!=null){ed=ed.prev}else{if(ed.next!=null){ed=ed.next}else{ea(ed.data);var eb=ed.parent;if(eb!=null){if(ed==eb.prev){eb.prev=null}else{eb.next=null}ed.parent=null}var ec=ed;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=bD.zpp_pool;bD.zpp_pool=ec;ed=eb}}}this.parent=null}};bD.prototype.clear_node=function(ec,ea){ea(ec.data);var eb=ec.parent;if(eb!=null){if(ec==eb.prev){eb.prev=null}else{eb.next=null}ec.parent=null}ec.data=null;ec.lt=null;ec.swapped=null;ec.next=bD.zpp_pool;bD.zpp_pool=ec;return eb};bD.prototype.__fix_neg_red=function(ee){var ek=ee.parent;var ec;if(ek.prev==ee){var ea=ee.prev;var ei=ee.next;var el=ei.prev;var eg=ei.next;ea.colour=0;ee.colour=ek.colour=1;ee.next=el;if(el!=null){el.parent=ee}var em=ek.data;ek.data=ei.data;ei.data=em;if(this.swapped!=null){this.swapped(ek.data,ei.data)}ei.prev=eg;if(eg!=null){eg.parent=ei}ei.next=ek.next;if(ek.next!=null){ek.next.parent=ei}ek.next=ei;if(ei!=null){ei.parent=ek}ec=ea}else{var ed=ee.next;var eb=ee.prev;var ej=eb.next;var eh=eb.prev;ed.colour=0;ee.colour=ek.colour=1;ee.prev=ej;if(ej!=null){ej.parent=ee}var ef=ek.data;ek.data=eb.data;eb.data=ef;if(this.swapped!=null){this.swapped(ek.data,eb.data)}eb.next=eh;if(eh!=null){eh.parent=eb}eb.prev=ek.prev;if(ek.prev!=null){ek.prev.parent=eb}ek.prev=eb;if(eb!=null){eb.parent=ek}ec=ed}if(ec.prev!=null&&ec.prev.colour==0){this.__fix_dbl_red(ec.prev)}else{if(ec.next!=null&&ec.next.colour==0){this.__fix_dbl_red(ec.next)}}};bD.prototype.__fix_dbl_red=function(ek){while(true){var ej=ek.parent;var ee=ej.parent;if(ee==null){ej.colour=1;break}var ei;var eh;var eg;var ef;var ed;var ec;var eb;if(ej==ee.prev){eg=ee;eb=ee.next;if(ek==ej.prev){ei=ek;eh=ej;ef=ek.prev;ed=ek.next;ec=ej.next}else{ei=ej;eh=ek;ef=ej.prev;ed=ek.prev;ec=ek.next}}else{ei=ee;ef=ee.prev;if(ek==ej.prev){eh=ek;eg=ej;ed=ek.prev;ec=ek.next;eb=ej.next}else{eh=ej;eg=ek;ed=ej.prev;ec=ek.prev;eb=ek.next}}var ea=ee.parent;if(ea==null){this.parent=eh}else{if(ea.prev==ee){ea.prev=eh}else{ea.next=eh}}if(eh!=null){eh.parent=ea}ei.prev=ef;if(ef!=null){ef.parent=ei}ei.next=ed;if(ed!=null){ed.parent=ei}eh.prev=ei;if(ei!=null){ei.parent=eh}eh.next=eg;if(eg!=null){eg.parent=eh}eg.prev=ec;if(ec!=null){ec.parent=eg}eg.next=eb;if(eb!=null){eb.parent=eg}eh.colour=ee.colour-1;ei.colour=1;eg.colour=1;if(eh==this.parent){this.parent.colour=1}else{if(eh.colour==0&&eh.parent.colour==0){ek=eh;continue}}break}};bD.prototype.try_insert_bool=function(eb){var ea=null;var ec=null;if(this.parent==null){if(bD.zpp_pool==null){ea=new bD()}else{ea=bD.zpp_pool;bD.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(bD.zpp_pool==null){ea=new bD()}else{ea=bD.zpp_pool;bD.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(bD.zpp_pool==null){ea=new bD()}else{ea=bD.zpp_pool;bD.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return false}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return true}};bD.prototype.try_insert=function(eb){var ea=null;var ec=null;if(this.parent==null){if(bD.zpp_pool==null){ea=new bD()}else{ea=bD.zpp_pool;bD.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(bD.zpp_pool==null){ea=new bD()}else{ea=bD.zpp_pool;bD.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(bD.zpp_pool==null){ea=new bD()}else{ea=bD.zpp_pool;bD.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return ec}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea}};bD.prototype.insert=function(eb){var ea;if(bD.zpp_pool==null){ea=new bD()}else{ea=bD.zpp_pool;bD.zpp_pool=ea.next;ea.next=null}ea.data=eb;if(this.parent==null){this.parent=ea}else{var ec=this.parent;while(true){if(this.lt(ea.data,ec.data)){if(ec.prev==null){ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(ec.next==null){ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}}}if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea};bD.prototype.__class__=bD;var bl=zpp_nape.util.ZPP_Set_ZPP_SimpleEvent=function(){this.colour=0;this.parent=null;this.next=null;this.prev=null;this.data=null;this.swapped=null;this.lt=null};bl.__name__=["zpp_nape","util","ZPP_Set_ZPP_SimpleEvent"];bl.prototype.free=function(){this.data=null;this.lt=null;this.swapped=null};bl.prototype.alloc=function(){};bl.prototype.lt=null;bl.prototype.swapped=null;bl.prototype.data=null;bl.prototype.prev=null;bl.prototype.next=null;bl.prototype.parent=null;bl.prototype.colour=null;bl.prototype.verify=function(){if(!this.empty()){var ed=this.parent;while(ed.prev!=null){ed=ed.prev}while(ed!=null){var eb=ed.data;var ee=true;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!ee){if(!this.lt(eb,ea)&&this.lt(ea,eb)){return false}}else{if(eb==ea){ee=false}else{if(!this.lt(ea,eb)&&this.lt(eb,ea)){return false}}}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}if(ed.next!=null){ed=ed.next;while(ed.prev!=null){ed=ed.prev}}else{while(ed.parent!=null&&ed==ed.parent.next){ed=ed.parent}ed=ed.parent}}}return true};bl.prototype.empty=function(){return this.parent==null};bl.prototype.singular=function(){if(this.parent!=null&&this.parent.prev==null){return this.parent.next==null}else{return false}};bl.prototype.size=function(){var ea=0;if(!this.empty()){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}while(eb!=null){++ea;if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{while(eb.parent!=null&&eb==eb.parent.next){eb=eb.parent}eb=eb.parent}}}return ea};bl.prototype.has=function(ea){return this.find(ea)!=null};bl.prototype.find=function(ea){var eb=this.parent;while(eb!=null&&eb.data!=ea){if(this.lt(ea,eb.data)){eb=eb.prev}else{eb=eb.next}}return eb};bl.prototype.has_weak=function(ea){return this.find_weak(ea)!=null};bl.prototype.find_weak=function(ea){var eb=this.parent;while(eb!=null){if(this.lt(ea,eb.data)){eb=eb.prev}else{if(this.lt(eb.data,ea)){eb=eb.next}else{break}}}return eb};bl.prototype.lower_bound=function(ed){var eb=null;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!this.lt(ea,ed)){eb=ea;break}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}return eb};bl.prototype.first=function(){var ea=this.parent;while(ea.prev!=null){ea=ea.prev}return ea.data};bl.prototype.pop_front=function(){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}var ea=eb.data;this.remove_node(eb);return ea};bl.prototype.remove=function(ea){this.remove_node(this.find(ea))};bl.prototype.successor_node=function(eb){if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.prev!=ea){ea=eb;eb=eb.parent}}return eb};bl.prototype.predecessor_node=function(eb){if(eb.prev!=null){eb=eb.prev;while(eb.next!=null){eb=eb.next}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.next!=ea){ea=eb;eb=eb.parent}}return eb};bl.prototype.successor=function(eb){var ea=this.successor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};bl.prototype.predecessor=function(eb){var ea=this.predecessor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};bl.prototype.remove_node=function(eh){if(eh.next!=null&&eh.prev!=null){var ec=eh.next;while(ec.prev!=null){ec=ec.prev}var ei=eh.data;eh.data=ec.data;ec.data=ei;if(this.swapped!=null){this.swapped(eh.data,ec.data)}eh=ec}var eb=eh.prev==null?eh.next:eh.prev;if(eh.colour==1){if(eh.prev!=null||eh.next!=null){eb.colour=1}else{if(eh.parent!=null){var eg=eh.parent;while(true){eg.colour++;eg.prev.colour--;eg.next.colour--;var ee=eg.prev;if(ee.colour==-1){this.__fix_neg_red(ee);break}else{if(ee.colour==0){if(ee.prev!=null&&ee.prev.colour==0){this.__fix_dbl_red(ee.prev);break}if(ee.next!=null&&ee.next.colour==0){this.__fix_dbl_red(ee.next);break}}}var ed=eg.next;if(ed.colour==-1){this.__fix_neg_red(ed);break}else{if(ed.colour==0){if(ed.prev!=null&&ed.prev.colour==0){this.__fix_dbl_red(ed.prev);break}if(ed.next!=null&&ed.next.colour==0){this.__fix_dbl_red(ed.next);break}}}if(eg.colour==2){if(eg.parent==null){eg.colour=1}else{eg=eg.parent;continue}}break}}}}var ef=eh.parent;if(ef==null){this.parent=eb}else{if(ef.prev==eh){ef.prev=eb}else{ef.next=eb}}if(eb!=null){eb.parent=ef}eh.parent=eh.prev=eh.next=null;var ea=eh;ea.data=null;ea.lt=null;ea.swapped=null;ea.next=bl.zpp_pool;bl.zpp_pool=ea};bl.prototype.clear=function(){if(this.parent!=null){var ec=this.parent;while(ec!=null){if(ec.prev!=null){ec=ec.prev}else{if(ec.next!=null){ec=ec.next}else{var ea=ec.parent;if(ea!=null){if(ec==ea.prev){ea.prev=null}else{ea.next=null}ec.parent=null}var eb=ec;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=bl.zpp_pool;bl.zpp_pool=eb;ec=ea}}}this.parent=null}};bl.prototype.clear_with=function(ea){if(this.parent==null){return}else{var ed=this.parent;while(ed!=null){if(ed.prev!=null){ed=ed.prev}else{if(ed.next!=null){ed=ed.next}else{ea(ed.data);var eb=ed.parent;if(eb!=null){if(ed==eb.prev){eb.prev=null}else{eb.next=null}ed.parent=null}var ec=ed;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=bl.zpp_pool;bl.zpp_pool=ec;ed=eb}}}this.parent=null}};bl.prototype.clear_node=function(ec,ea){ea(ec.data);var eb=ec.parent;if(eb!=null){if(ec==eb.prev){eb.prev=null}else{eb.next=null}ec.parent=null}ec.data=null;ec.lt=null;ec.swapped=null;ec.next=bl.zpp_pool;bl.zpp_pool=ec;return eb};bl.prototype.__fix_neg_red=function(ee){var ek=ee.parent;var ec;if(ek.prev==ee){var ea=ee.prev;var ei=ee.next;var el=ei.prev;var eg=ei.next;ea.colour=0;ee.colour=ek.colour=1;ee.next=el;if(el!=null){el.parent=ee}var em=ek.data;ek.data=ei.data;ei.data=em;if(this.swapped!=null){this.swapped(ek.data,ei.data)}ei.prev=eg;if(eg!=null){eg.parent=ei}ei.next=ek.next;if(ek.next!=null){ek.next.parent=ei}ek.next=ei;if(ei!=null){ei.parent=ek}ec=ea}else{var ed=ee.next;var eb=ee.prev;var ej=eb.next;var eh=eb.prev;ed.colour=0;ee.colour=ek.colour=1;ee.prev=ej;if(ej!=null){ej.parent=ee}var ef=ek.data;ek.data=eb.data;eb.data=ef;if(this.swapped!=null){this.swapped(ek.data,eb.data)}eb.next=eh;if(eh!=null){eh.parent=eb}eb.prev=ek.prev;if(ek.prev!=null){ek.prev.parent=eb}ek.prev=eb;if(eb!=null){eb.parent=ek}ec=ed}if(ec.prev!=null&&ec.prev.colour==0){this.__fix_dbl_red(ec.prev)}else{if(ec.next!=null&&ec.next.colour==0){this.__fix_dbl_red(ec.next)}}};bl.prototype.__fix_dbl_red=function(ek){while(true){var ej=ek.parent;var ee=ej.parent;if(ee==null){ej.colour=1;break}var ei;var eh;var eg;var ef;var ed;var ec;var eb;if(ej==ee.prev){eg=ee;eb=ee.next;if(ek==ej.prev){ei=ek;eh=ej;ef=ek.prev;ed=ek.next;ec=ej.next}else{ei=ej;eh=ek;ef=ej.prev;ed=ek.prev;ec=ek.next}}else{ei=ee;ef=ee.prev;if(ek==ej.prev){eh=ek;eg=ej;ed=ek.prev;ec=ek.next;eb=ej.next}else{eh=ej;eg=ek;ed=ej.prev;ec=ek.prev;eb=ek.next}}var ea=ee.parent;if(ea==null){this.parent=eh}else{if(ea.prev==ee){ea.prev=eh}else{ea.next=eh}}if(eh!=null){eh.parent=ea}ei.prev=ef;if(ef!=null){ef.parent=ei}ei.next=ed;if(ed!=null){ed.parent=ei}eh.prev=ei;if(ei!=null){ei.parent=eh}eh.next=eg;if(eg!=null){eg.parent=eh}eg.prev=ec;if(ec!=null){ec.parent=eg}eg.next=eb;if(eb!=null){eb.parent=eg}eh.colour=ee.colour-1;ei.colour=1;eg.colour=1;if(eh==this.parent){this.parent.colour=1}else{if(eh.colour==0&&eh.parent.colour==0){ek=eh;continue}}break}};bl.prototype.try_insert_bool=function(eb){var ea=null;var ec=null;if(this.parent==null){if(bl.zpp_pool==null){ea=new bl()}else{ea=bl.zpp_pool;bl.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(bl.zpp_pool==null){ea=new bl()}else{ea=bl.zpp_pool;bl.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(bl.zpp_pool==null){ea=new bl()}else{ea=bl.zpp_pool;bl.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return false}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return true}};bl.prototype.try_insert=function(eb){var ea=null;var ec=null;if(this.parent==null){if(bl.zpp_pool==null){ea=new bl()}else{ea=bl.zpp_pool;bl.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(bl.zpp_pool==null){ea=new bl()}else{ea=bl.zpp_pool;bl.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(bl.zpp_pool==null){ea=new bl()}else{ea=bl.zpp_pool;bl.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return ec}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea}};bl.prototype.insert=function(eb){var ea;if(bl.zpp_pool==null){ea=new bl()}else{ea=bl.zpp_pool;bl.zpp_pool=ea.next;ea.next=null}ea.data=eb;if(this.parent==null){this.parent=ea}else{var ec=this.parent;while(true){if(this.lt(ea.data,ec.data)){if(ec.prev==null){ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(ec.next==null){ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}}}if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea};bl.prototype.__class__=bl;var dT=zpp_nape.util.ZPP_Set_ZPP_CbSet=function(){this.colour=0;this.parent=null;this.next=null;this.prev=null;this.data=null;this.swapped=null;this.lt=null};dT.__name__=["zpp_nape","util","ZPP_Set_ZPP_CbSet"];dT.prototype.free=function(){this.data=null;this.lt=null;this.swapped=null};dT.prototype.alloc=function(){};dT.prototype.lt=null;dT.prototype.swapped=null;dT.prototype.data=null;dT.prototype.prev=null;dT.prototype.next=null;dT.prototype.parent=null;dT.prototype.colour=null;dT.prototype.verify=function(){if(!this.empty()){var ed=this.parent;while(ed.prev!=null){ed=ed.prev}while(ed!=null){var eb=ed.data;var ee=true;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!ee){if(!this.lt(eb,ea)&&this.lt(ea,eb)){return false}}else{if(eb==ea){ee=false}else{if(!this.lt(ea,eb)&&this.lt(eb,ea)){return false}}}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}if(ed.next!=null){ed=ed.next;while(ed.prev!=null){ed=ed.prev}}else{while(ed.parent!=null&&ed==ed.parent.next){ed=ed.parent}ed=ed.parent}}}return true};dT.prototype.empty=function(){return this.parent==null};dT.prototype.singular=function(){if(this.parent!=null&&this.parent.prev==null){return this.parent.next==null}else{return false}};dT.prototype.size=function(){var ea=0;if(!this.empty()){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}while(eb!=null){++ea;if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{while(eb.parent!=null&&eb==eb.parent.next){eb=eb.parent}eb=eb.parent}}}return ea};dT.prototype.has=function(ea){return this.find(ea)!=null};dT.prototype.find=function(ea){var eb=this.parent;while(eb!=null&&eb.data!=ea){if(this.lt(ea,eb.data)){eb=eb.prev}else{eb=eb.next}}return eb};dT.prototype.has_weak=function(ea){return this.find_weak(ea)!=null};dT.prototype.find_weak=function(ea){var eb=this.parent;while(eb!=null){if(this.lt(ea,eb.data)){eb=eb.prev}else{if(this.lt(eb.data,ea)){eb=eb.next}else{break}}}return eb};dT.prototype.lower_bound=function(ed){var eb=null;if(!this.empty()){var ec=this.parent;while(ec.prev!=null){ec=ec.prev}while(ec!=null){var ea=ec.data;if(!this.lt(ea,ed)){eb=ea;break}if(ec.next!=null){ec=ec.next;while(ec.prev!=null){ec=ec.prev}}else{while(ec.parent!=null&&ec==ec.parent.next){ec=ec.parent}ec=ec.parent}}}return eb};dT.prototype.first=function(){var ea=this.parent;while(ea.prev!=null){ea=ea.prev}return ea.data};dT.prototype.pop_front=function(){var eb=this.parent;while(eb.prev!=null){eb=eb.prev}var ea=eb.data;this.remove_node(eb);return ea};dT.prototype.remove=function(ea){this.remove_node(this.find(ea))};dT.prototype.successor_node=function(eb){if(eb.next!=null){eb=eb.next;while(eb.prev!=null){eb=eb.prev}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.prev!=ea){ea=eb;eb=eb.parent}}return eb};dT.prototype.predecessor_node=function(eb){if(eb.prev!=null){eb=eb.prev;while(eb.next!=null){eb=eb.next}}else{var ea=eb;eb=eb.parent;while(eb!=null&&eb.next!=ea){ea=eb;eb=eb.parent}}return eb};dT.prototype.successor=function(eb){var ea=this.successor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};dT.prototype.predecessor=function(eb){var ea=this.predecessor_node(this.find(eb));if(ea==null){return null}else{return ea.data}};dT.prototype.remove_node=function(eh){if(eh.next!=null&&eh.prev!=null){var ec=eh.next;while(ec.prev!=null){ec=ec.prev}var ei=eh.data;eh.data=ec.data;ec.data=ei;if(this.swapped!=null){this.swapped(eh.data,ec.data)}eh=ec}var eb=eh.prev==null?eh.next:eh.prev;if(eh.colour==1){if(eh.prev!=null||eh.next!=null){eb.colour=1}else{if(eh.parent!=null){var eg=eh.parent;while(true){eg.colour++;eg.prev.colour--;eg.next.colour--;var ee=eg.prev;if(ee.colour==-1){this.__fix_neg_red(ee);break}else{if(ee.colour==0){if(ee.prev!=null&&ee.prev.colour==0){this.__fix_dbl_red(ee.prev);break}if(ee.next!=null&&ee.next.colour==0){this.__fix_dbl_red(ee.next);break}}}var ed=eg.next;if(ed.colour==-1){this.__fix_neg_red(ed);break}else{if(ed.colour==0){if(ed.prev!=null&&ed.prev.colour==0){this.__fix_dbl_red(ed.prev);break}if(ed.next!=null&&ed.next.colour==0){this.__fix_dbl_red(ed.next);break}}}if(eg.colour==2){if(eg.parent==null){eg.colour=1}else{eg=eg.parent;continue}}break}}}}var ef=eh.parent;if(ef==null){this.parent=eb}else{if(ef.prev==eh){ef.prev=eb}else{ef.next=eb}}if(eb!=null){eb.parent=ef}eh.parent=eh.prev=eh.next=null;var ea=eh;ea.data=null;ea.lt=null;ea.swapped=null;ea.next=dT.zpp_pool;dT.zpp_pool=ea};dT.prototype.clear=function(){if(this.parent!=null){var ec=this.parent;while(ec!=null){if(ec.prev!=null){ec=ec.prev}else{if(ec.next!=null){ec=ec.next}else{var ea=ec.parent;if(ea!=null){if(ec==ea.prev){ea.prev=null}else{ea.next=null}ec.parent=null}var eb=ec;eb.data=null;eb.lt=null;eb.swapped=null;eb.next=dT.zpp_pool;dT.zpp_pool=eb;ec=ea}}}this.parent=null}};dT.prototype.clear_with=function(ea){if(this.parent==null){return}else{var ed=this.parent;while(ed!=null){if(ed.prev!=null){ed=ed.prev}else{if(ed.next!=null){ed=ed.next}else{ea(ed.data);var eb=ed.parent;if(eb!=null){if(ed==eb.prev){eb.prev=null}else{eb.next=null}ed.parent=null}var ec=ed;ec.data=null;ec.lt=null;ec.swapped=null;ec.next=dT.zpp_pool;dT.zpp_pool=ec;ed=eb}}}this.parent=null}};dT.prototype.clear_node=function(ec,ea){ea(ec.data);var eb=ec.parent;if(eb!=null){if(ec==eb.prev){eb.prev=null}else{eb.next=null}ec.parent=null}ec.data=null;ec.lt=null;ec.swapped=null;ec.next=dT.zpp_pool;dT.zpp_pool=ec;return eb};dT.prototype.__fix_neg_red=function(ee){var ek=ee.parent;var ec;if(ek.prev==ee){var ea=ee.prev;var ei=ee.next;var el=ei.prev;var eg=ei.next;ea.colour=0;ee.colour=ek.colour=1;ee.next=el;if(el!=null){el.parent=ee}var em=ek.data;ek.data=ei.data;ei.data=em;if(this.swapped!=null){this.swapped(ek.data,ei.data)}ei.prev=eg;if(eg!=null){eg.parent=ei}ei.next=ek.next;if(ek.next!=null){ek.next.parent=ei}ek.next=ei;if(ei!=null){ei.parent=ek}ec=ea}else{var ed=ee.next;var eb=ee.prev;var ej=eb.next;var eh=eb.prev;ed.colour=0;ee.colour=ek.colour=1;ee.prev=ej;if(ej!=null){ej.parent=ee}var ef=ek.data;ek.data=eb.data;eb.data=ef;if(this.swapped!=null){this.swapped(ek.data,eb.data)}eb.next=eh;if(eh!=null){eh.parent=eb}eb.prev=ek.prev;if(ek.prev!=null){ek.prev.parent=eb}ek.prev=eb;if(eb!=null){eb.parent=ek}ec=ed}if(ec.prev!=null&&ec.prev.colour==0){this.__fix_dbl_red(ec.prev)}else{if(ec.next!=null&&ec.next.colour==0){this.__fix_dbl_red(ec.next)}}};dT.prototype.__fix_dbl_red=function(ek){while(true){var ej=ek.parent;var ee=ej.parent;if(ee==null){ej.colour=1;break}var ei;var eh;var eg;var ef;var ed;var ec;var eb;if(ej==ee.prev){eg=ee;eb=ee.next;if(ek==ej.prev){ei=ek;eh=ej;ef=ek.prev;ed=ek.next;ec=ej.next}else{ei=ej;eh=ek;ef=ej.prev;ed=ek.prev;ec=ek.next}}else{ei=ee;ef=ee.prev;if(ek==ej.prev){eh=ek;eg=ej;ed=ek.prev;ec=ek.next;eb=ej.next}else{eh=ej;eg=ek;ed=ej.prev;ec=ek.prev;eb=ek.next}}var ea=ee.parent;if(ea==null){this.parent=eh}else{if(ea.prev==ee){ea.prev=eh}else{ea.next=eh}}if(eh!=null){eh.parent=ea}ei.prev=ef;if(ef!=null){ef.parent=ei}ei.next=ed;if(ed!=null){ed.parent=ei}eh.prev=ei;if(ei!=null){ei.parent=eh}eh.next=eg;if(eg!=null){eg.parent=eh}eg.prev=ec;if(ec!=null){ec.parent=eg}eg.next=eb;if(eb!=null){eb.parent=eg}eh.colour=ee.colour-1;ei.colour=1;eg.colour=1;if(eh==this.parent){this.parent.colour=1}else{if(eh.colour==0&&eh.parent.colour==0){ek=eh;continue}}break}};dT.prototype.try_insert_bool=function(eb){var ea=null;var ec=null;if(this.parent==null){if(dT.zpp_pool==null){ea=new dT()}else{ea=dT.zpp_pool;dT.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(dT.zpp_pool==null){ea=new dT()}else{ea=dT.zpp_pool;dT.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(dT.zpp_pool==null){ea=new dT()}else{ea=dT.zpp_pool;dT.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return false}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return true}};dT.prototype.try_insert=function(eb){var ea=null;var ec=null;if(this.parent==null){if(dT.zpp_pool==null){ea=new dT()}else{ea=dT.zpp_pool;dT.zpp_pool=ea.next;ea.next=null}ea.data=eb;this.parent=ea}else{ec=this.parent;while(true){if(this.lt(eb,ec.data)){if(ec.prev==null){if(dT.zpp_pool==null){ea=new dT()}else{ea=dT.zpp_pool;dT.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(this.lt(ec.data,eb)){if(ec.next==null){if(dT.zpp_pool==null){ea=new dT()}else{ea=dT.zpp_pool;dT.zpp_pool=ea.next;ea.next=null}ea.data=eb;ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}else{break}}}}if(ea==null){return ec}else{if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea}};dT.prototype.insert=function(eb){var ea;if(dT.zpp_pool==null){ea=new dT()}else{ea=dT.zpp_pool;dT.zpp_pool=ea.next;ea.next=null}ea.data=eb;if(this.parent==null){this.parent=ea}else{var ec=this.parent;while(true){if(this.lt(ea.data,ec.data)){if(ec.prev==null){ec.prev=ea;ea.parent=ec;break}else{ec=ec.prev}}else{if(ec.next==null){ec.next=ea;ea.parent=ec;break}else{ec=ec.next}}}}if(ea.parent==null){ea.colour=1}else{ea.colour=0;if(ea.parent.colour==0){this.__fix_dbl_red(ea)}}return ea};dT.prototype.__class__=dT;String.prototype.__class__=String;String.__name__=true;Array.__name__=true;var dR={__name__:["Int"]};var dH={__name__:["Dynamic"]};var aj=Number;aj.__name__=["Float"];var dh=Boolean;dh.__ename__=["Bool"];var aq={__name__:["Class"]};var aJ={};dc.__toStr={}.toString;P.epsilon=1e-8;P.fluidAngularDragFriction=2.5;P.fluidAngularDrag=100;P.fluidVacuumDrag=0.5;P.fluidLinearDrag=0.5;P.collisionSlop=0.2;P.collisionSlopCCD=0.5;P.distanceThresholdCCD=0.05;P.staticCCDLinearThreshold=0.05;P.staticCCDAngularThreshold=0.005;P.bulletCCDLinearThreshold=0.125;P.bulletCCDAngularThreshold=0.0125;P.dynamicSweepLinearThreshold=17;P.dynamicSweepAngularThreshold=0.6;P.angularCCDSlipScale=0.75;P.arbiterExpirationDelay=6;P.staticFrictionThreshold=2;P.elasticThreshold=20;P.sleepDelay=60;P.linearSleepThreshold=0.2;P.angularSleepThreshold=0.4;P.contactBiasCoef=0.3;P.contactStaticBiasCoef=0.6;P.contactContinuousBiasCoef=0.4;P.contactContinuousStaticBiasCoef=0.5;P.constraintLinearSlop=0.1;P.constraintAngularSlop=0.001;P.illConditionedThreshold=200000000;Y.zpp_pool=null;cV.zpp_pool=null;bO.zpp_pool=null;d0.zpp_pool=null;d5.zpp_pool=null;cL.zpp_pool=null;v.zpp_pool=null;bL.zpp_pool=null;du.zpp_pool=null;dW.zpp_pool=null;aX.zpp_pool=null;c4.zpp_pool=null;ap.zpp_pool=null;dJ.zpp_pool=null;bC.zpp_pool=null;a0.FMAX=1e+100;cr._Constraint=0;cr._Interactor=0;cr._CbType=0;cr._CbSet=0;cr._Listener=0;cr._ZPP_SimpleVert=0;cr._ZPP_SimpleSeg=0;cr._Space=0;cr._InteractionGroup=0;cS.zpp_pool=null;cC.zpp_pool=null;ar.zpp_pool=null;db.ANY_SHAPE=new dk();db.ANY_BODY=new dk();db.ANY_COMPOUND=new dk();db.ANY_CONSTRAINT=new dk();br.internal=false;br.id_ImmState_ACCEPT=1;br.id_ImmState_IGNORE=2;br.id_ImmState_ALWAYS=4;br.id_GravMassMode_DEFAULT=0;br.id_GravMassMode_FIXED=1;br.id_GravMassMode_SCALED=2;br.id_InertiaMode_DEFAULT=0;br.id_InertiaMode_FIXED=1;br.id_MassMode_DEFAULT=0;br.id_MassMode_FIXED=1;br.id_BodyType_STATIC=1;br.id_BodyType_DYNAMIC=2;br.id_BodyType_KINEMATIC=3;br.id_ListenerType_BODY=0;br.id_PreFlag_ACCEPT=1;br.id_ListenerType_CONSTRAINT=1;br.id_PreFlag_IGNORE=2;br.id_ListenerType_INTERACTION=2;br.id_PreFlag_ACCEPT_ONCE=3;br.id_ListenerType_PRE=3;br.id_PreFlag_IGNORE_ONCE=4;br.id_CbEvent_BEGIN=0;br.id_InteractionType_COLLISION=1;br.id_CbEvent_ONGOING=6;br.id_InteractionType_SENSOR=2;br.id_CbEvent_END=1;br.id_InteractionType_FLUID=4;br.id_CbEvent_WAKE=2;br.id_InteractionType_ANY=7;br.id_CbEvent_SLEEP=3;br.id_CbEvent_BREAK=4;br.id_CbEvent_PRE=5;br.id_Winding_UNDEFINED=0;br.id_Winding_CLOCKWISE=1;br.id_Winding_ANTICLOCKWISE=2;br.id_ValidationResult_VALID=0;br.id_ValidationResult_DEGENERATE=1;br.id_ValidationResult_CONCAVE=2;br.id_ValidationResult_SELF_INTERSECTING=3;br.id_ShapeType_CIRCLE=0;br.id_ShapeType_POLYGON=1;br.id_Broadphase_DYNAMIC_AABB_TREE=0;br.id_Broadphase_SWEEP_AND_PRUNE=1;br.id_ArbiterType_COLLISION=1;br.id_ArbiterType_SENSOR=2;br.id_ArbiterType_FLUID=4;cc.types=(function(ee){var ea;if(br.ListenerType_BODY==null){br.internal=true;br.ListenerType_BODY=new dZ();br.internal=false}var eb=br.ListenerType_BODY;if(br.ListenerType_CONSTRAINT==null){br.internal=true;br.ListenerType_CONSTRAINT=new dZ();br.internal=false}var ed=br.ListenerType_CONSTRAINT;if(br.ListenerType_INTERACTION==null){br.internal=true;br.ListenerType_INTERACTION=new dZ();br.internal=false}var ec=br.ListenerType_INTERACTION;if(br.ListenerType_PRE==null){br.internal=true;br.ListenerType_PRE=new dZ();br.internal=false}ea=[eb,ed,ec,br.ListenerType_PRE];return ea}(this));cc.events=(function(eh){var ea;if(br.CbEvent_BEGIN==null){br.internal=true;br.CbEvent_BEGIN=new bU();br.internal=false}var ee=br.CbEvent_BEGIN;if(br.CbEvent_END==null){br.internal=true;br.CbEvent_END=new bU();br.internal=false}var eg=br.CbEvent_END;if(br.CbEvent_WAKE==null){br.internal=true;br.CbEvent_WAKE=new bU();br.internal=false}var ef=br.CbEvent_WAKE;if(br.CbEvent_SLEEP==null){br.internal=true;br.CbEvent_SLEEP=new bU();br.internal=false}var ed=br.CbEvent_SLEEP;if(br.CbEvent_BREAK==null){br.internal=true;br.CbEvent_BREAK=new bU();br.internal=false}var ec=br.CbEvent_BREAK;if(br.CbEvent_PRE==null){br.internal=true;br.CbEvent_PRE=new bU();br.internal=false}var eb=br.CbEvent_PRE;if(br.CbEvent_ONGOING==null){br.internal=true;br.CbEvent_ONGOING=new bU();br.internal=false}ea=[ee,eg,ef,ed,ec,eb,br.CbEvent_ONGOING];return ea}(this));c1.UCbSet=new af();c1.VCbSet=new af();c1.WCbSet=new af();c1.UCbType=new x();c1.VCbType=new x();c1.WCbType=new x();j.internal=false;j.COL=1;j.FLUID=4;j.SENSOR=2;j.types=(function(ed){var ea;if(br.ArbiterType_COLLISION==null){br.internal=true;br.ArbiterType_COLLISION=new av();br.internal=false}var eb=br.ArbiterType_COLLISION;if(br.ArbiterType_SENSOR==null){br.internal=true;br.ArbiterType_SENSOR=new av();br.internal=false}var ec=br.ArbiterType_SENSOR;if(br.ArbiterType_FLUID==null){br.internal=true;br.ArbiterType_FLUID=new av();br.internal=false}ea=[null,eb,ec,null,br.ArbiterType_FLUID];return ea}(this));A.zpp_pool=null;dK.zpp_pool=null;d9.FACE1=0;d9.FACE2=1;d9.CIRCLE=2;d9.zpp_pool=null;c2.internal=false;c2.zpp_pool=null;cA.zpp_pool=null;ax.SHAPE=1;ax.BODY=2;bT.zpp_pool=null;b7.flowpoly=new aG();b7.flowsegs=new aG();a4.convexPool=null;a4.rayPool=null;a4.internal=false;E.zpp_pool=null;c3.zpp_pool=null;az.ints=null;az.paths=null;dr.zpp_pool=null;dn.zpp_pool=null;W.zpp_pool=null;T.zpp_pool=null;bc.me=new bc();bc.look_march=[-1,224,56,216,14,-1,54,214,131,99,-1,91,141,109,181,85];cm.zpp_pool=null;aE.queue=null;aE.edges=null;ah.nextId=0;ah.zpp_pool=null;a.zpp_pool=null;dG.zpp_pool=null;co.zpp_pool=null;dI.zpp_pool=null;bv.sweep=null;bv.inthash=null;bv.vertices=null;bv.queue=null;bv.ints=null;bv.list_vertices=null;bv.list_queue=null;cD.zpp_pool=null;cG.zpp_pool=null;aL.stack=null;ct.zpp_pool=null;k.zpp_pool=null;z.queue=null;z.stack=null;z.edgeSet=null;bB.zpp_pool=null;cj.types=(function(ed){var ea;if(br.BodyType_STATIC==null){br.internal=true;br.BodyType_STATIC=new cU();br.internal=false}var eb=br.BodyType_STATIC;if(br.BodyType_DYNAMIC==null){br.internal=true;br.BodyType_DYNAMIC=new cU();br.internal=false}var ec=br.BodyType_DYNAMIC;if(br.BodyType_KINEMATIC==null){br.internal=true;br.BodyType_KINEMATIC=new cU();br.internal=false}ea=[null,eb,ec,br.BodyType_KINEMATIC];return ea}(this));cj.bodystack=null;cj.bodyset=null;cj.cur_graph_depth=0;b6.zpp_pool=null;cJ.zpp_pool=null;cJ.WAKE=1;cJ.PROPS=2;cJ.ANGDRAG=4;cJ.ARBITERS=8;bZ.types=(function(ec){var ea;if(br.ShapeType_CIRCLE==null){br.internal=true;br.ShapeType_CIRCLE=new H();br.internal=false}var eb=br.ShapeType_CIRCLE;if(br.ShapeType_POLYGON==null){br.internal=true;br.ShapeType_POLYGON=new H();br.internal=false}ea=[eb,br.ShapeType_POLYGON];return ea}(this));c8.zpp_pool=null;c8.internal=false;dz.zpp_pool=null;bG.zpp_pool=null;d.tmpaabb=new bT();cT.FATTEN=3;cT.VEL_STEPS=2;cW.zpp_pool=null;bx.zpp_pool=null;cg.zpp_pool=null;f.zpp_pool=null;ca.zpp_pool=null;b.zpp_pool=null;cF.zpp_pool=null;b9.zpp_pool=null;bE.zpp_pool=null;cx.zpp_pool=null;Q.zpp_pool=null;dL.zpp_pool=null;aF.zpp_pool=null;cO.zpp_pool=null;g.zpp_pool=null;aT.zpp_pool=null;cd.zpp_pool=null;aR.zpp_pool=null;d3.zpp_pool=null;cH.zpp_pool=null;V.zpp_pool=null;o.zpp_pool=null;dU.zpp_pool=null;dS.zpp_pool=null;d6.zpp_pool=null;dY.zpp_pool=null;aV.zpp_pool=null;cl.zpp_pool=null;cq.zpp_pool=null;d2.zpp_pool=null;dv.zpp_pool=null;bb.zpp_pool=null;L.zpp_pool=null;e.zpp_pool=null;bi.zpp_pool=null;w.zpp_pool=null;c5.zpp_pool=null;cn.zpp_pool=null;cM.zpp_pool=null;dp.zpp_pool=null;aZ.internal=false;b0.internal=false;i.internal=false;bj.internal=false;a1.internal=false;cy.internal=false;bF.internal=false;dl.internal=false;bw.internal=false;dE.internal=false;aw.internal=false;aI.internal=false;bt.internal=false;U.internal=false;aB.internal=false;au.poolGeomPoly=null;au.poolVec2=null;au.poolVec3=null;dV.zpp_pool=null;p.zpp_pool=null;b8.zpp_pool=null;am.zpp_pool=null;bX.zpp_pool=null;bD.zpp_pool=null;bl.zpp_pool=null;dT.zpp_pool=null;aW.main()})();